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

Jaakko Laine commented on CASSANDRA-620:
----------------------------------------


(1) ARS.replica_ cannot be used for this purpose as it might be different for 
two instances of same replication strategy. For this purpose, a maximum for 
each type of replication strategy in use should be used (see my previous 
comment above). This would allow us to calculate pending ranges only once per 
replication strategy.

(2) Assigning a new value on top of the other was not a problem. If somebody 
was still using the old pending ranges, let them do so. Gossip propagation and 
pending ranges calculation is not very accurate in terms of timing anyway, so 
if somebody uses the old version for a few microseconds more, that is OK. 
However, if we change the data structure when somebody else is using it, that 
is different issue, I think.

(4) Yeah, basically anything that keeps track of what tables and ranges are 
needed from where should work. One thing to remember, though, is that stream 
sources might be different for every table, so it might be easier to just keep 
track on table basis what has been transferred, instead of calculating an 
inverse list of what ranges from what table are needed from each host. I think 
first option would just need small change to StorageService (just have 
addBootstrapSource and removeBootstrapSource have "table" as extra parameter 
and internally have hashmap). This would also take care of #673 (are you 
planning to do all my work? :-)


> Add per-keyspace replication factor (possibly even replication strategy)
> ------------------------------------------------------------------------
>
>                 Key: CASSANDRA-620
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-620
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>            Assignee: Gary Dusbabek
>             Fix For: 0.9
>
>         Attachments: 
> 0001-push-replication-factor-and-strategy-into-table-exce.patch, 
> 0002-cleaned-up-as-much-as-possible-before-dealing-with-r.patch, 
> 0003-push-table-names-into-streaming-expose-TMD-in-ARS.patch, 
> 0004-fix-non-compiling-tests.patch, 
> 0005-introduce-table-into-pending-ranges-code.patch, 
> 0006-added-additional-testing-keyspace.patch, 
> 0007-modify-TestRingCache-to-make-it-easier-to-test-speci.patch, 
> 0008-push-endpoint-snitch-into-keyspace-configuration.patch, 
> 0009-Marked-a-few-AntiEntropyServices-methods-as-private-.patch
>
>
> (but partitioner may only be cluster-wide, still)
> not 100% sure this makes sense but it would allow maintaining system metadata 
> in a replicated-across-entire-cluster keyspace (without ugly special casing), 
> as well as making Cassandra more flexible as a shared resource for multiple 
> apps

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