Nous savons qu'il est facile de créer des ID auto-incrémentés dans les bases de données SQL, existe-t-il une bonne solution pour cela dans Cassandra ? Les IDs doivent être pour la clé ou le nom de la colonne.
Réponse
Trop de publicités?Est-ce qu'ils vraiment doivent être séquentiels, ou avez-vous simplement besoin de numéros de comptage beaucoup plus petits qu'un UUID et facilement saisissables par une personne ?
Si vous avez vraiment besoin de numéros séquentiels, vous devrez procéder de l'une des manières suivantes.
-
Avoir une table dans cassandra où la clé/id est un champ pour le générateur, et la valeur est un nombre... faire des mises à jour conditionnelles dans une boucle jusqu'à ce que vous incrémentez le compte avec succès. (mauvaise idée)
-
Ayez un service de générateur qui vous donnera le prochain numéro. Ce service ne peut fonctionner que sur un seul système et constitue un point de défaillance unique, mais selon vos besoins, c'est peut-être la meilleure solution.
Autre solution... Similaire à la première, mais obtenez des lots d'une centaine de numéros à la fois, et traitez-les dans votre processus/fil... Il y aura moins de contention, mais aucune garantie d'ordre séquentiel, seulement d'unicité... Si vous ne voulez que des numéros courts et uniques pour l'affichage, c'est peut-être votre meilleure option.
- Réponses précédentes
- Plus de réponses