[ https://issues.apache.org/jira/browse/CASSANDRA-15433?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17038079#comment-17038079 ]
Sumanth Pasupuleti commented on CASSANDRA-15433: ------------------------------------------------ +1 on invoking pendingrange calculation only for newly created keyspaces. I have updated 3.0 and trunk changes accordingly. [3.0 changes|https://github.com/sumanth-pasupuleti/cassandra/commit/d2841ed2075db9e7241d428a054cf1d7d2936f9e] [Trunk changesĀ |https://github.com/sumanth-pasupuleti/cassandra/commit/dac07262b23e96607fb12a869f84b55a4081ef36] I am still working on in-jvm test. As I was mentioning offline, trying to figure out how to make a node to be in "bootstrapping mode" in order to then trigger a keyspace creation while the node is in bootstrapping mode. > Pending ranges are not recalculated on keyspace creation > -------------------------------------------------------- > > Key: CASSANDRA-15433 > URL: https://issues.apache.org/jira/browse/CASSANDRA-15433 > Project: Cassandra > Issue Type: Bug > Components: Cluster/Membership > Reporter: Josh Snyder > Assignee: Sumanth Pasupuleti > Priority: Normal > > When a node begins bootstrapping, Cassandra recalculates pending tokens for > each keyspace that exists when the state change is observed (in > StorageService:handleState*). When new keyspaces are created, we do not > recalculate pending ranges (around Schema:merge). As a result, writes for new > keyspaces are not received by nodes in BOOT or BOOT_REPLACE modes. When > bootstrapping finishes, the node which just bootstrapped will not have data > for the newly created keyspace. > Consider a ring with bootstrapped nodes A, B, and C. Node D is pending, and > when it finishes bootstrapping, C will cede ownership of some ranges to D. A > quorum write is acknowledged by C and A. B missed the write, and the > coordinator didn't send it to D at all. When D finishes bootstrapping, the > quorum B+D will not contain the mutation. > Steps to reproduce: > # Join a node in BOOT mode > # Create a keyspace > # Send writes to that keyspace > # On the joining node, observe that {{nodetool cfstats}} records zero writes > to the new keyspace > I have observed this directly in Cassandra 3.0, and based on my reading the > code, I believe it affects up through trunk. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org