You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Aaron Morton (JIRA)" <ji...@apache.org> on 2011/08/17 11:20:27 UTC

[jira] [Created] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

implementations of IPartitioner.describeOwnership() are not DC aware
--------------------------------------------------------------------

                 Key: CASSANDRA-3047
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
             Project: Cassandra
          Issue Type: Improvement
          Components: Core
    Affects Versions: 0.8.4
            Reporter: Aaron Morton
            Priority: Trivial


see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html

When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.

When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 

It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Updated] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "David Alves (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Alves updated CASSANDRA-3047:
-----------------------------------

    Attachment: 3047.patch

applies on top of 3881.

addresses most suggestions, code is a lot less verbose and returned map is now endpoint->ownership.
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>         Attachments: 3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Assigned] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis reassigned CASSANDRA-3047:
-----------------------------------------

    Assignee: David Alves
    
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Commented] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13292617#comment-13292617 ] 

Jonathan Ellis commented on CASSANDRA-3047:
-------------------------------------------

You'd need to perform the computation per-DC as well as the output.
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Updated] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "David Alves (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Alves updated CASSANDRA-3047:
-----------------------------------

    Attachment: CASSANDRA-3047.patch

patch that does the following:

- separates output per dc and correctly calculates ring ownership
- list replicas per dc
- adds a unit test to assert that calculations are correctly performed
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>         Attachments: CASSANDRA-3047.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Updated] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "David Alves (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Alves updated CASSANDRA-3047:
-----------------------------------

    Attachment: 3047.patch

corrected some bugs in NodeCmd output.
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>         Attachments: 3047.patch, 3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Commented] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13293974#comment-13293974 ] 

Jonathan Ellis commented on CASSANDRA-3047:
-------------------------------------------

I like where you're going here.  Maybe split the DCs out even more explicitly?

{noformat}
Keyspace: myKeyspace
Replication Strategy: NetworkTopologyStrategy


DC1
===
Replicas: 1

Address      Rack    Status State   Load        Effective-Ownership          Token                                       
127.0.0.1    RAC1    Up     Normal  40 KB       100.0%                     0


DC2
===
Replicas: 1

Address      Rack    Status State   Load        Effective-Ownership          Token                                       
127.0.0.2    RAC1    Up     Normal  40 KB       50.0%                      0
127.0.0.3    RAC2    Up     Normal  40 KB       50.0%                      8...


DC3
===
Replicas: 2

Address      Rack    Status State   Load        Effective-Ownership          Token                                       
127.0.0.4    RAC1    Up     Normal  40 KB       50.0%                      0
127.0.0.5    RAC1    Up     Normal  40 KB       50.0%                      4...
127.0.0.6    RAC2    Up     Normal  40 KB       50.0%                      8...
127.0.0.7    RAC2    Up     Normal  40 KB       50.0%                      12...
{noformat}

                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Commented] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13285021#comment-13285021 ] 

Jonathan Ellis commented on CASSANDRA-3047:
-------------------------------------------

What if we split up nodetool output per-DC?  For NTS it would be much better and for SS/ONTS it wouldn't make things worse...
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Priority: Trivial
>             Fix For: 1.1.2
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Updated] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "David Alves (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Alves updated CASSANDRA-3047:
-----------------------------------

    Attachment:     (was: CASSANDRA-3047.patch)
    
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>         Attachments: CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Updated] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "David Alves (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Alves updated CASSANDRA-3047:
-----------------------------------

    Attachment: CASSANDRA-3047.patch

reverted import ordering changes/made imports comply with code style.
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>         Attachments: CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Updated] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "David Alves (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Alves updated CASSANDRA-3047:
-----------------------------------

    Attachment: CASSANDRA-3047.patch

(previous patch was submitted with wrong license)
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>         Attachments: CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Commented] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13402035#comment-13402035 ] 

Jonathan Ellis commented on CASSANDRA-3047:
-------------------------------------------

Thanks, David.

I don't think effectiveOwnership needs to do quite so much work -- the Range map from Node is available from SS.getRangesForEndpoint, and of course token<->address map is in TokenMetadata.  (So I think we can dispense with Node entirely.)  dcsToEndpoints is not available in current trunk but CASSANDRA-3881 adds it to the Topology class; should probably rebase this on top of that.

