问题描述
我正在使用 region getall 方法来获取所有键的值,但我发现对于 apache geode 中存在的键,它可以快速获取数据,但对于 apache geode 中不存在的键。它会一一调用缓存加载器。有没有什么机制可以并行调用cacheloader。
解决方法
我认为没有一种开箱即用的方法,至少在使用单个 Region.getAll()
操作时没有。如果我没记错的话,服务器只是遍历 keys
并对每一个执行 get
,最终触发 CacheLoader
执行。
但是,您可以通过将 keys
的集合拆分为多个集合,并使用这些较小的集合启动不同的线程来执行 Region.getAll()
操作来实现一定程度的并行性。当然,每个集合的实际大小和线程数将取决于您期望的缓存命中/未命中比率,以及您的 SLA 要求。