2013-04-01 5 views
0

Actuellement, je teste certains systèmes de base de données (NoSql), et maintenant je teste quelque chose avec Cassandra. Il n'y a pas d'option pour Auto-increment a par exemple userID comme dans MySQL. Maintenant, est la question, comment je peux générer des UUID à travers un cluster complet? Facebook a également utilisé Cassandra dans l'histoire, et ils génèrent aussi un userID (https://developers.facebook.com/tools/explorer/?method=GET&path=me). Comment ont-ils fait cela?Cassandra - ID utilisateur unique sur le cluster

Répondre

3

Vous devez utiliser l'un des types UUID - UUIDType ou TimeUUIDType. Utilisez TimeUUIDType si vous voulez être en mesure de commander vos ID par heure. Enveloppez-le dans ReversedType si vous voulez obtenir le plus récent en premier, plutôt que le plus ancien en premier.

1

un identifiant unique est juste une combinaison de l'ordinateur mac (ou vous pouvez utiliser le nom d'hôte) plus un identifiant unique sur cette machine (à travers les redémarrages du serveur). PlayOrm pour cassandra génère en réalité des identifiants courts en gardant cela à l'esprit en utilisant system.currenttimemillions mais avec des ajouts pour le rendre unique quand c'est nécessaire. Le type TimeUUID est mac + time (plus un peu de temps pour le rendre unique dans la machine).

Dean

Questions connexes