为什么timeuuid没有任何碰撞?

coo*_*eze 3 cassandra

我正在阅读Datastax CQL参考:

不会发生可能会覆盖不打算覆盖的数据的冲突.

有人能解释为什么永远不会发生碰撞吗?它不可能或"高度"不可能吗?

小智 5

Cassandra的timeuuid是版本1 UUID,它基于生成UUID的机器的时间和MAC地址.

使用的时间精确到100ns,因此碰撞的可能性非常小(纳秒是百万分之一毫秒).

  • 此外,许多实现(包括C*)使用10,000 100ns分辨率作为单调递增计数器.这意味着每个节点每ms有10,000次调用"new uuid".极不可能以每毫秒10,000的速率插入,但如果你这样做,你可能会发生冲突. (3认同)