IMO we should probably change effectiveOwnership to map by address instead of token -- the former will make more sense when we add vnodes.
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>         Attachments: CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Commented] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "David Alves (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13402644#comment-13402644 ] 

David Alves commented on CASSANDRA-3047:
----------------------------------------

thanks for the review and for the clues. code is much more succinct with topology and getRangesForEndpoint.

final question, since we're changing the mapping to a per endpoint basis should we keep showing the tokens, or do something that would work straight out with vnodes such as (per dc):
{code}
Address         DC          Rack        Status State   Load            Owns                Num. Ranges     RangeIds                                        
                                                                                           
127.0.0.4       DC3         RAC1        Up     Normal  52.76 KB        75.00%              1               0                           
127.0.0.5       DC3         RAC1        Up     Normal  54.46 KB        75.00%              1               1
127.0.0.6       DC3         RAC2        Up     Normal  52.78 KB        75.00%              1               2
127.0.0.7       DC3         RAC2        Up     Normal  52.78 KB        75.00%              1               3
{code}

where range id is the position in the token ring starting from 0 and then allow to get the token delimiters for a range with another command (or get all for an endpoint?).

                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>         Attachments: CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Commented] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "David Alves (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13402664#comment-13402664 ] 

David Alves commented on CASSANDRA-3047:
----------------------------------------

ok, I'll leave the generic ground work here and do a specific vnodes follow up on another ticket.
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>         Attachments: CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Commented] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "David Alves (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13396185#comment-13396185 ] 

David Alves commented on CASSANDRA-3047:
----------------------------------------

It was supposed to apply to trunk, but was failing mainly because it was built against github's skewed version of trunk.
Tested to apply to current trunk.
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>         Attachments: CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Commented] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13396171#comment-13396171 ] 

Jonathan Ellis commented on CASSANDRA-3047:
-------------------------------------------

what branch is this against?  getting failures against 1.1 and trunk.
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>         Attachments: CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Updated] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-3047:
--------------------------------------

          Component/s:     (was: Core)
                       Tools
    Affects Version/s:     (was: 0.8.4)
        Fix Version/s: 1.1.2
    
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Priority: Trivial
>             Fix For: 1.1.2
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Commented] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "David Alves (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13294710#comment-13294710 ] 

David Alves commented on CASSANDRA-3047:
----------------------------------------

the test is separated from StorageServiceServerTest because other tests will hang when schemaloader is called on startup.

this is the new output:
{code}

Datacenter: DC1
==========
Replicas: 1

Address         DC          Rack        Status State   Load            Owns                Token                                       

127.0.0.1       DC1         RAC1        Up     Normal  52.76 KB        100.00%             0                                           

Datacenter: DC2
==========
Replicas: 1

Address         DC          Rack        Status State   Load            Owns                Token                                       
                                                                                           85070591730234615865843651857942052864      
127.0.0.2       DC2         RAC1        Up     Normal  52.76 KB        50.00%              1                                           
127.0.0.3       DC2         RAC2        Up     Normal  54.46 KB        50.00%              85070591730234615865843651857942052864      

Datacenter: DC3
==========
Replicas: 3

Address         DC          Rack        Status State   Load            Owns                Token                                       
                                                                                           127605887595351923798765477786913079296     
127.0.0.4       DC3         RAC1        Up     Normal  52.76 KB        75.00%              2                                           
127.0.0.5       DC3         RAC1        Up     Normal  54.46 KB        75.00%              42535295865117307932921825928971026432      
127.0.0.6       DC3         RAC2        Up     Normal  52.78 KB        75.00%              85070591730234615865843651857942052865      
127.0.0.7       DC3         RAC2        Up     Normal  52.78 KB        75.00%              127605887595351923798765477786913079296  
{code}
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>         Attachments: CASSANDRA-3047.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Updated] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "David Alves (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Alves updated CASSANDRA-3047:
-----------------------------------

    Attachment: CASSANDRA-3047.patch

removed repeated dc info
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>         Attachments: CASSANDRA-3047.patch, CASSANDRA-3047.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Commented] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "David Alves (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13292559#comment-13292559 ] 

