cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Dusbabek (JIRA)" <>
Subject [jira] Commented: (CASSANDRA-620) Add per-keyspace replication factor (possibly even replication strategy)
Date Tue, 19 Jan 2010 16:46:54 GMT


Gary Dusbabek commented on CASSANDRA-620:

Attached a newly rebased set of patches that address the points brought up by Jaakko.

1)  Then I think that replicas_ should come out of ARS and instead retrieve the replication
factor on a per-table basis when needed.  This shook out nicely in the code, except the unit

2) Made TMD.pendingRanges a ConcurrentMap.

3) I went ahead and made ARS.tokenMetadata_ private and removed the getter.  

4) Addressed in #673.

5) modified by chaining callbacks to possibly call a leaveRing callback.

6) DatabaseDescriptor will complain if any KeySpace entity is missing EndPointSnitch or ReplicaPlacementStrategy.
 Likewise, StorageService will complain if a bogus table is passed into getReplicationStrategy.
 TokenMetadata is the other place this could happen.  I believe the risk is mitigated through
TMD.getPendingRangesMM().  Are there any specific places you're worried about?  Many of the
methods that now accept a 'table' parameter get that parameter from a call to DD.getNonSystemTables().
 Those that don't and are called indirectly from a client should have had the keyspace parameter
checked for validity during thrift validation.  I think we're pretty safe here.

> Add per-keyspace replication factor (possibly even replication strategy)
> ------------------------------------------------------------------------
>                 Key: CASSANDRA-620
>                 URL:
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jonathan Ellis
>            Assignee: Gary Dusbabek
>             Fix For: 0.6
>         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-make-TMD-private-in-ARS.patch, 0010-fix-problems-with-bootstrapping.patch, 0011-remove-replicas-from-ARS.patch,
0012-ensure-that-unbootstrap-calls-onFinish-after-tables-.patch, v1-patches.tgz
> (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.

View raw message