我正在研究如何为Erlang应用程序组织数据存储的可能选项.它应该使用的数据基本上是由短字符串id索引的大量二进制blob集合.每个斑点都低于10 Kb,但其中有很多.我希望总共有200 Gb的大小,所以很明显它不能适应内存.对此数据的典型操作是通过其id读取blob或通过其id更新blob或添加新的blob.在每个给定的时段,仅使用一部分ID,因此数据存储访问性能可能受益于内存缓存.谈到性能 - 这非常关键.目标是在商用硬件上(例如在EC2 VM上)每秒进行大约500次读取和500次更新.
有什么建议可以在这里使用吗?据我所知,dets是不可能的,因为它仅限于2G(或者它是4G?).Mnesia可能也不成问题; 我的印象是它主要是为数据适合内存的情况而设计的.我正在考虑尝试使用EDTK的Berkeley DB驱动程序.它会在上述情况下起作用吗?有没有人在类似条件下的生产中使用它的经验?
tcerl面临相同的大小限制.这些天我没有使用Erlang但听起来就像你在寻找的那样.