我了解堆外存储有助于避免长时间的GC暂停,但是我想知道java在堆上存储时如何对对象进行序列化,而在堆外存储时如何触发序列化呢?例如运行GC以释放空间,这又是什么呢?使用堆释放空间时会发生什么,与GC相比如何?堆外存储对堆外存储如何收费?
我们正在尝试POC来评估点燃和榛果,点燃提供了堆外存储,因此想了解它的细节以得出结论。
答案 0 :(得分:0)
Java不会序列化堆存储的数据。序列化的整个思想是将对象从堆移到其他介质,例如堆外。所以它就被存储了。
Ignite使用Binary Objects,Externalizable和Binarylizable接口实现快速序列化。
由于Ignite明确记录所有键值对的踪迹,因此无需对其进行垃圾回收。删除某些内容后,便可以立即使用内存(图形系统实际上只需要GC,而键值和SQL都不需要)。
但是,对于最近引入的带有真空过程的事务型SQL,情况可能有所不同。