firecloud数据库扩展
hound的Python项目详细描述
猎犬
FireCloud数据库扩展
目的
此存储库包含hound数据库扩展系统的源代码。 该系统旨在提供一个低延迟系统,用于将更改记录到firecloud 工作区。
这允许通过查询数据库来重建属性来源。 历史记录,以及用于记录更改的外部工具。
用法
- 使用hound启用软件的用户在继续时自动生成日志 做他们的工作
- Hound可以从日志中重新创建属性值历史记录,以生成出处
格式
Hound在bucket文件夹中记录数据。条目是根据下面的列表组织的。
snowflake
引用hound的雪花实现自动生成的id。
雪花几乎可以保证是独一无二的(见下文)
- hound/:bucket中hound数据的根文件夹
- (示例对参与者集)/:实体元数据更改日志的文件夹
- (实体ID)/:实体数据的文件夹
- (attribute)/:每个实体上属性数据的文件夹
- (雪花):包含update对象的序列号文件
- (attribute)/:每个实体上属性数据的文件夹
- (实体ID)/:实体数据的文件夹
- workspace/:工作区级别元数据的文件夹
- (attribute)/:工作区上属性数据的文件夹
- (雪花):包含update对象的序列号文件
- (attribute)/:工作区上属性数据的文件夹
- logs/:事件日志文件夹
- (job upload meta other)/:特定事件条目的文件夹
- (雪花):包含日志项的文件
- (job upload meta other)/:特定事件条目的文件夹
- (示例对参与者集)/:实体元数据更改日志的文件夹
雪花规格
将22字节雪花编码为44字节(十六进制编码)对象名
- 64位(8字节)Unix时间戳(8字节浮点数)
- 64位(8字节)机器ID(基于节点名)仅使用6字节
- 16位(2字节)随机客户端ID(雪花对象初始化时生成)
- 16位(2字节)序列标识符(每个客户机从0开始,从0开始递增)
- 8位(1字节)零字段(保留)
- 8位(1字节)校验和字段(剩余字段之和)
唯一性
雪花的结构几乎保证了独特性。如果两个客户来自 同一台机器(或从具有相同mac地址的机器)创建雪花 在完全同一时间(在其系统时钟精度范围内)和上 到目前为止,客户机生成了相同数量的雪花(客户机具有相同数量的雪花 序列id),雪花碰撞的可能性为1/65536(基于 客户端ID)。