new*_*ple 8 counter guid distributed-computing sequence concurrent-programming
我很好奇在分布式和并发环境中生成唯一序列号的约束和权衡.
想象一下:我有一个系统,它所做的就是每次提出时都会返回一个唯一的序列号.这是这种系统的理想规范(约束):
显然,这是一个理想化的规范,并非所有约束都可以完全满足.参见CAP定理.但是,我很想听听您对各种限制因素的分析.我们将留下什么类型的问题以及我们将使用什么算法来解决剩余的问题.例如,如果我们摆脱了计数器约束,那么问题就变得容易了:因为允许间隙,我们可以对数值范围进行分区并将它们映射到不同的机器上.
欢迎任何参考(论文,书籍,代码).我还想保留一份现有软件清单(开源与否).
软件:
如果您必须按顺序(每台机器)但可以放弃间隙/计数器要求,请查找RFC 4122中指定的版本 1 UUID 的实现。
如果您使用 .NET 并且可以消除顺序和间隙/计数器要求,则只需使用System.Guid即可。它们实现了 RFC 4122 版本 4,并且在机器和请求之间已经是唯一的(冲突概率非常低)。这可以很容易地实现为网络服务或仅在本地使用。
| 归档时间: |
|
| 查看次数: |
781 次 |
| 最近记录: |