Expedia 零停机时间将庞大的 Cassandra 集群迁移至 ScyllaDB

Expedia Group迁移至ScyllaDB的背景与动机

Expedia Group是一家全球领先的旅游技术公司,管理着超过70 TB的数据。为了提升数据一致性和降低操作复杂性,Expedia Group决定将其Cassandra集群迁移至ScyllaDB。迁移的主要动机是利用ScyllaDB内置的变更数据捕获(CDC)功能,以替代现有的Cassandra CDC与Debezium结合的架构,从而减少系统不稳定性。

迁移的关键目标

此次迁移面临的主要挑战包括:

  • 零停机时间
  • 保持持续的TLS连接
  • 确保数据一致性
  • 支持对延迟敏感的应用程序

迁移过程

1. 迁移工具选择

Expedia Group评估了两种迁移工具:SSTable Loader和Scylla Migrator。最终选择了Scylla Migrator,原因在于其具备检查点功能、并行迁移支持以及内置验证器,提供了比SSTable Loader更可靠的迁移方案。

2. 技术准备与调整

  • Spark集群调优:为了平衡性能,团队调整了Spark和Scylla Migrator的内存分配和Worker实例。
  • TLS连接问题:由于Scylla Migrator不支持自签名证书,团队在迁移期间暂时禁用了TLS,并在迁移完成后在ScyllaDB中配置了新的数据中心以重新启用TLS。
  • 处理空键和大表问题:团队在迁移过程中发现某些表的主键包含空值,导致ScyllaDB无法接受。为此,团队清理了问题数据并重新运行迁移任务。对于大表,团队临时扩展了ScyllaDB集群以处理更高的写入负载。

3. 数据验证

迁移完成后,团队进行了数据验证,重点关注值的一致性而非时间戳。由于延迟考虑,验证任务在资源较少的情况下运行。Scylla验证器报告确认了数据一致性,并通过双写验证了集群的完整性。

迁移的成果与洞察

  • 效率提升:Scylla Migrator在单独的CDC实例上运行,减少了对生产流量的影响。
  • 数据类型的挑战:某些数据类型需要保留原始时间戳,但由于CQL协议的限制,团队需要额外处理。
  • 成本降低:迁移至ScyllaDB后,Expedia Group减少了AWS节点的使用,从而降低了成本,同时保持了高可用性。

其他公司的迁移案例

  • Cobli:巴西的一家物流公司,通过从Cassandra迁移至ScyllaDB,实现了10倍的性能提升和50%的基础设施成本降低。
  • mParticle:一家客户数据平台,迁移至ScyllaDB后,查询性能提升了10倍,延迟减少了50%。

结论

Expedia Group成功迁移至ScyllaDB,显著提升了效率、稳定性和成本效益,满足了其对数据可用性和低延迟的严格要求,同时简化了CDC解决方案。此次迁移为其他企业提供了宝贵的经验和参考。

阅读 37
0 条评论