Est unique id de génération à l'aide de l'UUID de vraiment unique?
Je veux générer des ID unique tout comme incrément automatique en java . Donc, auparavant, j'ai utilisé nano secondes, mais je me retrouve avec des clash depuis deux données est livré avec la même nano secondes ..
Ne UUID résout le problème ci-dessus ?
Remarque: Dans mon projet, je peut même obtenir 10000 lignes d'enregistrements pour chaque et chaque minute, et je vous le vidage de ces registres ainsi que les LIQUIDES dans le tableau .Et il peut y avoir une situation où je voudrais arrêter mon produit et de le redémarrer après un certain temps ....Donc, au cours de cette situation, comment pourrait UUID classe précise le déjà généré des Uides(que j'ai stocké dans la bd) avec le nouveau crée(Encore sous-évaluées en DB) ?
OriginalL'auteur vijayasankarj | 2011-04-20
Vous devez vous connecter pour publier un commentaire.
Tandis que les Uuid sont pas garanti être unique, la probabilité d'un duplicata est extrêmement faible. Voir Aléatoire l'UUID de la probabilité de doublons.
Pour votre application, il est logique d'utiliser l'UUID, mais vous souhaitez peut-être faire face avec la condition extrêmement rare, juste au cas où.
Selon le documentation, les Uuid sont générés à l'aide d'un chiffrement générateur de nombre aléatoire. Depuis l'UUID est de 128 bits, il est d'une taille limitée, et il y a une très faible probabilité qu'un UUID peut être généré à nouveau, mais pas quelque chose pour pratiquement s'inquiéter.
Dans mon projet, je peux même obtenir 10000 lignes d'enregistrements pour chaque et chaque minute, et je vous le vidage de ces registres ainsi que les LIQUIDES dans le tableau .Et il peut y avoir une situation où je voudrais arrêter mon produit et de le redémarrer après un certain temps ....Donc, au cours de cette situation, comment pourrait UUID classe précise le déjà généré des Uides(que j'ai stocké dans la bd) avec le nouveau crée(Encore sous-évaluées en DB) ?
Eh bien, c'est la façon de chiffrement des générateurs de nombres aléatoires de travail. Ils génèrent une (pseudo) au hasard nombre, et la gamme est suffisamment grande pour faire des collisions presque un non-problème.
D'accord merci beaucoup 🙂
OriginalL'auteur AbdullahC
Je doute sérieusement que vous obtenez deux enregistrements dans la même nano-seconde à faire de l'appel Système.nanoTime() prend plus de 100 ns. Il est plus probable que votre horloge n'a pas de nano précision d'une seconde.
Toutefois, si vous redémarrez votre serveur, vous pouvez obtenir de répéter nanoTime().
Un moyen de contourner cela est d'utiliser
Cela va démarrer un compteur lorsque le redémarrage de l'application et ils ne seront pas de chevauchement entre les redémarrages à moins que vous subissez plus d'un million d'utilisateurs par seconde. (Sur la durée de vie de l'instance)
Remarque: cela ne fonctionne que pour les par exemple. Plusieurs serveurs ont besoin d'utiliser une approche différente.
OriginalL'auteur Peter Lawrey
Il semble y avoir une certaine confusion sur cette page à propos de la nature de l'UUID.
Étude de la page Wikipedia. Vous verrez therme sont les différentes versions de l'UUID.
La version originale représente un point dans l'espace et le temps, de ne jamais être répété. Il le fait en utilisant l'adresse MAC de la machine sur laquelle il est généré (un point dans l'espace). Pour cela, il combine le moment. Ajoutez à cela un nombre arbitraire qui s'incrémente quand un changement dans l'horloge de l'ordinateur est remarqué, non pas comme un problème, maintenant que les ordinateurs ont intégré dans les batteries et les connexions de réseau de serveurs de temps. En combinant ces éléments, il n'est pas pratique de chances de collisions.
En raison de préoccupations sur la sécurité et les questions de confidentialité impliqués dans le suivi et la communication de l'adresse MAC et le moment, certaines personnes peuvent ne pas vouloir utiliser cette version. Par exemple, Sun/Oracle a choisi de ne pas inclure dans Java de mise en œuvre pour la génération de la Version 1 UUID valeurs.
Celle couramment utilisée est la version de la Version 4, dans lequel 122 de la 128 bits sont générées aléatoirement. Si un chiffrement puissant générateur aléatoire est utilisé, c'est assez efficace. C'est beaucoup plus de chances de collisions que dans la Version 1. Mais pour la plupart des scénarios, basés sur le hasard UUID est entièrement fiable.
OriginalL'auteur Basil Bourque