[ 
https://issues.apache.org/jira/browse/CASSANDRA-18134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17688457#comment-17688457
 ] 

Benedict Elliott Smith commented on CASSANDRA-18134:
----------------------------------------------------

bq. Also looking at number of changed lines is not a good measurement. Half of 
the changes are in tests, out of which, 80% are new tests including stats 
metadata collection benchmark.

Like I said, I'm not reviewing, so I'm not taking a strong position here. So 
let's not get bogged down too much on this point. But when I say larger than I 
thought, I don't mean line count. I see a lot of functional code changes, which 
are all potential spots for accidental mistakes. 

bq. I meant that having new features disabled after upgrading to the new 
version, the user will not be able to evaluate the new version fully.

We already have that, e.g. Paxos v2, no doubt Accord, and hopefully lots more 
things as we go forwards. We've discussed on multiple occasions using feature 
flags, and also live downgrade.

We probably want to make sure this becomes a natural part of the upgrade 
process for operators, so they come to expect a phase after all nodes have 
upgraded where they decide what to new behaviours to enable (probably 
everything for most operators).

> Improve handling of min/max clustering in sstable
> -------------------------------------------------
>
>                 Key: CASSANDRA-18134
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18134
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Local/SSTable
>            Reporter: Jacek Lewandowski
>            Assignee: Jacek Lewandowski
>            Priority: Normal
>             Fix For: 5.x
>
>
> This patch improves the following things:
> # SSTable metadata will store a covered slice instead of min/max clusterings. 
> The difference is that for slices there is available the type of a bound 
> rather than just a clustering. In particular it will provide the information 
> whether the lower and upper bound of an sstable is opened or closed.
> # SSTable metadata will store a flag whether the SSTable contains any 
> partition level deletions or not
> # The above two changes required to introduce a new major format for SSTables 
> - {{oa}}
> # Single partition read command makes use of the above changes. In particular 
> an sstable can be skipped when it does not intersect with the column filter, 
> does not have partition level deletions and does not have statics; In case 
> there are partition level deletions, but the other conditions are satisfied, 
> only the partition header needs to be accessed (tests attached)
> # Skipping sstables assuming those three conditions are satisfied has been 
> implemented also for partition range queries (tests attached). Also added 
> minor separate statistics to record the number of accessed sstables in 
> partition reads because now not all of them need to be accessed. That 
> statistics is also needed in tests to confirm skipping.
> # Artificial lower bound marker is now an object on its own and is not 
> implemented as a special case of range tombstone bound. Instead it sorts 
> right before the lowest available bound in the data
> # Extended the lower bound optimization usage due the 1 and 2
> # Do not initialize iterator just to get a cached partition and associated 
> columns index. The purpose of using lower bound optimization was to avoid 
> opening an iterator of an sstable if possible.
> See also CASSANDRA-14861
> The changes in this patch include work of [~blambov], [~slebresne], 
> [~jakubzytka] and [~jlewandowski]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to