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

Hudson commented on CASSANDRA-3178:
-----------------------------------

Integrated in Cassandra-0.8 #394 (See 
[https://builds.apache.org/job/Cassandra-0.8/394/])
    patch by slebresne; reviewed by yukim for CASSANDRA-3178

slebresne : 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1198725
Files : 
* /cassandra/branches/cassandra-0.8/CHANGES.txt
* 
/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/config/CFMetaData.java
* 
/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
* 
/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/CounterColumn.java
* 
/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/CounterMutation.java
* 
/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/Memtable.java
* 
/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/CompactionController.java
* 
/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
* 
/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/PrecompactedRow.java
* 
/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/context/CounterContext.java
* 
/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageProxy.java
* 
/cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/db/CounterMutationTest.java
* 
/cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/db/context/CounterContextTest.java

                
> Counter shard merging is not thread safe
> ----------------------------------------
>
>                 Key: CASSANDRA-3178
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3178
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.8.5
>            Reporter: Sylvain Lebresne
>            Assignee: Sylvain Lebresne
>              Labels: counters
>             Fix For: 0.8.8, 1.0.3
>
>         Attachments: 
> 0001-Move-shard-merging-completely-to-compaction-1.0.patch, 
> 0001-Move-shard-merging-completely-to-compaction-v2.patch, 
> 0001-Move-shard-merging-completely-to-compaction.patch, 
> 0002-Simplify-improve-shard-merging-code-1.0.patch, 
> 0002-Simplify-improve-shard-merging-code-v2.patch, 
> 0002-Simplify-improve-shard-merging-code.patch
>
>
> The first part of the counter shard merging process is done during counter 
> replication. This was done there because it requires that all replica are 
> made aware of the merging (we could only rely on nodetool repair for that but 
> that seems much too fragile, it's better as just a safety net). However this 
> part isn't thread safe as multiple threads can do the merging for the same 
> shard at the same time (which shouldn't really "corrupt" the counter value 
> per se, but result in an incorrect context).
> Synchronizing that part of the code would be very costly in term of 
> performance, so instance I propose to move the part of the shard merging done 
> during replication to compaction. It's a better place anyway. The only 
> downside is that it means compaction will sometime send mutations to other 
> node as a side effect, which doesn't feel very clean but is probably not a 
> big deal either.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to