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