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

Aleksey Yeschenko commented on CASSANDRA-6692:
----------------------------------------------

This seems to have broken a bunch of tests (getting NPE from isLeaf()).

For example,
{noformat}
    [junit] Testcase: 
testIndexUpdate(org.apache.cassandra.db.ColumnFamilyStoreTest):   Caused an 
ERROR
    [junit] null
    [junit] java.lang.NullPointerException
    [junit]     at org.apache.cassandra.utils.btree.BTree.isLeaf(BTree.java:302)
    [junit]     at 
org.apache.cassandra.utils.btree.NodeBuilder.update(NodeBuilder.java:131)
    [junit]     at 
org.apache.cassandra.utils.btree.Builder.update(Builder.java:74)
    [junit]     at org.apache.cassandra.utils.btree.BTree.update(BTree.java:157)
    [junit]     at 
org.apache.cassandra.db.AtomicBTreeColumns.addAllWithSizeDelta(AtomicBTreeColumns.java:254)
    [junit]     at org.apache.cassandra.db.Memtable.put(Memtable.java:195)
    [junit]     at 
org.apache.cassandra.db.ColumnFamilyStore.apply(ColumnFamilyStore.java:1096)
    [junit]     at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:370)
    [junit]     at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:328)
    [junit]     at org.apache.cassandra.db.Mutation.apply(Mutation.java:205)
    [junit]     at 
org.apache.cassandra.db.ColumnFamilyStoreTest.testIndexUpdate(ColumnFamilyStoreTest.java:389)
{noformat}

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

Reply via email to