资源描述
云原生多模数据库Lindorm多AZ介绍阿里云数据库高级技术专家杨文龙多种类型低成本海量存储多模互通融合开放数据生态企业级云原生弹性Alibaba Lindorm适用于任何规模的云原生多模数据库SQLNative API多种访问多种能力宽表键值时序搜索文件AZ1DB应用AZ2DB应用复制HBase多机房主备容灾能力 主备容灾痛点非强一致,主备切换存在数据不可见主备模式,备库资源浪费无法充分利用主备切换非自动,故障处理不及时基于Raft/Paxos的容灾 Paxos/Raft痛点三AZ部署,部分区域无三机房Follower节点资源浪费Paxos Log基于本地存储,无法完全存储计算分离复杂度较高Lindorm多AZ容灾理论基础 CAP-PACELC随着数据库的不断发展,一致性和可用性不再是完全对立的,很多NewSQL数据库已经实现了高可用的强一致容灾PACELC:如果有分区partition(P),系统就必须在availability 和consistency(A and C)之间取得平衡;否则else(E)当系统运行在无分区情况下,系统需要在 latency(L)和 consistency(C)之间取得平衡日志即数据数据库数据可以由全量snapshot+增量日志回放得出多一致性基于日志的一致性协议存储计算分离P3P2LSMP1冷热分离LDServerSchema管理分区多副本协同查询编译Query ProcessorLDMaster集群管理负载均衡宕机恢复Open Source ProtocolNative ProtocolP3P2P1LDServerDDL 处理Lindorm Table EngineOSS APIHBase/Phoenix/Cassandra APINative APINative Table APILindorm SQLLindorm Cloud Native Store认证鉴权ReplicaConsensusLSM冷热分离ReplicaConsensusLindorm宽表引擎系统架构冷热分离LSM多一致性智能索引跨AZ容灾多租户存储计算分离行列混合编码自动数据分片Lindorm多AZ架构存储引擎AZ1AZ2Log StorePartition1KV-StorageGlobal MasterPartition2Partition2Partition1KV-StorageLTS数据链路导出Log ReplayRemote Log ReplayLog PushControl PlaneDB PlaneStorage Plane 日志即数据 一份日志,全局使用 同步写入至本地副本,异步回放至远程副本 分区副本间的数据延迟为毫秒级 强一致:主副本提供读写,宕机后从副本在30秒内自动切换为主 最终一致:主从副本提供读写,多活状态,数据双向复制WriteModelDN1DN2DN35678RegionWAL(Quorum)HDFSClientPutAck 8Ack 8Ack 8Ack 8Lindorm-Log-ConsensusAck 8Ack 6p LLC核心设计 写3等2的Quorum机制,充分利用日志存储顺序性,读多写少的优势 多AZ容灾,支持同城1AZ,3AZ多种模式,面向不同数据一致性和延迟 慢节点摘除,节点落后较多时重选Quorum Group 故障恢复,通过Recover Lease确定文件长度Lindorm日志同步-LLC技术解析Lindorm 多AZ强一致日志存储3AZAZ1AZ2主备主备写入回放 Region级别主备复制,支持region自动分裂,合并 日志三机房保证数据容灾 备Region通过日志回放获取增量数据 日志数据通过LLC协议Quorum写入 数据文件存储机房内部,避免跨机房网络开销 主故障自动切换,故障恢复时间60sAPP应用读写Lindorm 多AZ最终一致日志存储AZ1AZ2回放 支持根据应用位置就近访问 支持Speculative访问,可以大幅降低99.9毛刺 数据延迟 100ms 异常流量自动转换,故障恢复时间小于30sAPP应用读写APP应用读写日志存储写入写入SpeculativeRead/Write多AZ方案能力对比Lindorm强一致Lindorm最终一致主备容灾基于Paxos/RaftRPO数据丢失0小于 100ms小于 1s0RTO服务恢复1分钟10-30s10-30s30s-3分钟存储计算分离支持支持支持不支持访问延迟基于主,可能存在跨AZ就近访问基于主,可能存在跨AZ基于主,可能存在跨AZ最小AZ数目日志3,文件2223Lindorm Multi AZ Structure存储引擎AZ1AZ2Log StorePartition1KV-StorageGlobal MasterPartition2Partition2Partition1KV-StorageLTSData ExportexportLog ReplayRemote Log ReplayLog PushControl PlaneDB PlaneStorage Plane Log As Data One Log,Used Everywhere Data Written at Az1 will remote replayed to all backups async Lindorm Tunnel Service pull log from log store directly Strong Consistency:Only primary will server request,Secondary becomes leader automatically after leader crash.Eventual Consistency:All replicas serves request,client choose nearby Az for best latency
展开阅读全文