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





Reply via email to