跳转到主要内容

Fity3是一个53位适合Twitter雪崩方案的生成器。

项目描述

Fity3是一个53位适合Twitter雪崩方案的生成器。

https://travis-ci.org/cablehead/python-fity3.svg?branch=master

其方案是

timestamp | worker_id | sequence
 41 bits  |  8 bits   |  4 bits

Twitter的雪崩方案用于id生成具有许多良好特性。在不协调的方式下,每秒可以创建大量大致排序的id。

然而,在用IEEE 754浮点数进行数值计算的环境中使用64位整数是痛苦的。特别是JavaScriptRedis排序集的分数

此方案允许

  • 69年的id(与雪崩相同)

  • 最多256个唯一id生成工作者

  • 每个工作者每毫秒最多可以生成16个id

  • 因此每秒最多4百万个id

如果您正在构建一个系统,它不太受欢迎,那么使用率将增长到每秒创建超过4百万个新事物,但您可以从不协调的增量id生成中受益,并且不想每次通过Websocket从JavaScript请求数据时都自讨苦吃,这个方案可能是一个有用的替代方案。

>>> import fity3
>>> f3 = fity3.generator(1)
>>> next(f3)
14127739136
>>> next(f3)
14132125952
>>> next(f3)
14135079168

# convenience to convert to a unix timestamp
>>> fity3.to_timestamp(14135079168)
1413374250

让我们希望我们不会在2079年支持这些系统中的任何一个。

项目详情


下载文件

下载适合您平台的应用程序文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

python-fity3-0.7.tar.gz (4.0 kB 查看哈希值)

上传于 源代码

支持者