David Alves commented on CASSANDRA-3047:
----------------------------------------

Hi jonathan

I'm not sure I completely understand your suggestion.

If I understand correctly the problem is that probe.effectiveOwnership(keyspace) is calculating ring assignment percentages on multiple ring scenarios as if it was a single ring, correct?

If these values are incorrectly calculated how would separating the output per dc help?
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Commented] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "David Alves (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13293899#comment-13293899 ] 

David Alves commented on CASSANDRA-3047:
----------------------------------------

I'm thinking about producing slightly different output for different strategies. It's a bit difficult to understand the output without knowing the strategy/replication factor and if it if is dc aware or not.

something like changing:
{code}
Address         DC          Rack        Status State   Load            Effective-Ownership Token                                       
                                                                                           148873535527910577765226390751398592512     
127.0.0.1       DC1         RAC1        Up     Normal  49.76 KB        16.66%             0                                           
127.0.0.2       DC1         RAC1        Up     Normal  40 KB           16.66%              21267647932558653966460912964485513216      
127.0.0.3       DC1         RAC2        Up     Normal  63.45 KB        16.66%             42535295865117307932921825928971026432      
127.0.0.4       DC1         RAC2        Up     Normal  49.76 KB        16.66%              63802943797675961899382738893456539648      
127.0.0.5       DC2         RAC1        Up     Normal  49.76 KB        16.66%             85070591730234615865843651857942052864      
127.0.0.6       DC2         RAC1        Up     Normal  40 KB           16.66%              106338239662793269832304564822427566080    
{code}

into 

{code}
Keyspace: myKeyspace  DataCenter aware? yes Strategy: NetworkTopologyStragey

DC     Replicas Address      Rack    Status State   Load        Effective-Ownership          Token                                       
                                                                                                
DC1    1        127.0.0.1    RAC1    Up     Normal  40 KB       100.0%                     0                                           
DC2    1        127.0.0.2    RAC1    Up     Normal  40 KB       50.0%                      0
DC2    -        127.0.0.3    RAC2    Up     Normal  40 KB       50.0%                      8...
DC3    2        127.0.0.4    RAC1    Up     Normal  40 KB       50.0%                      0
DC3    -        127.0.0.5    RAC1    Up     Normal  40 KB       50.0%                      4...
DC3    -        127.0.0.6    RAC2    Up     Normal  40 KB       50.0%                      8...
DC3    -        127.0.0.7    RAC2    Up     Normal  40 KB       50.0%                      12...

Total Replicas: 4      
{code}

what do you think?

                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Commented] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13402660#comment-13402660 ] 

Jonathan Ellis commented on CASSANDRA-3047:
-------------------------------------------

That makes sense to me, although I'd prefer to do that in a followup ticket once the vnodes work goes in.
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>         Attachments: CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Commented] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "Jonathan Ellis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13295315#comment-13295315 ] 

Jonathan Ellis commented on CASSANDRA-3047:
-------------------------------------------

Can you update your IDE to follow http://wiki.apache.org/cassandra/CodeStyle ?
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>         Attachments: CASSANDRA-3047.patch, CASSANDRA-3047.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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

        

[jira] [Updated] (CASSANDRA-3047) implementations of IPartitioner.describeOwnership() are not DC aware

Posted by "David Alves (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CASSANDRA-3047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Alves updated CASSANDRA-3047:
-----------------------------------

    Attachment: CASSANDRA-3047.patch

updated patch to apply to trunk
                
> implementations of IPartitioner.describeOwnership() are not DC aware
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-3047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3047
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Tools
>            Reporter: Aaron Morton
>            Assignee: David Alves
>            Priority: Trivial
>             Fix For: 1.1.2
>
>         Attachments: CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch, CASSANDRA-3047.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg16375.html
> When a cluster the multiple rings approach to tokens the output from nodetool ring is incorrect.
> When it uses the interleaved token approach (e.g. dc1, dc2, dc1, dc2) it will be correct. 
> It's a bit hacky but could we special case (RP) tokens that are off by 1 and calculate the ownership per dc ? I guess another approach would be to add some parameters so the partitioner can be told about the token assignment strategy.  

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