[英]How to properly prepare Apache Ignite for large cache values?
我有一个IgniteCache<String, byte[]>
此缓存中的值可以小到数百兆字节。
从我读过的文档来看,缓存条目的值没有硬性限制。 这是令人放心的。
但是我的用例有什么问题需要担心吗?
例如,我需要针对这种情况专门设置任何配置设置吗?
我不建议条目大于几 MB。 它可能会导致各种网络或内存问题。
如果必须,您需要尝试尽可能大的值,然后调整设置,直到您满意为止。 我可以想到的一件事是,将TcpCommunicationSpi.ackSendThreshold
设置为某个较小的值,例如 4(默认为 32),以避免这些大消息位于队列中。 但可能有很多事情需要调整。
在内部,Ignite 使用字节缓冲区来序列化数据,这些缓冲区受Integer.MAX_VALUE
限制,因此 2GiB 是最大缓存条目大小。
一些 Ignite API 批量处理数据,在处理大条目时减少批量/页面大小是个好主意:
Query.pageSize
(适用于 Scan、SQL、Continuous 查询)- 默认为 1024IgniteDataStreamer.perNodeBufferSize
, perThreadBufferSize
- 默认为 512 和 4096
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.