You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Hudson (JIRA)" <ji...@apache.org> on 2011/07/06 16:53:17 UTC

[jira] [Commented] (CASSANDRA-2800) OPP#describeOwnership reports incorrect ownership

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

Hudson commented on CASSANDRA-2800:
-----------------------------------

Integrated in Cassandra-0.7 #522 (See [https://builds.apache.org/job/Cassandra-0.7/522/])
    Fix describeOwnership for OPP
patch by jhermes; reviewed by slebresne for CASSANDRA-2800

slebresne : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1143437
Files : 
* /cassandra/branches/cassandra-0.7/CHANGES.txt
* /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java


> OPP#describeOwnership reports incorrect ownership
> -------------------------------------------------
>
>                 Key: CASSANDRA-2800
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2800
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.7.4
>            Reporter: Jon Hermes
>            Assignee: Jon Hermes
>            Priority: Minor
>             Fix For: 0.7.7, 0.8.2
>
>         Attachments: 2800.txt
>
>
> OPP#describeOwnership relies on StorageService#getSplits and counts the received tokens as its basis of ownership.
> When the number of result keys is less than the number of splits, the full count is omitted (to save work?). However, we don't care if a split would end up fractional in this case, we just need the full count.
> The logic here is:
> {code}
> int splits = keycount * DatabaseDescriptor.getIndexInterval() / keysPerSplit;
> if (keycount >= splits) { ... add count to result set }
> {code}
> We were passing in 1 key per split (since we just care about the count), but splits=keycount*IndexInterval is guaranteed to be > keycount, so the result set is not completely formed.
> The better "unit keysPerSplit" to use is IndexInterval itself, which gives splits=keycount*II/II=keycount, so the logic runs correctly.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira