Erlang DETS有多大,如果太小则该怎么办?

时间:2009-11-20 04:49:07

标签: erlang dets

我所需要的只是Erlang中的一个大型持久查找表,而dets看起来就像是我需要一个明确的答案:

  • 表格中二进制文件的总大小有多大。
  • 每个条目的大小
  • 如果第一个问题的答案小于100G
  • 该怎么办

3 个答案:

答案 0 :(得分:8)

这是一个RTFM问题。正如DETS manual第二段中直接引用的那样:

  

Dets文件的大小不能超过2 GB。如果需要更大的表,可以使用Mnesia的表碎片。

答案 1 :(得分:2)

一旦被认为是一种明显的方法,就是在多个dets文件上散列dets条目。

当一个文件达到上限阈值时,通过将桶拆分为新创建的dets文件,线性哈希应该使其可动态增长。

还有许多端口驱动程序可以让你使用sleepycat / berkely db或tokyo tyrrant。这些数据库的文件限制远远高于2Gb。

答案 2 :(得分:0)

使用mnesia fragmented dic_copies可以克服这些限制,前提是你知道有多少碎片要提前装箱 http://www.trapexit.org/Mnesia_Table_Fragmentation