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

Yuki Morishita edited comment on CASSANDRA-7238 at 1/26/16 10:36 PM:
---------------------------------------------------------------------

Yes, the problem is when tokens / nodes are many, getting value from 
{{StorageService#effectiveOwnership}}. It is because the method calls heavy 
lifting {{TokenMetadata#getAddressMap}} inside loop.

Patch attached to move heavy process out of the loop. This will bring down the 
time of the method call from couple of minuites to few hundred millisec (tested 
with manually crafted TokenMetadata with 1000 ips and 256 vnodes).

||branch||testall||dtest||
|[7238-2.1|https://github.com/yukim/cassandra/tree/7238-2.1]|[testall|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-2.1-testall/lastCompletedBuild/testReport/]|[dtest|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-2.1-dtest/lastCompletedBuild/testReport/]|
|[7238-2.2|https://github.com/yukim/cassandra/tree/7238-2.2]|[testall|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-2.2-testall/lastCompletedBuild/testReport/]|[dtest|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-2.2-dtest/lastCompletedBuild/testReport/]|
|[7238-3.0|https://github.com/yukim/cassandra/tree/7238-3.0]|[testall|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-3.0-testall/lastCompletedBuild/testReport/]|[dtest|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-3.0-dtest/lastCompletedBuild/testReport/]|
|[7238-3.3|https://github.com/yukim/cassandra/tree/7238-3.3]|[testall|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-3.3-testall/lastCompletedBuild/testReport/]|[dtest|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-3.3-dtest/lastCompletedBuild/testReport/]|
|[7238-trunk|https://github.com/yukim/cassandra/tree/7238-trunk]|[testall|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-trunk-testall/lastCompletedBuild/testReport/]|[dtest|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-trunk-dtest/lastCompletedBuild/testReport/]|

(tests are running)


was (Author: yukim):
Yes, the problem is when tokens / nodes are many, getting value from 
{{StorageService#effectiveOwnership}}. It is because the method calls heavy 
lifting {{TokenMetadata#getAddressMap}} inside loop.

Patch attached to move heavy process out of the loop. This will bring down the 
time of the method call from couple of minuites to few hundred millisec.

||branch||testall||dtest||
|[7238-2.1|https://github.com/yukim/cassandra/tree/7238-2.1]|[testall|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-2.1-testall/lastCompletedBuild/testReport/]|[dtest|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-2.1-dtest/lastCompletedBuild/testReport/]|
|[7238-2.2|https://github.com/yukim/cassandra/tree/7238-2.2]|[testall|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-2.2-testall/lastCompletedBuild/testReport/]|[dtest|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-2.2-dtest/lastCompletedBuild/testReport/]|
|[7238-3.0|https://github.com/yukim/cassandra/tree/7238-3.0]|[testall|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-3.0-testall/lastCompletedBuild/testReport/]|[dtest|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-3.0-dtest/lastCompletedBuild/testReport/]|
|[7238-3.3|https://github.com/yukim/cassandra/tree/7238-3.3]|[testall|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-3.3-testall/lastCompletedBuild/testReport/]|[dtest|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-3.3-dtest/lastCompletedBuild/testReport/]|
|[7238-trunk|https://github.com/yukim/cassandra/tree/7238-trunk]|[testall|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-trunk-testall/lastCompletedBuild/testReport/]|[dtest|http://cassci.datastax.com/view/Dev/view/yukim/job/yukim-7238-trunk-dtest/lastCompletedBuild/testReport/]|

(tests are running)

> Nodetool Status performance is much slower with VNodes On
> ---------------------------------------------------------
>
>                 Key: CASSANDRA-7238
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7238
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Tools
>         Environment: 1000 M1.Large Ubuntu 12.04
>            Reporter: Russell Alexander Spitzer
>            Assignee: Yuki Morishita
>            Priority: Minor
>             Fix For: 2.1.x, 2.2.x, 3.0.x, 3.x
>
>
> Nodetool status on a 1000 Node cluster without vnodes returns in several 
> seconds. With vnodes on (256) there are OOM errors with the default XMX of 
> 32. Adjusting the XMX to 128 allows nodetool status to complete but the 
> execution takes roughly 10 minutes.
> Tested
> {code}
> XMX    |      Status
> 32     |    OOM
> 64     |    OOM: GC Overhead
> 128    |    Finishes in ~10 minutes
> 500    |    Finishes in ~10 minutes
> 1000   |    Finishes in ~10 minutes
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to