华为海量数据处理与高可用性方案探索

4星 · 超过85%的资源 需积分: 10 15 下载量 44 浏览量 更新于2024-07-31 收藏 1.95MB PPT 举报
"华为技术有限公司提供的海量数据处理与高可用性方案文档,主要讨论了数据库N+1方案设计、原型测试、经验交流等阶段,针对传统DB冷双机存在的可伸缩性限制、无网格计算能力、高成本及低可用性问题进行了分析,并通过RAC(Real Application Clusters)集群技术的测试,提出了优化策略,包括RAC分区方案,以提高系统性能和可用性。" 在海量数据处理与高可用性方案中,首先面临的问题是传统的数据库系统如DB冷双机在处理大规模数据时存在的挑战。这些挑战主要包括系统的可伸缩性受到限制,无法有效利用网格计算能力,以及使用小型机导致的成本过高,使得系统可用性低于99%。为了改善这些问题,华为提出了一个分阶段的解决方案。 第一阶段涉及数据库的N+1方案设计,这是一种冗余备份策略,通过部署额外的数据库实例(N+1个),在主数据库故障时提供即时切换,从而提高系统的可用性。然而,单纯的N+1方案并不能解决所有问题,特别是在高并发场景下,性能可能会受到影响。 在第二阶段,华为进行了原型测试,以评估Oracle RAC(Real Application Clusters)技术的效果。测试结果显示,虽然RAC在查询操作中能提高性能,但在并发更新操作时,由于锁资源和网络I/O的消耗,性能反而下降。这是因为RAC的缓存熔合技术在处理多实例并发更新同一数据块时效率降低。 为了解决这个问题,华为提出了RAC分区方案作为第三阶段的解决方案。这个方案包括以下几个关键点: 1. 对于和电话号码相关的表,采用范围分区,每个表默认分为10个分区,分区名为instance_number,且保持非空。 2. 所有分区表的索引应使用分区索引,普通索引为local index,主键索引为global partition index,同时关联分区名。 3. 修改业务代码,根据当前活跃用户数进行负载均衡,将开户操作分配到对应的分区。 4. 其他操作需先获取分区号,然后发送给相应的DB实例处理。 5. 对于跨归属查询、无用户归属的操作和后台job,则在公共实例上处理。 通过这种方式,RAC分区方案可以减少实例间的并发冲突,优化资源利用率,提高系统的整体性能和可用性。同时,它还允许系统根据业务需求进行动态扩展,适应不断增长的数据量和处理需求,确保服务的稳定性和高效性。
2023-05-24 上传