相关疑难解决方法(0)

适用于Linux的可靠高效的键值数据库?

我需要一个快速,可靠且内存有效的Linux键值数据库.我的密钥大约是128个字节,最大值大小可以是128K或256K.数据库子系统不应使用超过大约1 MB的RAM.总数据库大小为20G(!),但一次只访问一小部分数据.如果有必要,我可以将一些数据blob从数据库中移出(到常规文件),因此大小最多可降至2 GB.数据库必须在系统崩溃后继续存在,而不会丢失最近未修改的数据.我的读取次数比写入次数多100倍.如果它可以使用块设备(没有文件系统)作为存储,那么这是一个加分.我不需要客户端 - 服务器功能,只需要一个库.我需要Python绑定(但如果它们不可用,我可以实现它们).

我应该考虑哪些解决方案,您建议使用哪种解决方案?

我知道哪些候选人可以工作:

  • Tokyo Cabinet(Python绑定是pytc,另见pytc示例代码,支持哈希和B +树,事务日志文件等等,桶数组的大小在数据库创建时固定; 编写器必须关闭文件以给其他人一个很多小写,重新打开每个文件都很慢; Tyrant服务器可以帮助处理大量的小写; 东京内阁,东京暴君和伯克利数据库之间的速度比较)
  • VSDB(即使在NFS上也是安全的,没有锁定;那么障碍呢?;更新非常慢,但不像cdb那么慢; 2003年的最新版本)
  • BerkeleyDB(提供崩溃恢复;提供事务; bsddbPython模块提供绑定)
  • Samba的TDB(使用事务和Python绑定,一些用户经历了损坏,有时mmap()是整个文件,repack操作有时会使文件大小翻倍,如果数据库大于2G(即使在64位系统上)也会产生神秘的故障,集群实现(CTDB也可用;文件经过大量修改后变得太大;文件在大量哈希争用后变得太慢;没有内置方法来重建文件;通过锁定单个哈希桶来实现非常快速的并行更新)
  • aodbm(仅附加,因此系统崩溃,使用Python绑定)
  • hamsterdb(使用Python绑定)
  • C-tree(具有高性能的成熟,多功能商业解决方案,具有功能减少的免费版本)
  • TDB(自2001年起)
  • bitcask(日志结构,用Erlang编写)
  • 各种其他DBM实现(例如GDBM,NDBM,QDBM,Perl的SDBM或Ruby;可能他们没有适当的崩溃恢复)

我不会用这些:

  • MemcacheDB(客户端 - 服务器,使用BereleleyDB作为后端)
  • cdb(需要在每次写入时重新生成整个数据库)
  • http://www.wildsparx.com/apbcdb/(同上)
  • Redis(将整个数据库保存在内存中)
  • SQLite(它没有定期抽真空就变得非常慢,请参阅Firefox 3.0中位置栏中的自动完成,即使版本3.1及更高版本的sqlite允许auto_vacuum;注意:小写入事务可能非常慢;注意:如果繁忙的过程是做很多交易,其他流程都饿了,他们永远无法获得锁定)
  • MongoDB(太重了,将值视为具有内部结构的对象)
  • Firebird(基于SQL的RDBMS,太重了)

仅供参考,最近一篇关于 Linux杂志中关键值数据库的文章.

仅供参考,一个较旧的软件列表

仅供参考,MemcacheDB,Redis和Tokyo Cabinet Tyrant …

python database store key-value embedded-database

39
推荐指数
2
解决办法
7622
查看次数

是否有经过商业验证的云存储/密钥=>价值数据库?(开源)

我一直在寻找云计算/存储解决方案很长一段时间(受Google Bigtable的启发).但我找不到一个易于使用,业务就绪的解决方案.

我正在搜索一个简单的,容错的,分布式的Key => Value DB,就像亚马逊的SimpleDB一样.

我见过这样的话:

  1. CouchDB项目:简单且分布式,容错的数据库.但它只能理解JSON.没有XML连接器等
  2. Eucalyptus:Nice Amazon EC2接口.开放标准和XML.但分布较少,容错性较差?XEN/VMWare问题也有很多打开的门票.
  3. Cloudstore/Kosmosfs:分布式,容错的fs.但配置起来很困难.有没有java连接器?
  4. Apache Hadoop:很好的系统,它存储数据的能力要强得多.使用自己的Hadoop分布式文件系统,并在具有2000个节点的集群上进行测试.
  5. *Amazon SimpleDB:无法找到开源替代品!对于大量数据来说,这是一个不错但价格昂贵的系统.你沉迷于亚马逊.

还有其他更好的解决方案吗?哪一个最好选择?哪一个提供最小量的SOF(Singe Point of Failure)?

cloud open-source amazon-ec2 key-value

34
推荐指数
2
解决办法
5161
查看次数