Caching Oracle一致性的对象大小
我对使用Oracle Coherence作为数据存储非常感兴趣。我的理解是,它可以以名称-值对的形式存储Java对象。因此,问题是:Caching Oracle一致性的对象大小,caching,Caching,我对使用Oracle Coherence作为数据存储非常感兴趣。我的理解是,它可以以名称-值对的形式存储Java对象。因此,问题是: 每个条目可以存储的Java对象大小是否有任何限制 可以存储任何对象吗 因为一致性是一个集群系统,所以对存储的对象有一些要求。从 缓存键和值必须可序列化(例如, java.io.Serializable)。此外,缓存密钥必须提供 hashCode()和equals()方法的实现,以及 方法必须跨群集节点返回一致的结果。这 表示hashCode()和equals()的
因为一致性是一个集群系统,所以对存储的对象有一些要求。从 缓存键和值必须可序列化(例如, java.io.Serializable)。此外,缓存密钥必须提供 hashCode()和equals()方法的实现,以及 方法必须跨群集节点返回一致的结果。这 表示hashCode()和equals()的实现必须是 仅基于对象的可序列化状态(即对象的 非瞬态场);大多数内置Java类型,例如字符串, 整数和日期,满足此要求。一些缓存实现 (特别是分区缓存)使用 用于相等性测试的键对象,这意味着 equals()返回true,必须以相同的方式序列化;最内置的Java 类型也满足此要求 Patrick Peralta在这里给出了一个很好的例子: 关于第一个问题:“每个条目可以存储的Java对象大小是否有任何限制?”
- 有一个大约2GB的“绝对”限制,它基于Java限制(因为Java的一些固有部分,如数组,被设计为32位数据结构)
- 相干弹性数据(透明和弹性RAM/flash存储)将值限制为64MB
为了充分披露,我在甲骨文公司工作。这篇文章中表达的意见和观点是我自己的,不一定反映我雇主的意见或观点。几个月前,我正在调查对象大小限制问题(使用Coherence ver 3.6),今天我的信息可能会过时。无法将大于120 Mb(约+-5Mb)的对象放入缓存中。我正在使用tangosol xml设置(由支持人员推荐),但没有成功。谢谢,这解释了问题2。你能解释一下问题1吗?例如,使用基于磁盘(即不存储在内存中)的存储方法来实现一致性,对象的大小是否有限制?基本上我可以像使用文件系统一样使用它,因为它是内置冗余的,所以我不需要使用RAID?我更新了答案。从某种意义上说,您可以将它用作一个非常高速且支持事件的“共享文件系统”,尽管它不像文件系统那样具有层次结构?我听说过使用大于1 GB的对象的用例。我通过客户端访问了C++的一致性(一致性。DLL),并且在将BROB更多的时候,120到125 MB的情况下,我收到了长Java java栈的异常,这些异常包含了“小套接字缓冲器”(或类似的东西——就像我前面提到的几个月前)。可能只是C++客户端(一致性.dll)的问题。