Zig 中的神经形态 KV 存储
Source: Dev.to
Introduction
你好!在 2026 年,我决定用 Zig 开始一个新项目:一个名为 Walbash DB 的类神经形态数据库引擎。这个名字取自我在堪萨斯城长大的 Wabash 社区,以及 WAL(Write‑Ahead Log,预写日志)和 Bash(Bourne Again Shell)这两个概念的组合。名字有点傻,但已经定下来。
我正在开发一款游戏,并想借此机会探索类神经形态计算。数据库将用于存储我正在研发的类神经形态引擎的突触权重。
我并不是那种“聪明人”,我更倾向于低认知负荷的工作方式。在我的工程生涯中,我发现那些预置了大量特性的语言(例如 Scala、Rust)会让我效率下降。我在工作中使用 Go,但我想要一种更底层、能够提供最大控制权且认知上仍然直接的语言。Zig 正好符合我的需求。Odin 也是低层语言,但它的语法对我来说太像 Go,导致我很难摆脱写 Go 风格代码的习惯。Zig 引入了一套全新的肌肉记忆,这是我一直想要培养的。
学习数据库背后的理论相当具有挑战性。我读过很多数据库书籍,却常常在没有完全理解“为什么”的情况下复制粘贴代码。AI 成为了我的一个有用的研究伙伴,让我能够按自己的节奏、以自己的方式学习。然而,我也意识到我所追求的性能目标过于底层且小众,不能完全信任 AI 的输出,而且我不想失去自己动手学习和实现的乐趣。
这个项目纯粹是一次学习练习。我并不期待它具备竞争性的功能,且仅供个人使用。我会通过博客记录整个过程,以分享我的旅程并督促自己坚持下去。
在刚开始搭建数据库时进展会非常快,但一旦进入 memtable 和测试阶段,我预计进度会放慢——从零开始构建数据库是件艰难的事。我会在游戏、类神经形态引擎以及这个数据库之间分配时间,都是兼职进行。