在Riak中存储二进制数据的缺点?

如何解决在Riak中存储二进制数据的缺点?

| Riak中存储二进制数据有什么问题(如果有)? 它会影响群集的可维护性和性能吗? 使用Riak而不是分布式文件系统在性能上会有什么区别?     

解决方法

加上@ Oscar-Godson的出色回答,您可能会遇到值大于50MB的问题。 Bitcask最适合最大为几个KB的值。如果要存储较大的值,则可能需要考虑其他存储后端,例如innostore。 我没有存储二进制值的经验,但是我们在生产中有一个中等大小的群集(5个节点,大约100M值,TB的数量为10),并且经常看到错误与插入和检索大小为100 KB的值有关。在这种情况下,性能是不一致的-有时可以正常工作,而有时则不可以-因此,如果您要进行测试,请进行大规模测试。 在运行map-reduce查询时,我们还会看到大值问题-它们只是超时。但是,这可能与二进制值无关(如@ Matt-Ranney所述)。 另请参阅@ Stephen-C的答案     ,我能想到的唯一问题是存储大于50MB的二进制数据,他们建议不要这样做。 Riak的全部要点是:   选择Riak的另一个原因是   灵活地建模数据。   Riak将存储您告诉它的所有数据   以与内容无关的方式-它确实   不强制执行表,列或   参照完整性。这意味着你   可以在旁边存储二进制文件   更多程序员透明格式   例如JSON或XML。 来源:Riak中的模式设计-简介     ,使用Riak,建议的最大每个对象2MB。在此之上,建议使用Riak CS(已对高达5TB的对象进行了测试(作为1MB对象存储在Riak中),或者通过将大型对象自然地分成2MB块并通过键和后缀进行链接来使用。     ,我个人还没有注意到将数据(例如图像和文档(DOC和PDF))存储到Riak中的任何问题。我没有性能指标,但我可能还记得一些。 值得注意的是,使用Riak可以使用Luwak,它提供了一个用于存储大文件的api。这非常有用。     ,一个问题可能是,即使不是不可能,也很难对二进制数据使用JavaScript映射/缩减。您可能需要使用Erlang。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?