加载中
记 MyTopling 分布式 Compact 触发的 glibc bug

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

2022/09/09 14:13
6
记 MyTopling 分布式 Compact 触发的 glibc bug

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

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

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

2022/08/24 17:28
11
ToplingDB 省略 L0 Flush

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

2022/08/17 11:21
17
发掘双数组Trie (Double Array Trie)的能力

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

2022/08/17 11:17
9
CompactionFilterFactory As SidePlugin

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

2022/08/17 11:11
13
ToplingDB 使用入门

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

2022/08/17 10:45
11
ToplingDB 使用 REST Web 在线修改配置

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

2022/08/17 10:33
23
ToplingDB 的 旁路插件化

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

2022/08/17 10:32
11
C++ Enum Reflection

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

2022/08/17 10:30
13
ToplingDB 的 Enum Reflection

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

2022/01/11 18:08
124

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部