Go 语言写的 KV 引擎 NutsDB 的前生今世 & 招募开发者共建 NutsDB

2022-03-13 11:46:07 +08:00
 xujiajun001

昨天我写了一篇微信公众号文章,来自我的公众号『太白技术』,标题《那些年我做的开源项目之 KV 引擎( NutsDB )》

原文地址:

https://mp.weixin.qq.com/s/jrx9AHt49WP913CxiY7ewQ

NutsDB 是什么

NutsDB 是笔者在 2019 年 1 月份开源的,截止今天已经开源三年有余。它是一款简单的、高性能的纯 Go 语言开发的内嵌型 KV 引擎,支持基本的 Get 、Put 、Delete 操作、TTL ,还支持类似 Redis 的 List 、Set 、Sorted Set ,还支持 ACID 的事务。截止本文发布,最新版本是 v0.7.1 。

Star 增长趋势

目前 NutsDB 已经接近 2k 的 star

里程碑事件

具体见: https://github.com/xujiajun/nutsdb/blob/master/CHANGELOG.md

被用在生产环境

https://github.com/xujiajun/nutsdb/issues/27

被开源项目使用(部分)

内容摘自: https://github.com/xujiajun/nutsdb/issues/27

更多,大概还有 100+项目使用: 详见链接: https://github.com/xujiajun/nutsdb/network/dependents?package_id=UGFja2FnZS0yMjY0ODU0MDM5

招募开发者共建

我知道 v 站上卧虎藏龙,希望有兴趣的 v 友,来参与进 NutsDB 的贡献。

我专门开了一个 issue: https://github.com/xujiajun/nutsdb/issues/116

我发现我做 nutsdb 精力和能力都不够,我希望能吸引更多开发者,特别是这方面专业的,nutsdb 发展还很早期,等你的加入,现在加入门槛非常低,只要你会 go ,甚至不会也没事,学一下就好,最主要你有热情,有意愿,有学习力,这个项目非常有潜力,让我们一起打造一个知名项目!有想法联系我报名!

主要方向:

我们一起讨论确定做的事情,然后按照节奏推进,可以慢一点没事。

加群

欢迎加群,如果已经过期,加我个人微信( xujiajun1234567 ),备注:nutsdb ,我拉你进群

2990 次点击
所在节点    Go 编程语言
19 条回复
xujiajun001
2022-03-13 14:22:48 +08:00
目前包括我自己,已经有 3 个开发者,欢迎新的开发者加入!
dongcidaci
2022-03-13 15:02:37 +08:00
支持个
thursday
2022-03-13 16:38:33 +08:00
将来会和 redis 有啥不同?
junnplus
2022-03-13 18:11:21 +08:00
共建的话,不应该搞成组织的形式么
xujiajun001
2022-03-13 23:18:48 +08:00
xujiajun001
2022-03-13 23:20:03 +08:00
@thursday 发展成什么样 大家讨论,我的想法做成大容量的 redis
xujiajun001
2022-03-13 23:20:17 +08:00
@dongcidaci 感谢支持
jo3yzhu
2022-03-14 00:20:44 +08:00
无意冒犯,看起来像是一个重复造 lsm tree 轮子的项目……是否需要先找到本项目的目标?方便初学者学习和上手?对特定场景做优化(压缩,新介质)?
最后,要推广生产的话,是否至少需要一些特性总结和 benchmark ?例如和 badger 相比的优劣势,而不是在推广文章里草草一句"写性能没有那么高"一笔带过吧……
ddxx200
2022-03-14 00:58:45 +08:00
建议走极致低时延内存数据库这个方向
Vaspike
2022-03-14 08:59:38 +08:00
支持
binbinyouliiii
2022-03-14 09:58:18 +08:00
话说这个遇到 GC 怎么办
littlewing
2022-03-14 10:52:50 +08:00
跟 levelDB 和 RocksDB 相比,除了 go 原生,有啥优势
xujiajun001
2022-03-14 16:03:58 +08:00
想加群的小伙伴注意下,上面的二维码 已经超 200 了,只能加我 wx 。

或者这个链接的有个中转群 可以扫码: https://github.com/nutsdb/nutsdb/issues/116
xujiajun001
2022-03-14 20:50:12 +08:00
@jo3yzhu 谢谢你的评论。我非常欢迎各种中肯的建议意见。也欢迎你加群,大家有想法一起讨论。关于目标,我会好好想一下,也听听大家的建议。你说的优劣势其实项目文档里面都写了,只是有些你会觉得我主观。benchmark 看下第三方评测吧 https://github.com/smallnest/kvbench ,fsync 方式表现还有很大提高空间。nofsync 方式吞吐表现比 badger 总体要好一些(关于写的吞吐 badger 39945 ,nutsdb 113455 )。
xujiajun001
2022-03-14 20:53:28 +08:00
@littlewing 重来没想过干倒他们,我相信每个项目都有存在的意义,当然后面为了好宣传,会找一些他们做的不好的地方来优化或者借鉴都是有可能的。还有 go 原生 难道这点还不够吸引人吗
xujiajun001
2022-03-14 20:53:43 +08:00
@ddxx200 谢谢你的建议
xujiajun001
2022-03-14 20:54:38 +08:00
@binbinyouliiii 这个是个好问题。go 的 gc 一直在变好,如果对场景真的非常苛刻,当然还是得上无 gc 的
lbp0200
2022-03-15 14:20:41 +08:00
用 tendis 就好了
xujiajun001
2022-03-15 23:50:00 +08:00
一些 proposal 草案: https://github.com/nutsdb/proposal 大家可以看下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/839996

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX