什么是“分散式唯一性算法”?

时间:2010-06-09 13:46:05

标签: algorithm computer-science

COM中用于创建GUID(CoCreateGUID)的函数使用“分散唯一性算法”,但我的问题是,它是什么?

任何人都可以解释一下吗?

2 个答案:

答案 0 :(得分:6)

一种生成ID的方法,该ID具有一定的唯一性,而不依赖于通过中央“ID提供者”的任何协调(这需要网络连接并且可能难以组织)。基本上有两种方法,实际上都没有提供绝对的保证:

  1. 为本地计算机使用合理唯一的ID(通常是其MAC地址)并添加本地唯一ID(例如时间戳+进程号+自动增量计数器)。
  2. 使用一个好的随机数生成器和良好的种子来生成ID并使其足够长,以至于碰撞不太重要。

答案 1 :(得分:0)

我搜索了我的本地图书馆和档案,但我找不到具体算法的参考。但通常这种类型的算法用于生成只能出现一次的128位GUID值。使用标准随机数生成算法不会生成真正的随机性。所以在这种情况下,他们采取了几个值,包括:

  1. 计算机网络地址
  2. 计算机时钟时间值
  3. 适用于夏令时的值以及用户对系统时钟的手动更改。
  4. 通过利用这样的功能,程序员可以确保GUID的值是唯一的,而无需跟踪和生成所有用户GUID值的集中式服务器。

    您可以阅读有关随机数生成here

    的更多信息