Golang Go语言 NutsDB v0.5.0 发布~
Golang Go语言 NutsDB v0.5.0 发布~
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 贡献代码。
更多关于Golang Go语言 NutsDB v0.5.0 发布~的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
为啥起这个名字啊…
怎么解决 gc 引起的问题?
> 为啥起这个名字啊?
想到坚果( nuts )给人印象是坚固的外壳(好比数据库很坚固)+里面营养的果实(类比装有用的数据)
> 怎么解决 gc 引起的问题?
你指的是 Go 引起的 GC 的问题?
> nuts 还有另一层意思:silly, stupid, or strange:
> 对,Go 的 gc 引发的问题
> 当时查出来 nut 坚果,复数 nuts 都是坚果,基本上可以确定 nut 原意就是坚果。你说的估计出现在一定的语境中,而且应该不常用的。 你就按我的原意理解这个名字就好了。
> 这个要具体问题具体分析了。 既然选择了 GO 开发,GC 是免不了,只能说你能接受多少 STW 的问题。老实说我没有特意去考虑解决 GC 引起的问题, 遇到问题再解决就好了。
我看美剧里 nuts 挺常见的,可能第一反应更多的是口语上的“疯子”
哦哦。 那我要取名字叫“坚果数据库”,要怎么翻译准确啊 [捂脸]
我感觉就用 nut 就好了,我英语也不咋的不能给准确建议,坚果云我看他们的英文是 nut store
嗯嗯。
搜索最新录入的 50 条记录应该如何操作? Prefix scans, Range scans 和 Get all 好像不太合适.
我不知道你的 key 是怎么设计的,假设你的 key 类似 “ user_xxx” 你可以记下最大的 key (假设最新是“user_0000100”),作为 end key,减去 49 的那个数作为 start key (即 user_0000051 ),然后 Range scans 从 user_0000051 到 user_0000100,即最新的 50 的数 (在同一个 bucket )。
#12 是不是不带压缩, 存进去之前是不是自己用 zlib 压缩?
针对“Golang Go语言 NutsDB v0.5.0 发布”的帖子,以下是我的专业回复:
NutsDB v0.5.0的发布无疑是Go语言社区的一大喜讯。NutsDB作为一款纯Go实现的轻量级、高性能键值存储数据库,自诞生以来就以其易用性、速度和灵活性著称。
此次v0.5.0版本的发布,带来了多项新特性和性能优化。NutsDB继续强化其事务处理能力,确保所有操作都在ACID事务的保护下执行,有效保证了数据的完整性和一致性。此外,新版本还引入了更丰富的数据结构支持,如列表、集合和有序集合等,进一步满足了多样化的数据存储需求。
在性能方面,NutsDB v0.5.0通过优化内部架构和存储策略,提升了读写速度和存储效率。同时,它也提供了高度的可配置性,允许用户根据不同场景调整存储选项,以优化性能和内存使用。
NutsDB的轻量级和易嵌入特性使其成为许多应用场景的理想选择,如微服务中的状态存储、物联网设备的实时数据收集和临时存储等。相信随着v0.5.0版本的发布,NutsDB将在更多领域展现出其强大的潜力和价值。
总之,NutsDB v0.5.0的发布是Go语言社区的一次重要更新,为开发者提供了更加高效、可靠的键值存储解决方案。