发生故障|你“剁手”的时候,支付宝在干嘛?( 二 )


第二 , 数据正确性 。 这也是OceanBase多年来在“双十一”以及其它大促活动中呈现的核心能力 。 保证数据库的“稳定可靠” , 最难的是做出一套数据完全正确的系统 , OceanBase怎么解决这个难题呢?与其他数据库系统不一样的是 , OceanBase在早期就应用到了核心场景中 , 因此 , 其将数据库内化进系统内核中 , 做数据的实时校验 , 系统一旦发生错误或故障 , 就会非常快速地被发现 , 保障数据正确 。
第三 , 持续稳定运行无异常 。 OceanBase曾在2019年参加TPC-C测试(TPC-C是全球最具公信力的联机交易处理数据库的功能与性能结合的测试标准 。 是商业数据库想要证明自身实力的一个硬性门槛) , 以6088万(60,880,800)的在线事务处理性能创造了世界纪录 , 一年后以7.07亿(707,351,007)的成绩再创记录 。 这看起来只是一串数字 , 但该数据背后 , 意味着仅一张表格的数据支持量就超过了20万亿 , 同时还要保持数据的一致性 。 另外 , TPC-C 要求被测数据库能够以平稳的性能至少持续运行8小时 , 其中性能采集时段(不少于2小时)内的性能累积波动不得超过2% , OceanBase的成绩是持续运行8小时 , 抖动小于0.5% 。 这为“双十一”等极端应用场景提供了稳定保障 , 得以让用户在面对机器故障、磁盘故障、网络故障时还能毫无感知 , 愉快地“买买买” 。
关键能力二:弹性扩缩容
高并发场景不仅需要极致的容量 , 还需要具备弹性扩缩容的能力 。 对于容量 , 分布式数据库天然支持无限扩展服务器 , 这是OceanBase在业务中的优势 。 在“双十一”期间 , 他们会快速增加服务器 , 30分钟实现近5000台机器 , 并做性能优化和降本增效 , 锻炼容量能力 , 提升单机性能 。 据OceanBase CEO杨冰透露 , 每一年OceanBase都会设立一个项目 , 根据上一年“双十一”的需求来专门提升性能和优化成本 , 比如相比去年 , 今年读写提升了61% , 而成本只有MySQL的三分之一左右 。
对于数据库本身的弹性扩展能力 , 杨冰谈到支付宝的“百万级副本的能力” , 即每秒最高峰值为一百万笔支付 , 这在数据库系统中 , 可能接近亿级QPS(Queries-per-second , 查询率) , “双十一”期间 , 每秒都会产生数万笔支付 , 对此 , OceanBase通过两层弹性技术来支撑 , 第一层是中间件的分库分表 , 第二层是OceanBase的分区表格 。 先通过分库分表将数据分成一百份 , 再通过分区表格将这一百份分别拆分出一百份 , 共拆分出一万份 , 使得每一份都至少能在一台机器上 , 以此做自动的弹性 。
通常 , 有分库分表就足够了 , OceanBase为什么要再做一层?分库分表的好处在于对数据库依赖比较低 , 但问题是基于分成的一百份 , 想再拆分为一千份、一万份时很难 , 所以每用一次就需要上百人拆库 , 做技术攻坚 。 这才有了OceanBase的分区表 , 自动扩容 , 不再需要担心容量的问题 , 且对整个业务几乎没有影响 。

推荐阅读