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

Sylvain Lebresne commented on CASSANDRA-2893:
---------------------------------------------

The problem you're seeing is due to the call to get_count and more precisely to 
the paging we do server side since CASSANDRA-2894. As a result, get_count is 
not atomic. I'm not sure we have a better solution for that than documenting 
it's a limitation. But we'd have to keep that in mind if we introduce paging 
for CQL.

Note that not only does that explain why you're seeing delete mismatches on 
trunk, but also why you don't see mismatches on insert on 1.0 (insertion is 
done in the same order than the pages are done, so I suspect the insertions 
were just faster than the paging; and somehow the timing changed things for 
deletes).

Anyway, I've tested with get_count paging disabled (which require hacking the 
server), and the result are the one expected.
* on 1.0, there is mismatches for insertions
* on trunk, no mismatches are found

For your tests, you'll want to use a get_slice call instead of get_count since 
we don't page those.

                
> Add row-level isolation
> -----------------------
>
>                 Key: CASSANDRA-2893
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2893
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Jonathan Ellis
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 1.1
>
>         Attachments: 0001-Move-deletion-infos-into-ISortedColumns-v2.patch, 
> 0001-Move-deletion-infos-into-ISortedColumns.patch, 
> 0002-Make-memtable-use-CF.addAll-v2.patch, 
> 0002-Make-memtable-use-CF.addAll.patch, 
> 0003-Add-AtomicSortedColumn-and-snapTree-v2.patch, 
> 0003-Add-AtomicSortedColumn-and-snapTree.patch, latency-plain.svg, 
> latency.svg, row_isolation_test.py, snaptree-0.1-SNAPSHOT.jar
>
>
> This could be done using an the atomic ConcurrentMap operations from the 
> Memtable and something like http://code.google.com/p/pcollections/ to replace 
> the ConcurrentSkipListMap in ThreadSafeSortedColumns.  The trick is that 
> pcollections does not provide a SortedMap, so we probably need to write our 
> own.
> Googling [persistent sortedmap] I found 
> http://code.google.com/p/actord/source/browse/trunk/actord/src/main/scala/ff/collection
>  (in scala) and http://clojure.org/data_structures#Data Structures-Maps.

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