2015-08-27 37 views
1

r.uuid()保证是唯一的?r.uuid()保证是唯一的吗?

返回一个UUID(通用唯一标识符),一个可以用作唯一ID的字符串。

如何通用r.uuid()?它的作用域是RethinkDB的表/数据库/实例吗?还是仅仅计算随机字节序列的散列(例如/dev/rand)?或者它是否会散列nano-unix时间?

回答

4

您可以在here中查看相关问题的答案。

由于收集的可能性非常低,UUID应该是独一无二的。虽然理论上它们可能不是唯一的,因为它是一种随机生成UUID的算法,但几乎不会生成重复。

Wikipedia他们说,对于68,719,476,736生成的UUID(这是一个普通应用程序非常庞大的数字),你有一个意外冲突0.0000000000000004这几乎是不可能的..

0

UUID表示通用唯一标识符。在这方面,这个单词应该被认为是“实际上唯一”而不是“保证唯一”。由于标识符的大小是有限的,因此两个不同的项目可以共享相同的标识符。这是hash collision的一种形式。

任何人都可以创建一个UUID,并用它来确定某些具有合理可信度的内容,即任何人都不会无意识地创建相同的标识符以识别其他内容。

UUID只是一个128位的值。

+0

我知道的定义,但我很好奇,特别是'r.uuid()'的随机性的来源。 – jpillora

+1

然后我们需要详细研究源代码(https://github.com/rethinkdb/rethinkdb/blob/next/src/containers/uuid.cc) –

相关问题