gpt4 book ai didi

Cassandra:生成唯一 ID?

转载 作者:行者123 更新时间:2023-12-01 16:45:01 26 4
gpt4 key购买 nike

我正在研究分布式数据库。我正在尝试生成一个唯一 ID,该 ID 将用作 中的列族主键 .

我阅读了一些关于使用 UUID 使用 Java 执行此操作的文章,但似乎存在发生冲突的可能性(即使它非常低)。

我想知道是否有一种方法可以根据时间生成唯一的ID?

最佳答案

您可以在 Cassandra 中使用 TimeUUID 类型,它支持 Type 1 UUID。这使用当前时间和创建者的 MAC 地址以及序列号。如果正确生成了 TimeUUID 编号,则可以实现零冲突(您可以使用 CQL now() method 或插入您自己的,java SDK 提供了一些线程安全的实现)。 TimeUUIDs 的主要优点是 ID 可以按时间排序。请参阅http://wiki.apache.org/cassandra/TimeBaseUUIDNotes了解更多信息。

但是,时间排序不太可能对行主键有用,因为在使用哈希分区器时排序是无用的,尽管可以使用 clustering key 。而且,如果您自己推出唯一 ID,则生成唯一 ID 的复杂性可能会成为错误的来源。 Cassandra 还通过使用 UUID 类型来支持 Type 4 UUID。这些只是随机位。存在碰撞概率,但碰撞概率(假设不相关的随机数源,如果您在 Java 中生成,就会出现这种情况)非常低 - 如果您每秒创建 10 亿个,持续 100 年,则一次碰撞的概率约为 50% 。 (有关更多详细信息,请参阅http://en.wikipedia.org/wiki/Universally_unique_identifier#Random_UUID_probability_of_duplicates。)

关于Cassandra:生成唯一 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61798967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com