V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
xujiajun001
V2EX  ›  Go 编程语言

NutsDB v0.5.0 发布~

  •  
  •   xujiajun001 ·
    xujiajun · 2019-11-28 16:22:23 +08:00 · 5202 次点击
    这是一个创建于 1809 天前的主题,其中的信息可能已经有所发展或是发生改变。

    NutsDB v0.5.0 发布

    项目地址

    https://github.com/xujiajun/nutsdb

    Changelog

    • [New feature] Support EntryIdxMode: HintBPTSparseIdxMode

    • [New feature] Support GetAll() function for all models

    • [Bug Fix] Fix error too many open files in system

    • [Bug Fix] Fix constant 2147483648 overflows int

    • [Bug Fix] Fix when the number of files waiting to be merged not at least 2

    • [Bug Fix] Fix data pollution when executing the merge method

    • [Change] Modify Records type && Entries type

    • [Change] Refactor for tx Commit function

    • [Change] Update Iterating over keys about README

    • [Change] Fix some grammatical mistakes about README

    • [Change] Rename variable for func ReadBPTreeRootIdxAt

    • [Change] Add issue templates

    • [Change] Update README && CHANGELOG

    总结

    这次的变化,主要是增加了HintBPTSparseIdxMode 这个模式,这个模式下,经测试 10 亿条数据,只要 100mb 不到的内存消耗,起因是这个issue, 一哥们说消耗内存太大。

    最后

    最后,欢迎大家尝试,star 收藏+支持,提 issue,PR 贡献代码。

    13 条回复    2020-04-22 04:11:12 +08:00
    wsseo
        1
    wsseo  
       2019-11-28 17:45:24 +08:00
    🤩
    hijoker
        2
    hijoker  
       2019-11-29 11:19:49 +08:00
    为啥起这个名字啊....
    hijoker
        3
    hijoker  
       2019-11-29 12:10:38 +08:00
    怎么解决 gc 引起的问题?
    xujiajun001
        4
    xujiajun001  
    OP
       2019-11-29 21:55:06 +08:00
    @hijoker
    > 为啥起这个名字啊?
    想到坚果( nuts )给人印象是坚固的外壳(好比数据库很坚固)+里面营养的果实(类比装有用的数据)
    > 怎么解决 gc 引起的问题?
    你指的是 Go 引起的 GC 的问题?
    hijoker
        5
    hijoker  
       2019-11-30 11:58:34 +08:00
    @xujiajun001
    > nuts 还有另一层意思:silly, stupid, or strange:
    > 对,Go 的 gc 引发的问题
    xujiajun001
        6
    xujiajun001  
    OP
       2019-11-30 21:42:27 +08:00
    @hijoker
    > 当时查出来 nut 坚果,复数 nuts 都是坚果,基本上可以确定 nut 原意就是坚果。你说的估计出现在一定的语境中,而且应该不常用的。 你就按我的原意理解这个名字就好了。

    > 这个要具体问题具体分析了。 既然选择了 GO 开发,GC 是免不了,只能说你能接受多少 STW 的问题。老实说我没有特意去考虑解决 GC 引起的问题, 遇到问题再解决就好了。
    Mitt
        7
    Mitt  
       2019-12-01 08:20:42 +08:00
    @xujiajun001 我看美剧里 nuts 挺常见的,可能第一反应更多的是口语上的“疯子”
    xujiajun001
        8
    xujiajun001  
    OP
       2019-12-01 13:24:10 +08:00
    @Mitt 哦哦。 那我要取名字叫“坚果数据库”,要怎么翻译准确啊 [捂脸]
    Mitt
        9
    Mitt  
       2019-12-02 21:42:50 +08:00
    @xujiajun001 我感觉就用 nut 就好了,我英语也不咋的不能给准确建议,坚果云我看他们的英文是 nut store
    xujiajun001
        10
    xujiajun001  
    OP
       2019-12-03 09:34:05 +08:00
    @Mitt 嗯嗯。
    kulle
        11
    kulle  
       2019-12-14 19:52:05 +08:00
    搜索最新录入的 50 条记录应该如何操作? Prefix scans, Range scans 和 Get all 好像不太合适.
    xujiajun001
        12
    xujiajun001  
    OP
       2019-12-23 16:23:05 +08:00
    @kulle 我不知道你的 key 是怎么设计的,假设你的 key 类似 “ user_xxx” 你可以记下最大的 key (假设最新是“user_0000100”),作为 end key,减去 49 的那个数作为 start key (即 user_0000051 ),然后 Range scans 从 user_0000051 到 user_0000100,即最新的 50 的数 (在同一个 bucket )。
    wzw
        13
    wzw  
       2020-04-22 04:11:12 +08:00
    @xujiajun001 #12 是不是不带压缩, 存进去之前是不是自己用 zlib 压缩?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2316 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:09 · PVG 00:09 · LAX 08:09 · JFK 11:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.