- 设计目标 及 设计思路
1. PB级存储量、数十万级TPS、数百级QPS。
2. 支持跨行跨表事务。
3. 可扩展、低成本、易用。
传统的数据库分库分表在性能上满不足不了需求的。BigTable仅支持单行事务。Google Percolator 使用BigTable + 2PC 技术实现分布式事务,但是性能不满足需求(2-5s),比较适合网页建库这样的半线上业务。
分析淘宝的业务发现,短时(1天)内数据更新量并不是很大,在千万级别左右。OceanBase 基于此采用单台机器记录更新数据(称作增量数据),加上之前某个时刻的基线数据组成实时数据。单台机器记录更新数据的好处是避免了分布式事务,大幅度的提升了事务的性能。
- 架构设计
系统主要分为四部分,即中心节点(RootServer)、更新服务(UpdateServer)、数据节点(ChunkServer)、代理节点(MergeServer)。其中RootServer 与 UpdateServer 均为强一致模型,且统计部署,UpdateServer通过租约方式选主(RootServer充当外围Token管理节点)。MergeServer 与 ChunkServer可以同机部署。
RootServer
RootServer一主一备,通过Linux HA实现高可用,通过VIP对外提供服务,切主服务。
持有UpdateServer的Token,UpdateServer通过强一致保证数据的可靠性,但是牺牲了可用性(CAP理论)&#