`
mryufeng
  • 浏览: 969827 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

dets在64位系统还是有可耻的2G限制

阅读更多
原本以为在 64位操作系统下 文件的读写指针都改成64位的 避免了2G的限制。经过测试 disk_log和file都支持超过2G的数据文件,但是 dets还是可耻的失败了。 经过查看源码 有2个问题:

1.  key segment的问题。  dets在设计的时候 是针对32位的 那么它的空间限制就是2G, 所以在计算最大的段的数的最大的偏移时候 干脆在代码里面写死了2G。


2. 偏移的问题。 每个key对应的value在dets_v9文件格式中的偏移值是用 <<Off:32>> 这样的格式来表示的。 所以如果改变成64位 那么文件格式就完全不兼容了。


结论: dets支持2G以上没戏了, 而且同样影响到mnesia.


分享到:
评论
9 楼 mryufeng 2009-11-30  
tc当然可以 设计的时候就是考虑64位的
8 楼 smiletuna 2009-11-30  
tc可以超过2G in 64 bit..

我的vector data曾经单文件 超过5G..不过性能很差就是了
7 楼 mryufeng 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.
6 楼 cryolite 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的限制(不过被内存的大小限制,其实也好不了多少)
5 楼 cryolite 2009-11-29  
mryufeng 写道
mnesia的存储用的是ets和dets 当然有问题了。看到邮件列表的人在讨论这个问题。 有人提议说 干脆用tt来做底层存储。 我也赞同。


真是比较期待,他们打算怎么做呢?
mnesiaex只是一个实验产品吧,而且更新也不频繁,不过mnesia本身最近几个版本的修改也不频繁。
4 楼 mryufeng 2009-11-25  
mnesia的存储用的是ets和dets 当然有问题了。看到邮件列表的人在讨论这个问题。 有人提议说 干脆用tt来做底层存储。 我也赞同。
3 楼 linkerlin 2009-11-25  
mnesia也有问题????
2 楼 mryufeng 2009-10-07  
mnesiaex是用tc来代替 dets做永久存储。
1 楼 cryolite 2009-10-07  
too bad, mnesiaex也不能完全替代mnesia吧

相关推荐

    erlang test 生成 dets

    NULL 博文链接:https://laoyaos.iteye.com/blog/2022928

    ets和Dets

    NULL 博文链接:https://yansxjl.iteye.com/blog/2359713

    Mnesia table fragmentation 过程及算法分析

    Mnesia table fragmentation 过程及算法分析。erlang就算在64位下dets的空间限制仍旧是2g,同样影响了mnesia,如果有更大需求,就必须使用Mnesia的 table fragmentation 技术

    dets.git.io

    ## dets.git.io 每日费用追踪系统 我们正在开发一个名为“每日费用跟踪系统”的Web应用程序,该应用程序用于以更有效和可管理的方式管理应用程序用户的日常费用。 通过使用此应用程序,我们可以减少他们日常支出的...

    kaggle-chest-xray-abnormalities

    我的解决方案在1277名参与者中获得了37位。 主要任务是构建一种算法,可以为放射科医生提供有关准确识别和定位胸部X射线检查结果的第二种意见。 数据:15000胸部X射线dicoms。 标签-bbox的14类异常。 〜4400 dicoms...

    Apartment_Manager1.zip

    基于wxpython+MySQL--实现人脸检测识别的宿舍人脸检测系统实现代码

    cachet:Mnesia的内存光盘分派器

    对于disc_only_copies ,由于后端dets缘故,每个表限制为2 GB。 cachet将插入您的mnesia数据库并通过侦听数据库上的事件来工作。 您的主应用程序供稿数据库不必重写。 您的使用数据库的客户端可能需要一些代码更改...

    Erlang6大数据存储方式总结

    个人学习Erlang对于Erlang处理数据的各种方式的总结,讲述编程语言Erlang的ets,dets,mnesia,mysql,dict,和进程字典的用法,希望能帮助读者在这个总结里学到一些东西.

    Erlang程序设计(第二版)及源码

    书中兼顾了顺序编程、并发编程和分布式编程,重点介绍如何编写并发和分布式的Erlang程序以及如何在多核CPU上自动加速程序,并深入地讨论了开发Erlang应用中至关重要的文件和网络编程、OTP、ETS和DETS等主题。...

    英雄

    一旦弄清楚了,我可以在:dets周围实现一个简单的包装,或者在GenServer中显示一些逻辑。 我决定使用GenServer,因为它可以显示更多Elixir用法,而不是在HTTP回调中包装:dets 。 为什么没有足够的测试? 我必须道歉...

    kai:井上武的 DHT 存储

    300ms 请求 99% 相当平衡的负载一致散列、节点、桶二级索引存储后端:ETS、DETS 法定人数协调员一个个同步数据基于八卦的协议成员资格内存缓存接口目标256个节点32 GB/节点整个系统 100,000 qps 物理安置默克尔树...

    mongodb-erlang:Erlang的MongoDB驱动程序

    mongodb-erlang:Erlang的MongoDB驱动程序

    mqttex:Elixir 中的 MQTT 实现

    MQTTex 这是一个用 Elixir 编写的 MQTT 服务器和客户端。 设计 对于设计,这里是 Elixir 中... 订阅可以存储在 DETS/ETS 中以在主题服务器的潜在崩溃中幸存下来。 主题服务器的任务是接收要发布的消息并将它们发送到

    python 实现非极大值抑制算法(Non-maximum suppression, NMS)

    NMS 算法在目标检测,目标定位领域有较广泛的应用。 算法原理 非极大值抑制算法(Non-maximum suppression, NMS)的本质是搜索局部极大值,抑制非极大值元素。 算法的作用 当算法对一个目标产生了多个候选框的时候,...

    学习Python3 Dlib19.7进行人脸面部识别

    自己在下载dlib官网给的example代码时,一开始不知道怎么使用,在一番摸索之后弄明白怎么使用了; 现分享下 face_detector.py 和 face_landmark_detection.py 这两个py的使用方法; 1.简介 python: 3.6.3 dlib...

    shape_predictor_81_face_landmarks.dat

    for k, d in enumerate(dets): print("第", k+1, "个人脸d的坐标:", "left:", d.left(), "right:", d.right(), "top:", d.top(), "bottom:", d.bottom()) width = d.right() - d.left() heigth = d.bottom...

    python利用dlib获取人脸的68个landmark

    (1) 单人脸情况 import cv2 import dlib path = 1.jpg img = cv2.imread(path) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #人脸检测画框 detector = dlib.get_...dets = detector(gray, 1)#1表示采样(u

    matlab代码替换-cocobetter:pycocotools的定制版本。保持与原始版本的向后兼容性

    与官方有什么不同? 提供最多1000个自定义max_dets 支持以25%的IoU阈值计算AP和AR(正式版支持AP50,AP75和AP) 愿望清单/待办事项: 添加每类COCOeval.stats的版本(也使它成为前面的项目符号中所述的字典) 改善....

    matlab状态枚举法代码-Using-test_net_mot.py-:分析MOT上的“test_net_mot”部分代码(进行中)

    分析MOT上的“ ...1.使用的代码和功能。 从fast_rcnn.config导入cfg,cfg_from_file,cfg_from_...--num_dets:每张图像的最大检测数量(默认= 100) (*:始终使用,**:在测试时使用) 3.另一个功能 更改数据目录路径

Global site tag (gtag.js) - Google Analytics