[
https://issues.apache.org/jira/browse/CASSANDRA-6692?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Benedict updated CASSANDRA-6692:
--------------------------------
Attachment: 6692.3.txt
And one more change: for the same reason as stated in the description, stack
allocation of the cursors is definitely not happening, so there's no point
allocating them with MAX_DEPTH room, since most of the time they'll only need a
depth of 1 or 2. Attached a patch that determines the depth of the btree when
the Cursor is reset(), and increases the size of its stack if it is too small.
> 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.3.txt, 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)