Golang Go语言 NutsDB v0.5.0 发布~

发布于 1周前 作者 songsunli 来自 Go语言

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

14 回复

🤩

更多关于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语言社区的一次重要更新,为开发者提供了更加高效、可靠的键值存储解决方案。

回到顶部