返回首页

服务器上 9 万亿条记录的架构

架构使用坐标寻址和 Z-encoding 将 9 万亿条记录存储在 sparse files 中。针对 NVMe 优化,无索引和锁。通过 stat() 和 tiles 进行可视化。

iPhone 大小的文件中 9 万亿条记录
Advertisement 728x90

基于标准服务器的万亿级记录可扩展文件架构

地址先于记录:由星系和恒星坐标组成的64位路径构成密钥 EHO-7K3F-91QM-2X。每个星系是一个723 MB的稀疏文件(300万 × 256字节),实际填充率仅1%时约为7 MB。Linux系统不会将空闲空间写入磁盘。

目录层级每层最多容纳10万个文件:

galaxies/
  AA/
  AB/
  ...

共1,296个区域,每个区域包含约2,300个星系。内部采用Z阶编码(Morton曲线)混合x/y坐标位,提升访问局部性,显著减少磁头寻道。

Google AdInline article slot

记录结构与安全机制

恒星位置由偏移量固定;更新操作仍写入同一位置。空槽位用零填充,并通过CRC32校验。文件按需创建,永久保留。

密钥:GUID(2¹²²空间),以 Argon2(GUID + 坐标) 形式存储。结构体大小为256字节:

  • 1字节标志位(写入中状态)
  • 32字节 Argon2哈希值
  • 219字节数据
  • 4字节 CRC32校验值

无需锁机制:访问基于密钥。一旦丢失GUID,记录即不可恢复。

Google AdInline article slot

扩展性:前缀决定节点归属。无需共识、事务或主节点选举。

宇宙可视化与性能优化

宇宙地图(1170×2532):像素代表星系,亮度表示密度(stat() / 723 MB)。在NVMe设备上对300万次stat()调用耗时10–30秒——后台生成PNG图像。

星系地图:顺序读取723 MB(NVMe下240毫秒)或稀疏模式下的7 MB(2–3毫秒)。采用类似谷歌地图的瓦片渲染技术:按区域失效,黑色瓦片为静态内容。

Google AdInline article slot

与项目「ECHO」的对比

| 维度 | 「ECHO」 | 新架构 |

|--------|--------|-------------------|

| 规模 | 2.5亿 | 9万亿(相当于36个银河系) |

| 索引 | 内存中的JSON | 坐标即地址 |

| 结构 | 手动布局 | Morton曲线 |

| 认证方式 | PIN码 | GUID + Argon2 |

核心优势总结

  • 基于坐标的寻址方式彻底消除索引与注册表依赖。
  • 稀疏文件结合Z阶编码,在低密度场景下实现O(1)访问效率。
  • 仅需100台设备即可覆盖万亿级记录,无需额外基础设施。
  • CRC32校验与写入标志位保障数据完整性,无需锁机制。
  • 通过stat()调用与瓦片化渲染,支持从记录到星系的无缝可视化扩展。

— Editorial Team

Advertisement 728x90

继续阅读