zl程序教程

您现在的位置是:首页 >  Java

当前栏目

NutsDB v0.11.0发布,启动速度提高一倍

2023-02-18 16:47:03 时间

你好,我是太白。

本文讲下NutsDB v0.11.0发布情况。

  • NutsDB的项目地址
  • 本次v0.11.0发布的主要改动
    • 1、bug的修复
    • 2、新功能
    • 3、性能优化
    • 3、重构
    • 4、杂项
  • 整个v0.11.0的迭代的始末
  • nutsdb v0.12.0报名
    • nutsweb v0.1.0的进展
  • 招募开发者
  • 加群

NutsDB的项目地址

https://github.com/nutsdb/nutsdb, 欢迎star关注我们。

目前主要使用场景:

  • 嵌入式应用,用于存储定时间段的数据(已有人用在生产)
  • 存储Meta信息(例子:https://github.com/cloud-barista/cb-store)
  • 加密存储(例子:https://github.com/jrapoport/chestnut)
  • 本地队列(已有人用在生产)
  • 本地缓存

其他github上统计的开源项目:https://github.com/nutsdb/nutsdb/network/dependents?package_id=UGFja2FnZS0yMjY0ODU0MDM5

参考

  • https://github.com/nutsdb/nutsdb/network/dependents?package_id=UGFja2FnZS0yMjY0ODU0MDM5
  • https://github.com/nutsdb/nutsdb/issues/27

本次v0.11.0发布的主要改动

非常感谢参与贡献的小伙伴,我把相关PR(#PR编号)贡献的小伙伴的github名放在后面了(类似@xxx)。

本次改动主要分以下几类(详见:https://github.com/nutsdb/nutsdb/issues/219):

1、bug的修复

  • In BPTSparse when combination of bucket and key is repeated (#207) @ShiMaRing
  • MInInt function compatible with 32-bit operating systems (#208) @xujiajun
  • Index EOF issue#213 (#214) @xujiajun

2、新功能

  • 支持了正向和反向的迭代 (EntryIdxMode: HintKeyAndRAMIdxMode and HintKeyValAndRAMIdxMode) (#202) @zeina1i
  • 支持bucket迭代的正则匹配(#198) @Nailcui
  • 内存模式支持获取bucket中的所有key (#206) @Nailcui
  • 内存模式支持PrefixScan前缀扫描 (#211) @Nailcui

3、性能优化

本次性能优化主要对db启动做了提升,小value的情况下(小于4k)性能可以提高一倍以上。

  • Optimize concurrent read performance (#205) @elliotchenzichang
  • Use biobuf optimaze startspeed (#212) @elliotchenzichang

下面是@elliotchenzichang的公众号,里面有优化的说明,可以看下

nutsdb启动速度优化之旅

记录一次Bufio.Reader错误使用姿势引发的思考

3、重构

  • make default options to be created in a factory method (#196) @elliotchenzichang
  • use size constant value (#204) @elliotchenzichang

4、杂项

  • 添加 iterator的 example (#209) @xujiajun
  • 移除了 option StartFileLoadingMode (#218) @xujiajun

整个v0.11.0的迭代的始末

  • 1、首先会发起一个proposal,即一些提议
  • 2、然后发起报名
  • 3、报名之后领取相应的任务来做

报名的人员,我们会在每周发起一次讨论,主要是同步下进度和遇到的问题等。

整个过程是透明和可追溯的,所以自己的贡献,别人都看得到的,不要吝啬你的贡献哈。

nutsdb v0.12.0报名

v0.12.0马上也要开始了,有兴趣的可以加群来找我报名。后面会根据实际情况做调整。

大致分为:

1、单测类

提高单测覆盖率

2、功能类&性能类

目前open的issue挑选一些,方便落地的&也准备了一些有难度的可选,https://github.com/nutsdb/nutsdb/issues

3、周边项目

  • nutsweb:nutsdb的web可视化
  • nutsdb-bench:nutsdb的性能测试
  • nutsdb-docs:nutsdb的文档

nutsweb v0.1.0的进展

nutsweb项目0.1.0版本,基本实现了基础的查询功能(还没发布,测试中)。

nutsweb这个项目(https://github.com/nutsdb/nutsweb)主要是对nutsdb提供可视化的能力和nutshttp(https://github.com/nutsdb/nutshttp,提供nutsdb http访问的能力)配合使用。目前是 @ShiMaRing在贡献着,开发了主要的v0.1.0的功能。希望能招募到人,开发接下去的版本。