我了解Apache Ignite的本机持久性模式允许在内存中存储尽可能多的数据,并将潜在的剩余数据存储在磁盘上。
是否可以手动选择要在内存中存储的表以及要在磁盘上专有存储的表?如果要节省成本,是否应该给Ignite大量的磁盘空间和少量的内存?如果我知道某些表应该尽快返回结果,而另一些表在速度方面优先级较低(即使访问频率更高),该怎么办呢?是否有任何功能可以将数据存储在表级别或任何其他级别的优先级?
答案 0 :(得分:3)
您可以定义两个不同的数据区域-一个具有少量内存并启用了持久性,第二个没有持久性,但具有更大的最大内存大小:https://apacheignite.readme.io/docs/memory-configuration
答案 1 :(得分:0)
您不能将缓存(其中包含表的行)专门存储在磁盘上。
在表中添加一行时,该行将存储在Durable Memory中,该行始终位于RAM中。稍后,可以通过Checkpointing进程将其刷新到磁盘,该过程将使用也在RAM中的检查点页面缓冲区。因此,您可以在一个单独的区域中使用较少的内存(请参见另一个答案),但是您不能专有地在磁盘上存储数据。
当您访问数据时,它也总是会从磁盘中拉到耐用内存中。