[ 
https://issues.apache.org/jira/browse/CASSANDRA-1427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Yaskevich updated CASSANDRA-1427:
---------------------------------------

    Attachment: CASSANDRA-1427.patch

This is initial patch which does following:

Replaces leave/bootstrap with:
   (node registers it's state as MOVING).

   a). Call BootStrapper.getBalancedToken(...) to get token to move to;
   b). For each non system table (keyspace) get collection of the range in the 
current state and "after move" state; 
   c). Calculate ranges to fetch from the ring (skipping intersection part of 
current/updated rages).
   d). Fetch ranges and move to a new token.


Questions left undone (unanswered):

1). What should we do with the ranges left on the node if we are moving to the 
completely new range (no intersection with old range), should we stream them to 
the ring?
2). Should we do 1). always (on any move)?


Requesting comments!

> Optimize loadbalance/move for moves within the current range
> ------------------------------------------------------------
>
>                 Key: CASSANDRA-1427
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1427
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: Core
>    Affects Versions: 0.7 beta 1
>            Reporter: Nick Bailey
>            Assignee: Pavel Yaskevich
>             Fix For: 0.8
>
>         Attachments: CASSANDRA-1427.patch
>
>   Original Estimate: 42h
>  Remaining Estimate: 42h
>
> Currently our move/loadbalance operations only implement case 2 of the Ruhl 
> algorithm described at 
> https://issues.apache.org/jira/browse/CASSANDRA-192#action_12713079.
> We should add functionality to optimize moves that take/give ranges to a 
> node's direct neighbors.

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

        

Reply via email to