我知道堆外存储有助于避免长时间的GC暂停,但我想知道java如何在堆上存储时序列化对象,如何在堆外存储时序列化ignite?,就像运行GC来释放空间一样,当使用堆外释放空间时会发生什么,这与GC相比如何?与堆存储相比,堆外存储的性能如何?
我们正在尝试一个POC来评估ignite和hazelcast,ignite提供了堆外存储,所以想要了解它的细节以得出结论。
发布于 2019-01-28 14:50:32
Java不序列化存储在堆上的数据。序列化的整个思想是将对象从堆中移走到其他介质上,例如堆外。所以它只是被存储了。
Ignite使用二进制对象、Externalizable和Binarylizable接口实现快速序列化。
Ignite不需要GC它的外堆,因为它显式地跟踪所有键-值对。当某些内容被删除时,内存将立即可用(只有图形系统才真正需要GC,而不是key-value,也不是SQL)。
但是,对于最近引入的带有vacuum过程的事务性SQL,情况可能有所不同。
https://stackoverflow.com/questions/54385543
复制相似问题