Risposta breve: No.
In base alla progettazione, Cassandra valori di disponibilità e la partizione di tolleranza oltre la consistenza 1. Fondamentalmente, non è possibile ottenere una latenza accettabile mantenendo tutte e tre le qualità: una deve essere sacrificata. Questo è chiamato teorema CAP.
La quantità di coerenza è configurabile in Cassandra utilizzando i livelli di coerenza, ma non esiste alcuna semantica per il rollback. Non c'è garanzia che sarete in grado di ripristinare le modifiche anche se la prima scrittura ha esito positivo.
Se non si desidera creare un'applicazione con transazioni o blocchi su Cassandra, probabilmente si desidera esaminare Zookeeper, che può essere utilizzato per fornire la sincronizzazione distribuita.
Si potrebbe aver già indovinato, ma Cassandra non ha chiavi esterne o qualcosa del genere. Questo deve essere gestito manualmente. Non sono così familiare con Hector, ma un client di livello superiore potrebbe essere in grado di farlo in modo semi-automatico.
Se è possibile utilizzare Cassandra per sostituire facilmente un RDBMS dipende dal caso d'uso specifico. Nel tuo caso d'uso (basato sulle tue domande), potrebbe essere difficile farlo.
Grazie Lautis. Dopo aver considerato tutte le caratteristiche, abbiamo deciso di non andare per cassandra e attenerci al database relazionale. –
Buona discussione sulla mailing list di cassandra sulle transazioni: http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/best-practices-for-simulating-transactions-in-Cassandra-td7064256.html – Zanson
Grazie. Bella risposta! – Amresh