可用于实现高效字符串到 GVariant 值映射的存储需求。该项目提供简单数据库文件格式,支持内存映射快速查找,低存储开销,适合作为子模块集成到其他项目中。【此简介由AI生成】
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈
GVDB
GVDB(GVariant 数据库)是一种简单的数据库文件格式,它以极高效的方式进行查找,存储字符串到 GVariant 值的映射。
该代码旨在作为子模块/子项目被项目引入,并不单独编译为库。它不提供 API 保证。
GVDB 数据库表是单个文件。它被设计为可以被一个或多个客户端内存映射,对存储数据的访问速度快。存储格式具有很低的尺寸开销,假设 GVariant 格式的值不需要太多的填充或对齐。
修改 GVDB 表需要写入整个文件。这个过程相对较慢。gvdb_table_write_contents() 通过写入新文件并原子性地重命名覆盖旧文件来实现这一点。这意味着任何已经内存映射了旧文件的客户端都需要重新加载它们的内存映射。
这意味着,如果有多个客户端正在使用 GVDB 表,需要一个外部进程来同步写操作并通知客户端重新加载表。dconf-service 就是这样一个进程的例子。