[
https://issues.apache.org/jira/browse/CASSANDRA-8406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14241369#comment-14241369
]
Björn Hegerfors commented on CASSANDRA-8406:
--------------------------------------------
I proposed another approach in my last comment on CASSANDRA-8340 (which, by the
way, is very tightly coupled to this ticket). The idea is to specify max window
re-merge instead of max sstable age. That option would mean, very nearly, "how
many times do you want each value to be rewritten?". The good thing about that
option in this context is that it scales relatively to window size. If small
time windows are used (low baseTime), then a small max_window_exponent will
indeed lead to a max SSTable age far lower than a day. Consider min_threshold=4
and base_time_seconds=60. Then max_window_exponent=3 would create all the way
up to 64-minute windows, and stop after that. With max_window_exponent=10, the
largest windows will be ~2 years (actually ~1.995 years, coincidentally).
I can implement this. It would not be difficult. But what do you think? Is this
option too confusing? Is it a bad thing that changing base_time_seconds also
changes the max SSTable age (linearly)? And that min_threshold does the same
(polynomially)? It's just that the number of recompactions is what this is all
about anyway. So why not be explicit about it?
On a second note, would it make sense for some other behavior than "no more
compactions ever" after SSTables get too old? For instance, how about a flag
that makes DTCS create infinitely many same-size windows preceding the max
window size? So in my first example, infinite 64-minute windows would be
produced. In the event of a repair or out-of-order write, a window many days
old may be touched and a compaction would trigger in that window. I'm not
suggesting this as a default, but maybe it's useful for something?
> Add option to set max_sstable_age in seconds in DTCS
> ----------------------------------------------------
>
> Key: CASSANDRA-8406
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8406
> Project: Cassandra
> Issue Type: Bug
> Reporter: Marcus Eriksson
> Assignee: Marcus Eriksson
> Fix For: 2.0.12
>
> Attachments: 0001-patch.patch
>
>
> Using days as the unit for max_sstable_age in DTCS might be too much, add
> option to set it in seconds
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)