I have contemplated using LocalStrategy as a "do it yourself client side sharding system".
On Sat, Oct 8, 2016 at 12:37 AM, Vladimir Yudovin <vla...@winguzone.com> wrote: > Hi Prasenjit, > I would like to get the replication factors of the key-spaces using the > strategies in the same way we get the replication factors for Simple and > NetworkTopology. > Actually LocalSarategy has no replication factor: > > SELECT * FROM system_schema.keyspaces WHERE keyspace_name IN ('system', > 'system_schema'); > keyspace_name | durable_writes | replication > ---------------+----------------+--------------------------- > ----------------------------------------- > system | True | {'class': > 'org.apache.cassandra.locator.LocalStrategy'} > system_schema | True | {'class': > 'org.apache.cassandra.locator.LocalStrategy'} > > > It's used for internal tables and not accessible to users: > > CREATE KEYSPACE excel WITH replication = {'class': 'LocalStrategy'}; > ConfigurationException: Unable to use given strategy class: LocalStrategy > is reserved for internal use. > > > Best regards, Vladimir Yudovin, > Winguzone - Hosted Cloud Cassandra on Azure and SoftLayer. > Launch your cluster in minutes. > > > > > ---- On Fri, 07 Oct 2016 17:06:09 -0400 Prasenjit > Sarkar<prasenjit.sar...@datos.io> wrote ---- > > Thanks Vlad and Jeremiah. > > There were questions about support, so let me address that in more detail. > > If I look at the latest Cassandra python driver, the support for > LocalStrategy is very limited (code snippet shown below) and the support > for EverywhereStrategy is non-existent. By limited I mean that the > Cassandra python driver only provides the name of the strategy for > LocalStrategy and not much else. > > What I would like (and happy to help) is for the Cassandra python driver to > provide support for Local and Everywhere to the same extent it is provided > for Simple and NetworkTopology. I understand that token aware routing is > not applicable to either strategy but I would like to get the replication > factors of the key-spaces using the strategies in the same way we get the > replication factors for Simple and NetworkTopology. > > Hope this helps, > Prasenjit > > > class LocalStrategy(ReplicationStrategy): > def __init__(self, options_map): > pass > def make_token_replica_map(self, token_to_host_owner, ring): > return {} > def export_for_schema(self): > """ > Returns a string version of these replication options which are > suitable for use in a CREATE KEYSPACE statement. > """ > return "{'class': 'LocalStrategy'}" > def __eq__(self, other): > return isinstance(other, LocalStrategy) > > On Fri, Oct 7, 2016 at 11:56 AM, Jeremiah D Jordan < > jeremiah.jor...@gmail.com> wrote: > > > What kind of support are you thinking of? All drivers should support > them > > already, drivers shouldn’t care about replication strategy except when > > trying to do token aware routing. > > But since anyone can make a custom replication strategy, drivers that > do > > token aware routing just need to handle falling back to not doing > token > > aware routing if a replication strategy they don’t know about is in > use. > > All the open sources drivers I know of do this, so they should all > > “support” those strategies already. > > > > -Jeremiah > > > > > On Oct 7, 2016, at 1:02 PM, Prasenjit Sarkar & > lt;prasenjit.sar...@datos.io> > > wrote: > > > > > > Hi everyone, > > > > > > To the best of my understanding that Datastax has proprietary > replication > > > strategies: Local and Everywhere which are not part of the open > source > > > Apache Cassandra project. > > > > > > Do we know of any plans in the open source Cassandra driver > community to > > > support these two replication strategies? Would Datastax have a > licensing > > > concern if the open source driver community supported these > strategies? > > I'm > > > fairly new here and would like to understand the dynamics. > > > > > > Thanks, > > > Prasenjit > > > > > > > > > >