Hi,

I'd like to open discussion about this CEP: 
https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-21%3A+Transactional+Cluster+Metadata
 
<https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-21:+Transactional+Cluster+Metadata>
       
Cluster metadata in Cassandra comprises a number of disparate elements 
including, but not limited to, distributed schema, topology and token 
ownership. Following the general design principles of Cassandra, the mechanisms 
for coordinating updates to cluster state have favoured eventual consistency, 
with probabilisitic delivery via gossip being a prime example. Undoubtedly, 
this approach has benefits, not least in terms of resilience, particularly in 
highly fluid distributed environments. However, this is not the reality of most 
Cassandra deployments, where the total number of nodes is relatively small 
(i.e. in the low thousands) and the rate of change tends to be low.  

Historically, a significant proportion of issues affecting operators and users 
of Cassandra have been due, at least in part, to a lack of strongly consistent 
cluster metadata. In response to this, we propose a design which aims to 
provide linearizability of metadata changes whilst ensuring that the effects of 
those changes are made visible to all nodes in a strongly consistent manner. At 
its core, it is also pluggable, enabling Cassandra-derived projects to supply 
their own implementations if desired.

In addition to the CEP document itself, we aim to publish a working prototype 
of the proposed design. Obviously, this does not implement the entire proposal 
and there are several parts which remain only partially complete. It does 
include the core of the system, including a good deal of test infrastructure, 
so may serve as both illustration of the design and a starting point for real 
implementation. 

Reply via email to