加载中
大道至简,事半功倍:MultiGet IO 并发在 ToplingDB 中的协程实现,以及在 MyTopling 中的落地应用

(一)背景 三年前,我用 Fiber(协程) 实现了 TerarkDB 中 MultiGet 的 IO 并发,因为 TerarkDB 分叉自 RocksDB 5.18,其 MultiGet 实现简单直接,所以我可以用 10 行代码就对其完成 Fiber(...

记 MyTopling 分布式 Compact 触发的 glibc bug

(一)背景 MyTopling 是基于 ToplingDB 的 MySQL,分叉自 MyRocks,ToplingDB 则分叉自 RocksDB,兼容 RocksDB 接口,从而 MyTopling 可以复用 MyRocks 的大部分成果。 ToplingDB 早已开源,...

记 MyTopling 分布式 Compact 触发的 glibc bug

(一)背景 MyTopling 是基于 ToplingDB 的 MySQL,分叉自 MyRocks,ToplingDB 则分叉自 RocksDB,兼容 RocksDB 接口,从而 MyTopling 可以复用 MyRocks 的大部分成果。 ToplingDB 早已开源,...

代码修改的微创手术法:RocksDB MultiGet 的协程优化,10 行代码提升 10 倍性能

1. 背景 三年前,我还在努力改进曾经的 TerarkDB,其中一个改进就是通过 fiber(Coroutine 协程) 提升 MultiGet 性能。 彼时 linux 的 io uring 还远未成熟,所以使用的是 aio,虽然 aio 仅支...

ToplingDB 省略 L0 Flush

ToplingDB fork 自 RocksDB,自然而然地兼容了 RocksDB 的生态,但是,兼容 RocksDB 有优点,就自然有缺点,例如 RocksDB 的 L0 Flush 在我们看来就完全是多余的,但是,要去掉 L0 Flush,并...

AC 自动机的实现(使用双数组 DoubleArray Trie 树)

  关于 AC 自动机,有太多的文章在讲述它的原理,讲述者借此来展示自己的算法能力。但其实AC自动机的原理很简单,真正困难的地方在于一个高效的实现!对于任何一个基础算法,一个好的实现都...

发掘双数组Trie (Double Array Trie)的能力

  描述 Double Array Trie 的文章有很多,我在这里从另一个视角来讲 Double Array Trie。首先,是 base 和 check 的更深层含义,然后再详细说一下由此引申出来的问题。   Double Array ...

CompactionFilterFactory As SidePlugin

背景 在稍微复杂点的 RocksDB 应用中,都少不了使用 CompactionFilter,虽然可以直接在 Options 中设置 CompactionFilter 对象,但我们还是更多地使用 CompactionFilterFactory,因为 Compac...

ToplingDB 使用入门

本文原始链接:101 · topling/rockside Wiki 从 RocksDB 迁移到 ToplingDB,只需要修改 Open/Close 相关的代码,其它代码不用任何改动。 示例代码(省略错误处理,完整版在这里) #include...

ToplingDB 使用 REST Web 在线修改配置

使用 ToplingDB,可以在 json/yaml 中设置配置参数,这些配置参数在进程运行过程中是固定的,无法修改。然而,在实际应用中,在线修改配置参数是个很现实的需求。 2022-03-04,我们通过内嵌的...

ToplingDB 的 旁路插件化

背景 在 RocksDB 中,有大量 XXXXFactory 这样的类,例如 TableFactory,它用来实现 SST 文件的插件化,用户要换一种 SST,只需要配置一个相应的 TableFactory 即可,这其实已经很灵活了。 ...

C++ Enum Reflection

1. 概述 简而言之,编程语言中的反射(Reflection)指的是从运行时中获取语言本身的类型等信息。C++ 缺乏这样的机制,对于最简单的 enum 类型,我们或许可以实现带有反射功能的 enum。 我们实...

ToplingDB 的 Enum Reflection

1. 概述 简而言之,编程语言中的反射(Reflection)指的是从运行时中获取语言本身的类型等信息。C++ 缺乏这样的机制,对于最简单的 enum 类型,我们或许可以实现带有反射功能的 enum。 我们实...

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部