[
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)