2.13. 集群备份和恢复
执行跨站点复制的数据中心集群通常会"匿名"整个 CPU 和内存分配。当您考虑跨站点复制的大小时,主要问题是集群间的状态传输操作的影响。
例如,NYC 中的 Data Grid 集群离线,客户端切换到 LON 中的 Data Grid 集群。当 NYC 中的集群重新上线时,状态传输是从 LON 到 NYC。此操作可防止客户端的过时的读取,但对集群接收状态传输的性能损失。
您可以在集群中分发状态传输操作所需的处理增加。但是,状态传输操作的性能影响完全取决于环境和因素,如数据集的类型和大小。
Active/Active 部署的冲突解析
当多个站点处理客户端请求时,Data Grid 会检测与并发写入操作冲突,称为 Active/Active 站点配置。
以下示例演示了并发写入如何为 LON 和 NYC 数据中心中运行的 Data Grid 集群产生冲突条目:
在 Active/Active 站点配置中,您不应该使用同步备份策略,因为并发写入会导致死锁并丢失数据。借助异步备份策略(policy=async
),数据科学家为您提供了处理并发写入的跨站点合并策略。
就性能而言,Data Grid 用来解决冲突的合并策略需要额外的计算,但通常不会造成显著的损失。例如,默认的跨站点合并策略使用字典比较或"字符串比较",这需要几纳秒才能完成。
Data Grid 还为跨站点合并策略提供了一个 XSiteEntryMergePolicy
SPI。如果您确实将 Data Grid 配置为解决与自定义实现冲突,您应该始终监控性能以监管任何负面影响。
XSiteEntryMergePolicy
SPI 调用非阻塞线程池中的所有合并策略。如果您实现了阻塞自定义合并策略,它可能会耗尽线程池。
您应该将复杂或阻止策略委派给不同的线程,并且您的实施应返回当合并策略在其他线程中执行时完成的 CompletionStage
。