V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
huiwang520
V2EX  ›  程序员

高性能 KV 存储引擎 rosedb V2.1.0 & V2.2.0 发布

  •  1
     
  •   huiwang520 ·
    roseduan · 2023-06-29 09:36:24 +08:00 · 979 次点击
    这是一个创建于 502 天前的主题,其中的信息可能已经有所发展或是发生改变。

    rosedb 2.1 和 2.2 版本已发布,请使用最新 2.2 版本。

    项目地址:https://github.com/rosedblabs/rosedb

    V2.1.0

    新功能

    支持迭代器,用户可以方便的使用其来遍历数据库中的所有数据,并且支持正向和反向迭代,迭代器的几个主要的方法如:

    • Rewind:回到迭代器的第一个 key
    • Seek:找到第一个小于等于(或大于等于)给定 key 的值
    • Next:调到下一个 key
    • Key:获取当前的 key
    • Value:获取当前的 Value
    • Close:关闭迭代器

    支持前缀扫描,初始化迭代器时,可以传入一个前缀,只有匹配这个前缀的 Key 才会遍 历。基础使用方法如下:

    // create an iterator
    iterOptions := rosedb.DefaultIteratorOptions
    iter := db.NewIterator(iterOptions)
    defer iter.Close() // close the iterator after using it
    
    // iterate all data in the database
    for ; iter.Valid(); iter.Next() {
        key := iter.Key()
        val, _ := iter.Value()
        println(string(key), string(val))
    }
    

    Bug 修复

    • 感谢 @rfyiamcool 贡献 PR

      • #216 fix: update committed flag after batch commit

    V2.2.0

    新功能

    • 支持 Merge 方法,用于回收磁盘上的无效数据,清理磁盘空间

      • Merge 将会重写数据库中所有有效的数据,这样可以丢弃掉无效的数据。
      • Merge 过程中会生成 Hint 文件,此文件只存储索引,用于快速启动数据库
      • Merge 操作有可能是一个非常耗时的操作,特别是在数据量较大的情况下,所以建议在数据库空闲的时候执行
    • 添加 Windows 平台单元测试,可以在 Windows 上编译运行。添加对应的 workflow 测试脚本。

    lyhiving
        1
    lyhiving  
       2023-06-29 15:46:14 +08:00
    很神奇哦,github 的地址居然 TMD 的走了知乎链接跳转!!!!
    楼主要不就是在钓鱼要不就是不要脸地做统计!
    huiwang520
        2
    huiwang520  
    OP
       2023-06-29 16:08:11 +08:00
    @lyhiving 没其他的意思,可能是我从知乎 copy 过来的缘故
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1174 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:00 · PVG 07:00 · LAX 15:00 · JFK 18:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.