1

Je suis confondu avec cassandra constance éventuelle vs séquençage des requêtes, j'ai Les questions suivantesséquençage d'exécution de la requête Cassandra vs problème de cohérence dans le temps

  1. Si je vous envoie 2 requêtes dans l'ordre (sans activer la propriété isIdempotent). La première requête est de supprimer l'enregistrement et la deuxième requête est de créer des enregistrements. Est-il possible que la requête 2 s'exécute avant la requête un.

mon code java ressemblera à ceci

public void foo(){ 
    delete(entity);//First delete a record 
    create(entity); //Second create a record 
} 

autre chose que je ne suis pas spécifier d'horodatage dans ma requête.

2) Ma deuxième question est, Cassandra est finalement cohérente. Et si j'envoie les deux requêtes ci-dessus dans un ordre séquentiel et il ne marche pas répliquées à tous les nœuds, ces requêtes seront maintenir l'ordre alors qu'en réalité, ça devient répliquées à tous les nœuds?

J'ai essayé de regarder la documentation cassandra, bien qu'il parle de séquençage des requêtes dans les opérations de traitement par lots, mais il ne marche pas parler de séquence de requête en fonctionnement non par lots.

J'utilise cassandra 2.1

+0

Regardez LWT. Notez que vous n'avez probablement pas besoin de cela pour la plupart des cas d'utilisation. – phact

+0

En fait, je veux savoir comment le séquençage fonctionne Cassandra sans LWT –

+0

victoires dernière écriture par horodatage – phact

Répondre

0

Par défaut, dans les versions modernes, nous utilisons horodatages côté client. Consultez la documentation du pilote ici:

https://datastax.github.io/java-driver/manual/query_timestamps/

Sur la base de l'horodatage, C * fonctionne à l'aide heuristiques LWW (dernière écriture gagne) si la création a un horodatage plus tôt que la suppression, une requête ne renvoie les données. Si le create a un horodatage plus récent, il le fera.

Si vous avez besoin Linéarisation, à savoir la garantie que certaines opérations seront exécutées dans l'ordre, vous pouvez utiliser des transactions légères basées sur Paxos:

http://www.datastax.com/dev/blog/lightweight-transactions-in-cassandra-2-0