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

Benedict commented on CASSANDRA-9932:
-------------------------------------

bq. This change to a large extent looks like a refactor and not new code so I 
am trying not to wade too deep into the existing code

This ticket is, in essence, a part of my review of CASSANDRA-8099, but filed as 
its own ticket to parallelize and make digestible. As such, I'm not sure how 
strongly it counts as "existing code" and nothing should be taken totally for 
granted here.

bq. With default methods it really seems to me that we always want @Override 
annotations

I agree, but rather than wait for a PMC adjudication on a change of practice, 
I've just opted roll back the use of a default method in that particular 
change, since it wasn't really necessary.

bq. I ran code coverage for some tests and there seems to be untested stuff in 
BTree such as transformAndFilter. reverse() which is new for this patch also 
has no coverage.

{{transformAndFilter}} is already covered by {{LongBTreeTest}}, and is not new 
to this patch. I've added {{reverse()}} coverage. 

bq.  I just want to focus on how convincing the tests are
bq. I don't see unit tests for the various partition types in isolation 
AtomicBTreePartition from PartitionTest doesn't cover stuff like waste tracking 
or pessimistic locking. Is that coverage supposed to come indirectly via 
Memtable tests? AbstractBTreePartition also has stuff that isn't tested.

Test coverage is a bit of a wasteland still here. I would rather not bottleneck 
on this, however, since this patch is explicitly designed to reduce our 
exposure to poorly tested new code. We certainly can and should file a follow 
up ticket to improve all of these areas, and I will try to address that pre-3.0 
release, once the more pressing 8099 review-generated work is done.

> Make all partitions btree backed
> --------------------------------
>
>                 Key: CASSANDRA-9932
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9932
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Benedict
>            Assignee: Benedict
>             Fix For: 3.0.0 rc1
>
>
> Following on from the other btree related refactors, this patch makes all 
> partition (and partition-like) objects backed by the same basic structure: 
> {{AbstractBTreePartition}}. With two main offshoots: 
> {{ImmutableBTreePartition}} and {{AtomicBTreePartition}}
> The main upshot is a 30% net code reduction, meaning better exercise of btree 
> code paths and fewer new code paths to go wrong. A secondary upshort is that, 
> by funnelling all our comparisons through a btree, there is a higher 
> likelihood of icache occupancy and we have only one area to focus delivery of 
> improvements for their enjoyment by all.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to