2016-06-06 6 views
0

uuid ou Identificateur unique universel et timeuuid sont longue valeur de 128 bits.Comment compresser uuid et timeuuid?

Dans la base de données Cassandra et à cause de ses concepts je UUID et timeuuid pour notre identifiant des entités et maintenant je veux compresser UUID et timeuuid ou réduire sa taille lorsque le client (utilisateur) peut voir la id dans la barre d'URL.

Par exemple Twitter a également utilisé Cassandra mais quand vous ouvrez un Tweet, l'id Tweet est comme 10153967535312713 mais un simple, UUID est comme 10646334-2c02-11e6-bb4a-7720eb141b83 qui est plus de caractères et pas facile à utiliser (bien sûr les deux identifiants ne sont pas faciles à utiliser : D)

dans différents langages de programmation il y a des fonctions de compression, tels que gzcompress en PHP et GZIPOutputStream en Java, mais ces fonctions (classes) comprimera les données et revenir au format GZIP qui ne sont pas autorisés à utiliser dans l'URL!

Maintenant, en passant, y a-t-il un moyen ou une fonction/un algorithme pour obtenir une version plus petite ou compressée d'un uuid ou d'un timeuuide?

+2

Les UUID sont extrêmement peu susceptibles d'être compressibles - vous ne pouvez pas compresser des données aléatoires, et les UUID sont généralement randomisés. (Et toute donnée aléatoire plus courte aurait une probabilité proportionnellement plus élevée de ne pas être réellement unique.) –

Répondre

3

Twitter a développé à l'origine Snowflake il y a longtemps et je crois que c'est cet identifiant que Twitter utilise encore. Il y a maintenant many flake id implementations disponible qui peut générer un numéro UUID au lieu d'un vrai UUID. J'ai utilisé Flake Java dans un de mes projets.