分享

如何用mongodb存储一个四维数组

march_on 发表于 2013-10-17 21:36:48 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 5070
本帖最后由 nettman 于 2013-11-20 10:53 编辑

想用mongodb存储一个四维数组,请问应该怎么存储,可以给出具体一点的建议吗,刚接触mongodb。
现在基于probalistic latent semantic indexing(plsa)做图像检索,我的方法和这篇论文很像,需要计算一个条件概率p(z|w,v,d),我直接定义成了“double p_z_d_wt_wv[][][][];”简单地说,z是主题,w是英文单词,v是视觉单词,d是文档,大小分别为12*100*500*7000,就是12个主题,100个英文单词,500个视觉单词,7000个文档,double型的话算下来大概32G,其中z和d的数目是确定的,每个d的w和v的数目是不确定的。我的实现是这样的:
  1. p_z_d_wt_wv = new double[12][7000][][];
  2. for( int t = 0; t < 12; ++t)
  3. {
  4. for( int d = 0; d < 7000; ++d )
  5. {
  6. p_z_d_wt_wv[t][d] = new double[100][500];
  7. }
  8. }
复制代码
但是这样没分配完就溢出了。我问了很多人,都说用文件或是数据库存储比较好,但是用文件的话怎么定位到某个数组元素呢。如果用数据库的话mongodb可以吗,我现在想试试这个,还没用过

               
         

已有(3)人评论

跳转到指定楼层
jimyboy 发表于 2013-10-24 21:27:33
有竞争才有进步嘛
回复

使用道具 举报

nettman 发表于 2013-11-20 10:50:53
本帖最后由 nettman 于 2013-11-20 10:54 编辑

1、内存要足够大,大于40G
2、你的系统可以寻址超过40G的能力
3、你的虚拟机参数要有40G
以上条件都要满足才行

不过,建议不要这么使用,还是存在磁盘上比较好,可以是文件,也可以是数据库
回复

使用道具 举报

hyj 发表于 2013-11-20 10:55:03
虽然我没有什么好办法,但是都放到内存中,这个想法是坚决不能有的,什么都往内存放,后果很严重的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条