浏览 3600 次
锁定老帖子 主题:dets在64位系统还是有可耻的2G限制
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-10-06
1. key segment的问题。 dets在设计的时候 是针对32位的 那么它的空间限制就是2G, 所以在计算最大的段的数的最大的偏移时候 干脆在代码里面写死了2G。 2. 偏移的问题。 每个key对应的value在dets_v9文件格式中的偏移值是用 <<Off:32>> 这样的格式来表示的。 所以如果改变成64位 那么文件格式就完全不兼容了。 结论: dets支持2G以上没戏了, 而且同样影响到mnesia. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-10-07
too bad, mnesiaex也不能完全替代mnesia吧
|
|
返回顶楼 | |
发表时间:2009-10-07
mnesiaex是用tc来代替 dets做永久存储。
|
|
返回顶楼 | |
发表时间:2009-11-25
mnesia也有问题????
|
|
返回顶楼 | |
发表时间:2009-11-25
mnesia的存储用的是ets和dets 当然有问题了。看到邮件列表的人在讨论这个问题。 有人提议说 干脆用tt来做底层存储。 我也赞同。
|
|
返回顶楼 | |
发表时间:2009-11-29
mryufeng 写道 mnesia的存储用的是ets和dets 当然有问题了。看到邮件列表的人在讨论这个问题。 有人提议说 干脆用tt来做底层存储。 我也赞同。
真是比较期待,他们打算怎么做呢? mnesiaex只是一个实验产品吧,而且更新也不频繁,不过mnesia本身最近几个版本的修改也不频繁。 |
|
返回顶楼 | |
发表时间:2009-11-29
mryufeng 写道 mnesia的存储用的是ets和dets 当然有问题了。看到邮件列表的人在讨论这个问题。 有人提议说 干脆用tt来做底层存储。 我也赞同。
找到这个讨论的地址了:http://www.erlang.org/cgi-bin/ezmlm-cgi?4:sss:47828:200911:aielfgbhpmkpdcoonbcl#b 讨论很有含金量, - Tokyo Cabinet has slightly different recovery characteristics than dets. This may make a difference in some crash recovery situations. That is, TC gets its speed partly from making use of memory-mapped IO, so more data is likely to get lost in some failure situations. TC is supposedly also more sensitive to corrupted files than dets, since it doesn't 'repair' the file like dets does. 里面还提到disc_copies可以突破2GB的限制(不过被内存的大小限制,其实也好不了多少) |
|
返回顶楼 | |
发表时间:2009-11-30
cryolite 写道 mryufeng 写道 mnesia的存储用的是ets和dets 当然有问题了。看到邮件列表的人在讨论这个问题。 有人提议说 干脆用tt来做底层存储。 我也赞同。
找到这个讨论的地址了:http://www.erlang.org/cgi-bin/ezmlm-cgi?4:sss:47828:200911:aielfgbhpmkpdcoonbcl#b 讨论很有含金量, - Tokyo Cabinet has slightly different recovery characteristics than dets. This may make a difference in some crash recovery situations. That is, TC gets its speed partly from making use of memory-mapped IO, so more data is likely to get lost in some failure situations. TC is supposedly also more sensitive to corrupted files than dets, since it doesn't 'repair' the file like dets does. 里面还提到disc_copies可以突破2GB的限制(不过被内存的大小限制,其实也好不了多少) 谁说可以突破2G 人家说的是fragment, dets文件写死了是32位的offset. |
|
返回顶楼 | |
发表时间:2009-11-30
tc可以超过2G in 64 bit..
我的vector data曾经单文件 超过5G..不过性能很差就是了 |
|
返回顶楼 | |
发表时间:2009-11-30
tc当然可以 设计的时候就是考虑64位的
|
|
返回顶楼 | |