- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
This question从一般意义上回答它,它没有指定如果 UUID 生成不是集中的会发生什么。
我最近看到一个架构,其中所有设备(超过 100 万个 ios 和 android)都生成 UUID4 key (使用它们自己的生成器函数/库),并且这些 key 在同步时在服务器的数据库中标记为唯一。我担心,由于大约一百万台设备将尝试在本地生成,因此发生冲突的可能性会比上述问题中描述的要高。
我以前使用过集中式 UUID,但对这种类型的分布式系统还是陌生的,所以我用质数生成器做类比,在不同的环境中并行运行,这将使最终结果不是质数/唯一的。如果我的理解有误,请纠正我。
另外,请分享任何关于陷阱和在分布式环境中使用 UUID 的好文章。
编辑:此答案与 Python UUID generation 有关谈论冲突和使用 UUID1 而不是 UUID4。我想知道是否有任何文档可以确认 android 和 ios 设备上的这种 wrt 随机性。此外,我应该如何计算/估计这种碰撞的概率。
最佳答案
UUID 的全部意义在于它是普遍唯一的。
UUID 通常基于设备的 MAC 地址和时间戳等信息。每秒生成多个 UUID 的一百万台设备永远不会发生任何冲突。
除非 Apple 或 Google 搞砸了他们生成 UUID 的实现,否则您无需担心。
同样,UUID 的全部意义在于您不需要一个中央的单一服务器来生成所有 ID。
您链接的问题的许多答案都包含对 UUID 算法详细信息的引用。而且这个问题确实与集中生成 UUID 无关。
更新 - 由于重点是 UUID4,这里是 Wikipedia article about the probability of duplicates for UUID4 的摘录:
To put these numbers into perspective, the annual risk of a given person being hit by a meteorite is estimated to be one chance in 17 billion,[4] which means the probability is about 0.00000000006 (6 × 10−11), equivalent to the odds of creating a few tens of trillions of UUIDs in a year and having one duplicate. In other words, only after generating 1 billion UUIDs every second for the next 100 years, the probability of creating just one duplicate would be about 50%.
However, these probabilities only hold when the UUIDs are generated using sufficient entropy. Otherwise, the probability of duplicates could be significantly higher, since the statistical dispersion might be lower. Where unique identifiers are required for distributed applications, so that UUIDs do not clash even when data from many devices is merged, the randomness of the seeds and generators used on every device must be reliable for the life of the application. Where this is not feasible, RFC4122 recommends using a namespace variant instead.
根据我使用 iOS 的经验,iOS 使用的是 UUID4。综上所述,我不担心任何碰撞。
关于android - 如果在设备而非服务器上生成,UUID4 有多独特?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33537606/
对于 Prometheus 指标集合,如标题,我真的找不到只能通过 type Summary 完成的用例。 ,似乎它们都可以通过 type Histogram 以某种方式完成还。 让我们以请求并发度量
这个问题在这里已经有了答案: Ignore case while using duplicated (1 个回答) 关闭 9 个月前。 使用不区分大小写的 unique(tolower(x)) 删除
应用程序监控服务的一个有用功能是每次发生新的、独特的错误/问题/异常时发送警报(例如电子邮件)(即不是每次发生)。要么只是第一次,要么最多每次 X 次(一天或一周等)。例如,这可以通过 Visual
应用程序监控服务的一个有用功能是每次发生新的、独特的错误/问题/异常时发送警报(例如电子邮件)(即不是每次发生)。要么只是第一次,要么最多每次 X 次(一天或一周等)。例如,这可以通过 Visual
我想要相当于 DB2 中 MySql 的 GROUP_CONCAT 功能。 我尝试过 DB2 的 XML Aggrigate 函数来合并 murows。 SELECT a.ID, sub
我正在运行 python 数据库迁移脚本 (Flask-Migrate) 并添加了 alembic.ddl.imp import DefaultImpl 来解决第一组错误,但现在我收到以下错误。我正在
我有一个逗号分隔的文件“myfile.csv”,其中第 5 列是日期/时间戳。 (mm/dd/yyyy hh:mm)。 我需要列出所有包含重复日期的行(有很多) 我正在通过 cygwin 为 WinX
我使用的是 MySQL 5.7。 我有一个表格如下: -------------------------------------------------- | id | currentcy_id |
所以我有一个像这样的 ng-repeat: Join Ride /md-switch> 但是,每个 md-switch 都有相同的模型,因此当我在 Control
据我了解, Mongoose 预保存 Hook 在将文档插入集合之前但在验证发生之后触发。因此,如果一次验证失败,则不会调用预保存 Hook 。 就我而言,无论如何都会调用它们: 下面的简单代码的作用
如果我对我的目标文件执行此 grep,我会得到例如 275 作为结果。 但是我想学习 awk,所以在 awk 中尝试了这个: awk 'BEGIN { count=0 } /my pattern/
我是一名优秀的程序员,十分优秀!