bootstrapping does not work properly using multiple key space
-------------------------------------------------------------

                 Key: CASSANDRA-673
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-673
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 0.5
         Environment: 1.        cluster has at least one empty key-space
2.      one node be added into cluster to do bootstrap

            Reporter: Michael Lee
             Fix For: 0.9


when use multiple key-spaces, and one key-space has no SSTable, then bootstrap 
may not work right.
Say nodes A, B, C, D have key spaces "KS1" and "KS2", KS1 is empty, now add 
empty node E into cluster.
Suppose E decide to drag data from A and B(bootstrap source), E will send range 
to A and B, and A, B will scan all key-spaces they got and send ack to E, which 
contains list of key-space name(StreamContextManager.StreamContext),
when E get ack from A and B, it scan this list, but when encounter first empty 
key-space, it will stop and remove node from bootstrap sources list:

StreamInitiateVerbHandler.doVerb:
......
                if (streamContexts.length == 0 && 
StorageService.instance().isBootstrapMode())
                {
                    if (logger.isDebugEnabled())
                        logger.debug("no data needed from " + 
message.getFrom());
                    
StorageService.instance().removeBootstrapSource(message.getFrom());
                    return;
                }
......
If list of bootstrap sources is empty, E will finish bootstrapping

So, the result is: E get nothing from source A, B, even KS2 has lots of data.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to