gpt4 book ai didi

key-value-store - 如何在单个 levelDB 实例中创建多个逻辑表?

转载 作者:行者123 更新时间:2023-12-04 07:02:11 24 4
gpt4 key购买 nike

我正在开发一个分布式键值系统(或数据存储),它使用 levelDB作为其后端的嵌入式数据库库。

我想要一个节点/机器托管多个表(用于复制和负载平衡)。我知道 levelDB 没有表的概念,所以我不能以表的形式对我的数据进行逻辑分区(因此不能使用这些表作为我的基本分布单位)。

我的问题是:是否规定在 levelDB 的单个实例中具有多个“逻辑表”?

据我所知,我可以在我的节点上运行多个 levelDB 实例,每个实例处理一个表。但我不想这样做,因为在这种情况下,当同时访问这些多个数据库实例时,会出现严重的争用(我相信在磁盘上)。虽然在单个 DB 实例中拥有多个逻辑表可以为我提供 levelDB 优化的优势,以最大限度地减少磁盘访问。

最佳答案

如果您想在 LevelDB 中拥有多个“逻辑表”,那么您必须对键空间进行分区或为键添加前缀。为每个表创建一个不同的前缀,例如:

0x0001 is for table 1
0x0002 is for table 2
0x0003 is for table 3
and so on...

因此,键将由表前缀和键本身组成:[0x0001,0xFF11] 将寻址表 1 中的键 0xFF11。然后,您可以使用单个 LevelDB 实例并拥有多个“键空间”,这些“键空间”对应于“表”。

关于key-value-store - 如何在单个 levelDB 实例中创建多个逻辑表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12433657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com