[
https://issues.apache.org/jira/browse/CASSANDRA-6692?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Benedict updated CASSANDRA-6692:
--------------------------------
Attachment: patch.txt
Further to this, I finally added unit tests to cover the UpdateFunction use,
and found that it wasn't being applied on build() through the Builder either
(which is now the only path). Attached is a patch with the unit test as well as
a fix, and a slight tweak to permit construction of a btree from Iterables as
well as Collections.
> AtomicBTreeColumns Improvements
> -------------------------------
>
> Key: CASSANDRA-6692
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6692
> Project: Cassandra
> Issue Type: Improvement
> Components: Core
> Reporter: Benedict
> Assignee: Benedict
> Priority: Minor
> Labels: easyfix, performance
> Fix For: 2.1 beta2
>
> Attachments: 6692.fix, patch.txt
>
>
> There are two improvements to make to the BTree code that should help:
> 1) It turns out Stack Allocation is more rubbish than we had hoped, and so
> the fast route actually allocates garbage. It's unlikely this reduces
> throughput, but the increased young-gen pressure is probably unwelcome. I
> propose to remove the fast route for now.
> 2) It is not uncommon to race to perform an update, so that the new values
> are actually out-of-date when we come to modify the tree. In this case the
> update should recognise that the original (portion of) the tree has not been
> modified, and simply return it, without allocating a new one.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)