Hasty Briefsbeta

双语

Build Your Own Database

7 months ago
  • #key-value
  • #database
  • #LSM-tree
  • 键值数据库通过键存储数据,并可通过相同的键检索数据。
  • 持久化数据存储可通过文件实现,但原地更新和删除效率较低。
  • 仅追加文件使记录不可变,将更新和删除视为追加到文件的新记录。
  • 重复键和文件大小增长是仅追加文件面临的挑战。
  • 分段(Segments)和压缩(Compaction)通过定期合并和清理旧数据来管理文件大小。
  • 索引通过存储记录偏移量提升查询性能,但会降低写入速度。
  • 排序字符串表(SST)通过按键排序数据,支持高效的范围查询。
  • LSM(日志结构合并)树结合内存中的有序列表(memtable)和磁盘上的SST,实现快速的键值操作。
  • LSM树用于LevelDB、DynamoDB等大规模数据库,在高负载下仍能保持高性能。