10 分•作者: yaman071•6 个月前
返回首页
最新
2 分•作者: devluc•6 个月前
2 分•作者: ihemaz•6 个月前
3 分•作者: leonagano•6 个月前
我正在用 AI 来构建一个网站,让创业者们能够在线下见面交流。<p>产品中完全没有嵌入 AI。
1 分•作者: 0x79de•6 个月前
1 分•作者: Rhaast•6 个月前
1 分•作者: woldemariam•6 个月前
1 分•作者: zayat•6 个月前
1 分•作者: nanxiaobei•6 个月前
4 分•作者: crgwbr•6 个月前
2 分•作者: antfarm•6 个月前
1 分•作者: r4um•6 个月前
1 分•作者: samuel246•6 个月前
1 分•作者: rntn•6 个月前
37 分•作者: pseudolus•6 个月前
17 分•作者: salonium_•6 个月前
50 分•作者: scotchmi_st•6 个月前
5 分•作者: pseudolus•6 个月前
5 分•作者: rockeetterark•6 个月前
作为 TerarkDB(2019 年被字节跳动收购)的创建者,我近年来开发了 ToplingDB。
ToplingDB 源于 RocksDB,我们用更高效的替代方案替换了几乎所有组件(db_bench 显示 ToplingDB 比 RocksDB 快约 8 倍):
* MemTable:SkipList 被 CSPP(Crash Safe Parallel Patricia trie)取代,速度提高了 8 倍。
* SST:BlockBasedTable 被 ToplingZipTable 取代,它通过可搜索的压缩算法实现,体积非常小且速度快,通常每次查找少于 1 微秒:
* 键/索引使用 NestLoudsTrie(一个多层嵌套 LOUDS 简洁 trie)进行压缩。
* SST 中的值与比 zstd 更好的压缩比一起压缩,并且可以以 1GB/秒的速度解压缩单个值。
* 不再需要 BlockCache,避免了双重缓存(BlockCache & PageCache)
其他热点也得到了改进:
* 省略了将 MemTable 刷新到 L0 的过程,大大减少了写放大,并且对大型(GB 级)MemTable 非常友好
* MemTable 充当“WAL 日志中值的位置”的键索引
* 由于 WAL 文件内容几乎总是在页面缓存中,因此可以通过 mmap 有效地访问值内容
* 当发生刷新时,MemTable 被转储为 SST,而 WAL 被视为 blob 文件
* CSPP MemTable 使用整数索引而不是物理指针,因此内存中格式与文件内格式完全相同
* 用于搜索候选 SST 的前缀缓存和用于迭代器扫描的前缀缓存
* 将固定长度的键前缀缓存到一个数组中,并将其作为 uint 数组进行二分查找
* 分布式压缩(优于 rocksdb 的远程压缩)
* 优雅地支持 MergeOperator、CompactionFilter、PropertiesCollector...
* 开箱即用,大大减少了开发工作量
* 非常容易在许多数据库节点的现成实例上共享压缩服务
有用的额外功能:
* 通过 json/yaml 配置:可以配置几乎所有功能
* 可选的嵌入式 WebView:在 Web 浏览器中显示数据库结构,像动画一样刷新页面
* 通过 http 在线更新数据库配置
MySQL 集成,ToplingDB 已通过 MyTopling 集成到 MySQL 中,MyTopling 源于 MyRocks,并进行了重大改进,类似于 ToplingDB 对 RocksDB 的改进:
* WBWI(WriteBatchWithIndex):类似于 MemTable,SkipList 被 CSPP 替换,速度提高了 20 倍(加速超过 MemTable)。
* LockManager & LockTracker:速度提高了 10 倍
* 编码和解码:速度提高了 5 倍
* 其他...
与 InnoDB 相比,MyRocks 有许多缺点,而 MyTopling 在几乎所有方面都优于 InnoDB——除了功能差异。
我们为 RocksDB 创建了大约 100 个 PR,其中大约 40 个被接受。我们的 PR 主要是“小”改动,因为大的改动不太可能被接受。
ToplingDB 已部署在众多生产环境中。
欢迎大家使用 ToplingDB & MyTopling,并在 <a href="https://github.com/topling/toplingdb/discussions">https://github.com/topling/toplingdb/discussions</a> 中进行讨论
15 分•作者: sheremetyev•6 个月前