Infinispan+kyro/Google Protocol Buffers 实现空间和时间效率更高的序列化?
如果我理解正确的话,Infinispan/JBoss Cache 使用Java 自己的序列化机制,该机制可能很慢并且占用相对较多的存储空间。我一直在寻找可以实现以下目标的替代方案:
- 自动缓存管理,换句话说,更频繁使用的对象会自动加载到内存中
- 更高效的序列化(可能是对象 --> 紧凑的二进制存储)。主要目标是在不牺牲太多性能的情况下减少磁盘/内存空间消耗
是否有一个框架或库可以同时实现这两个目标?
If I understand correctly, Infinispan/JBoss Cache uses Java's own serialization mechanism, which can be slow and takes relatively more storage space. I have been looking for alternatives which can achieve the following:
- Automatic cached management, in other words objects that are used more frequently are automatically loaded into memory
- More efficient serialization (perhaps object --> compact binary stores). The primary goal is less disk/memory space consumption without sacrificing too much performance
Is there a framework or library that achieves both?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
JBoss Cache 确实使用了 Java 序列化,但 Infinispan 没有。相反,它使用 JBoss Marshalling 来提供微小的有效负载和流捕获。如果您在 Infinispan 中启用 storeAsBinary,它将以其编组形式存储 Java 对象。
回复 1. 尚未出现在这两种产品中。
Re 2. 在 Infinispan 中使用 storeAsBinary 支持。更多信息请参见 https://docs.jboss.org/author/display/ISPN/Marshalling< /a>
顺便说一句,如果这不能说服您,您可以随时让 Protobufs 生成您需要的 byte[],然后将其粘贴到 Infinispan 中。
JBoss Cache did use Java Serialization but Infinispan does not. Instead it uses JBoss Marshalling to provide tiny payloads and catching of streams. If you enable storeAsBinary in Infinispan, it will store Java objects in their marshalled form.
Re 1. Not in either products yet.
Re 2. Supported in Infinispan using storeAsBinary. More info in https://docs.jboss.org/author/display/ISPN/Marshalling
Btw, if this does not convince you, you can always let Protobufs generate the byte[] that you need and you can stick it inside Infinispan.