代码之家  ›  专栏  ›  技术社区  ›  The Quantum Physicist

LMDB:在有限内存系统中打开大型数据库

  •  1
  • The Quantum Physicist  · 技术社区  · 7 年前

    我有一个计划要用的程序 (这是一个区块链,我们正在远离 级别DB 由于其 缺酸 树莓皮 不添加更多交换( 使用>1 GB内存

    当我运行那个程序的时候 mdb_env_set_mapsize(1 << 30) ,它 返回错误12 512 MB

    但是,当数据库大小不断增加时,在lmdb中处理这种内存问题的正确方法是什么呢?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Lie Ryan Bryan    7 年前

    PAE 已启用,在这种情况下,限制为每个进程。

    因此,您的用户需要在系统上启用PAE,或者升级到64位CPU。如果应用程序中没有这两个选项,那么就不能使用大于可用地址空间的内存映射文件,因此必须进行一些分段,以便将数据拆分为多个文件,一次只能映射小块。我猜lmdb要求它能够将整个数据库文件映射到内存中。

    推荐文章