【发布时间】:2017-09-09 19:58:02
【问题描述】:
分布式地图的官方文档说“EAGER 意味着加载被阻塞,直到所有分区都加载完毕。”这是否意味着在加载该地图的所有分区之前,分布式地图的任何操作都会被阻止?
我的项目有几个相当大的存储空间,从数据库初始加载大约需要 20 分钟。在所有分区完全加载之前,实际上没有必要启动所有计划任务来运行。当所有分区都准备就绪时,是否有任何通知?
【问题讨论】:
分布式地图的官方文档说“EAGER 意味着加载被阻塞,直到所有分区都加载完毕。”这是否意味着在加载该地图的所有分区之前,分布式地图的任何操作都会被阻止?
我的项目有几个相当大的存储空间,从数据库初始加载大约需要 20 分钟。在所有分区完全加载之前,实际上没有必要启动所有计划任务来运行。当所有分区都准备就绪时,是否有任何通知?
【问题讨论】:
是的,就是这个意思。如果分区尚未加载,则不会对分区执行任何操作。操作将被暂停并重试。 每个分区的加载是相互独立的,因此如果 partitionId == 1 的加载完成,并且您执行 map.get(key),对于由 partitionId == 1 处理的密钥,此操作将成功,即使 partitionId == 2 仍在加载值。如果您想阻塞直到所有分区都加载到调用方上,您可以调用 map.size() 它需要加载所有分区,因此在加载所有分区之前它不会完成。
【讨论】: