将arcticdb与lmdb一起使用时有没有办法指定库大小?

问题描述 投票:0回答:1

我正在开发一个程序,该程序使用 arcticdb 和 lmdb 的本地实例。在此过程中,我想根据不同类型的数据创建多个库。由于数据的大小会有所不同,我希望库大小也有所不同,但据我所知,库大小在创建原始数据库连接时会模仿地图大小。我已经定义了以下问题的基于最小代码的重现:

from arcticdb import Arctic
#Define arctic instance
ac = Arctic("lmdb://" + getcwd() + "/database?map_size=2GB")
#Create libraries
ac.create_library('test1')
ac.create_library('test2')

这将产生以下结构:

database
|__arctic_cfg
|_test1
| |_data.mdb ~2GB
| |_lock.mdb
|_test2
  |_data.mdb ~2GB
  |_lock.mdb

可以看出,每个库都将采用原始地图大小,而在我的程序中,我希望某些库为 100MB,其他库为 20MB 等等。我怎样才能做到这一点?

我查看了文档,但无法从中获得任何见解,一种方法可能是具有多个 arctic 实例的大师班,但随后它们会连接到不同的 arctic_cfg 文件夹,并且据我了解,很难进行交互。

python database lmdb arcticdb
1个回答
0
投票

目前没有机制可以使用

ArcticDB
执行此操作。

该行为确实取决于您的操作系统。在 Windows 上,磁盘空间是“急切”分配的,因此您帖子中的两个库确实会占用 2GB 的磁盘空间。然而,在 Linux 上,磁盘是惰性分配的,因此每个库只会使用它需要的空间。

您建议的解决方法是为您需要的每个库大小使用单独的

Arctic
实例,这是明智的。

请随时针对 ArcticDB 提出问题,因为我同意在

get_library
调用期间指定地图大小而不是在
Arctic
级别会很有用。

© www.soinside.com 2019 - 2024. All rights reserved.