[
https://issues.apache.org/jira/browse/CASSANDRA-620?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12802324#action_12802324
]
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 tests.
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: https://issues.apache.org/jira/browse/CASSANDRA-620
> 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.