gpt4 book ai didi

multiprocessing - 支持并发和随机访问读取的快速、低内存、常量键值数据库

转载 作者:行者123 更新时间:2023-12-04 20:16:48 26 4
gpt4 key购买 nike

我需要一个磁盘上的键值存储,不要太大或分布式。用例如下:

  • 完整的 DB 将是几 Gbs
  • 键和值的大小都是恒定的
  • 它是一个恒定的数据库。一旦整个数据库写完,我就不需要再写任何条目(或很少写)
  • key 将以不可预测的顺序访问
  • 必须支持多进程并发读取 .
  • 必须非常快,因为读者将是 在紧密循环中访问数百万个 key .所以它应该尽可能地接近于循环关联数组( STL's std::map 说)
  • 的性能
  • 理想情况下,它应该允许设置使用多少 RAM,通常应该使用几百 Mbs
  • 用 C 或 C++ 编写。现有的 python 扩展将是一个很大的优势,但我可以自己添加

  • 所以 cdbgdbm看起来不错的选择,但只是想知道是否有更合适的选择。将不胜感激指向相关基准甚至相关轶事证据的指针。

    最佳答案

    你最终使用的是什么数据库?

    如果你喜欢 cdb 并且你需要> 4 GB 的数据库,请看看 mcdb,它最初是基于 cdb 的,加上一些性能增强和对 4 GB+ 常量数据库的支持。

    https://github.com/gstrauss/mcdb/

    提供了 Python、Perl、Lua 和 Ruby 扩展。 mcdb 是用 C 编写的,并在底层使用 mmap,因此可以轻松支持线程之间和进程之间的无锁并发读取。由于它由内存映射文件支持,因此可以根据需要从磁盘映射页面,并且即使访问数据库的进程数量增加,内存也有效地保持不变。

    关于multiprocessing - 支持并发和随机访问读取的快速、低内存、常量键值数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11149608/

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