Ignite的堆外存储的工作方式和相对于堆存储的优势

时间:2019-01-27 06:12:11

标签: java heap-memory ignite off-heap

我了解堆外存储有助于避免长时间的GC暂停,但是我想知道java在堆上存储时如何对对象进行序列化,而在堆外存储时如何触发序列化呢?例如运行GC以释放空间,这又是什么呢?使用堆释放空间时会发生什么,与GC相比如何?堆外存储对堆外存储如何收费?

我们正在尝试POC来评估点燃和榛果,点燃提供了堆外存储,因此想了解它的细节以得出结论。

1 个答案:

答案 0 :(得分:0)

Java不会序列化堆存储的数据。序列化的整个思想是将对象从堆移到其他介质,例如堆外。所以它就被存储了。

Ignite使用Binary Objects,Externalizable和Binarylizable接口实现快速序列化。

由于Ignite明确记录所有键值对的踪迹,因此无需对其进行垃圾回收。删除某些内容后,便可以立即使用内存(图形系统实际上只需要GC,而键值和SQL都不需要)。

但是,对于最近引入的带有真空过程的事务型SQL,情况可能有所不同。