我希望使用Berkeley DB来创建一个简单的键值存储系统。键将是SHA-1哈希值,因此它们位于160位地址空间中。我有一个简单的服务器工作,这很容易归功于Berkeley DB网站提供的相当好的文档。但是,我对如何最好地建立这样一个系统有一些疑问,以获得良好的性能和灵活性。希望有人对Berkeley DB有更多的经验,可以帮助我。
最简单的设置是单个进程,只需一个线程,处理单个数据库;使用事务在这一个DB上执行inserted和gets。
备选方案1:单个进程,多个线程,单个DB;这个DB中的insert和gets由进程中的所有线程执行。
备选方案2:单个进程,一个或多个线程,多个DB,其中每个DB覆盖密钥的160位地址空间的一小部分。
备选方案3:多个进程,每个进程有一个线程,每个进程处理一个覆盖160位地址空间的一部分用于密钥的数据库。
我很想知道是否有人尝试过这些选项,并且看到了积极或消极的结果。
感谢。
答案 0 :(得分:0)
备选方案2为您提供高可扩展性。您基本上将数据库分区 多个服务器。如果您需要高性能的分布式键/值数据库,我会的 建议看看膜。我现在正在这样做,但我们需要在设备上运行 并希望限制(膜酶)的依赖性。 您可以使用BerkeleyDB复制,并且只读服务器的副本以提供read / get 请求。