我的编程故事—7 第二个开源项目

上一回说到,我从业务开发转到了分布式存储的岗位,前后主要参与了组内的数据库代理(DB Proxy)和分布式 KV 存储组件的开发和维护。从一个纯粹的 CRUD 业务开发转到了自己梦寐以求的基础架构岗位,心里还是非常兴奋的。

这段时期内主要接触和学习了公司内生产级的分布式 KV 和单机存储引擎都是什么样子的,给自己涨了很多见识,以及学习了很多这方面的专业知识。

这一段时间也激发了我新的创造灵感,让我开始了自己的第二个开源项目 LotusDB。

在一天上班的路上,我突发奇想,在存储引擎方向,能不能结合 B+ 树和 LSM 树的优势,毕竟一个是读稳定,一个是写吞吐更好的,有没有什么项目是结合了这两个 idea 的呢?

有了这个想法之后,我便开始了初期的调研,主要是在网上搜索相关的内容,发现了有一些类似的概念,例如在 usenix 上有一篇名为 SLM-DB 的论文和我的想法大致是类似的。

https://www.usenix.org/system/files/fast19-kaiyrakhmet.pdf

有了这个理论支撑之后,我便有了更多的底气,然后在 Github 上也没有找到同类型的项目,看起来是没有人去做的。

于是我召集了几个志同道合的同学,加我总计四人,开始了这个项目的设计和编码,最终项目的 demo 版本在 1 个月左右的时间就做出来了,主要是复用了之前 RoseDB 的一些代码,并且利用了一些现成的组件,在最短的时间内将我最初的想法进行了实践和验证。

当然,这个项目一开始就是开源的,初期也获得了很多的关注,我之前在公众号还专门写过文章去进行介绍,然后也上过几次 Github Trending 榜单。

后来架构方面也进行了一些演进,目前已经到了最新的 V2.0 版本,star 也已经 1.8k 了,只是目前这个项目到生产环境还有一段的距离,后面会持续进行迭代。

img

在工作方面,算是中规中矩的进行着,到了 2022 年上半年的时候,在上海经历了几个月严重的疫情肆虐,开始了很长一段时期的居家办公。

2022 年中,我在第二家公司已经待了一年办左右,解封之后,长期的居家办公让我身心俱疲,加上其他的一些原因,让我有了看看新机会的想法。于是我开始了又一次跳槽,转到了数据库内核开发的岗位,这一次找工作的细节,留待下次再细说。