我正在研究如何为Erlang应用程序组织数据存储的可能选项。它应该使用的数据基本上是由短字符串ID索引的大量二进制blob集合。每个blob都在10Kb以下,但其中有很多。我预计总共它们的尺寸可能高达200GB,所以显然它不能适应内存。对这些数据的典型操作是通过其id读取blob或通过id更新blob或添加一个新的blob。在每天的特定时间段内,只有一部分ID正在使用,因此数据存储访问性能可能受益于内存中缓存。谈到性能 - 这是非常关键的。目标是在商品硬件上每秒钟有500次读取和500次更新(例如在EC2 VM上)。当数据不适合内存时适用于Erlang应用程序的数据存储后端
有什么建议在这里使用什么?据我了解,dets是无可争议的,因为它限于2G(或者是4G吗?)。 Mnesia可能也没有问题;我的印象是它主要是为数据适合内存的情况设计的。我正在考虑尝试使用EDTK的Berkeley DB驱动程序。它会在上述情况下工作吗?有没有人在类似条件下的生产中使用它?
这是为了答复,但它有点太晚了 - 我已经在我的应用程序中玩tcerl :) – 2008-11-28 19:54:40