《2019年云時代企業級分布式數據庫的技術挑戰.pdf》由會員分享,可在線閱讀,更多相關《2019年云時代企業級分布式數據庫的技術挑戰.pdf(29頁珍藏版)》請在三個皮匠報告上搜索。
1、OceanBase:透明可擴展的企業級數據庫螞蟻金服 研究員目錄什么是透明可擴展透明可擴展的理論基礎 透明可擴展的關鍵設計 OceanBase實踐企業級數據庫:Oracle、SQLServer、DB2 云數據庫:Amazon Aurora、Amazon Redshift 魔力四象限 行業現狀ABILITY TO EXECUTECHALLENGERSLEADERSNICHE PLAYERSVISIONARIESMongoDBMarkLogicIntersystemsAmazon Web ServicesMicrosoftOracleSAPIBMEnterpriseDBDataStaxMapRAc
2、tianGoogleAlibaba CloudCOMPLETENESS OF VISIONAs of June 2018Gartner.Inc企業級數據庫面臨的問題$單機不可擴展成本高云數據庫:開源數據庫+存儲計算分離 解決了存儲可擴展問題,但事務和SQL不可擴展 開源數據庫核心能力距離企業級數據庫仍有較大差距云數據庫!=透明可擴展DB(寫入)DB(只讀)存儲集群Hybrid clouds require excellent distributed OLTP DBMS,and the memory/storage architecture still requires a lot of wor
3、k.In addition,data security and data management are both issues that need to be considered.C MohanICDE 2019,IBM Fellow分庫分表!=透明可擴展middleware!中間件分庫分表分布式數據庫全局索引 全局快照 跨服務器復雜查詢 跨服務器DML語句 帶容錯能力的分布式事務 無需業務修改,按需擴容 核心能力可擴展(存儲、事務、SQL)線性可擴展 持續可用,穩定 企業級數據庫功能 通過核心業務和benchmark證明 透明可擴展的企業級數據庫目錄什么是透明可擴展 透明可擴展的理論基礎透
4、明可擴展的關鍵設計 OceanBase實踐 原子性(A)事務操作要么全部成功,要么全部失敗 一致性(C)一個事務只能使數據庫從一個一致的狀態跳轉到另一個一致的狀態,不能破壞主鍵唯一或者所有列之和為固定值之類的約束 隔離性(I)多個并發事務互相不影響,就如同多個事務串行執行一般 持久性(D)一旦事務成功提交,它對數據庫的影響是永久的 事務ACID1978年,Jim Gray 阻塞協議:參與者宕機/協調者宕機 一臺機器故障導致整個集群不可服務 分布式事務:2PC協議的陷阱參 與 者協 調 者參 與 者PreparePreparedCommitCommittedPreparePreparedComm
5、itCommittedX分布式事務的應對方案 中間件XA:依賴數據庫 NOSQL系統:CAP理論,回避一致性與分布式事務 云時代的架構選擇:直面問題,采用Paxos+2PC 分布式事務:Paxos+2PCConsensus on Transaction Commit Jim Gray and Leslie Lamport Microsoft Research 1 January 2004 Revised 19 April 2004,8 September 2005二階段參與者二階段參與者二階段參與者事務管理器事務管理器事務管理器ReplicaReplicaReplicaPaxosPaxosPa
6、xosLeader主備同步模式:最高保護模式、最高性能模式、最高可用模式CAP:P無法規避,C與A不可兼得Paxos的高可用與CAP的可用性Paxos高可用:單點故障時多數派能否快速恢復 CAP可用性:單點故障時故障節點能否恢復 CAP與PaxosConsistencyAvailabilityPartition ToleranceCACPAPRaft的得與失得:順序提交日志,大大簡化Paxos 失:并發能力更差,犧牲可用性,異地部署有風險 常見系統做法Paxos陣營:Google Spanner,Ant Financial OceanBase 1.0,Amazon DynamoDB Raft陣
7、營:Ant Financial OceanBase 0.5,Tencent TDSQL,以及一系列開源系統Raft or Paxos123456123456等待X主機備機PaxosRaft目錄什么是透明可擴展 透明可擴展的理論基礎 透明可擴展的關鍵設計OceanBase實踐 全局一致性/強一致的全局索引 多種數據分區,二級分區 分區分裂:數據量太大或者load太高時自動分裂分區合并:數據刪除較多,相鄰分區自動合并分布式分區表PartitionsTableAPP服務器自動上下線 負載重新均衡 邏輯復制與物理復制 自動負載均衡調度總控工作機P1P2P3工作機P2P3P4工作機P1P3P4工作機P1
8、P2P4多因子負載均衡 計算均衡(CPU&內存),存儲均衡(磁盤占用)計算存儲資源配比和實際業務不匹配 存儲遷移耗時長,計算負載變化快 存儲計算分離 分布式數據庫負責計算均衡,存儲集群負責存儲均衡 負載均衡的兩難選擇分布式 數據庫存儲集群主備切換不殺事務:新事務在新的主分區開啟,進行中事務在線遷移 分區分裂不殺事務:新事務在分裂后的新分區開啟,進行中事務在線遷移 分區容錯POP1P2P1分區分裂P1P1P1主備切換P1已完成事務進行中事務新開啟事務P1讀寫請求重試,防止重試風暴任務級重試Proxy在線升級,數據庫在線session遷移異常處理:磁盤/服務器hung住,“半死不活”全鏈路請求容錯
9、分布式 數據庫ProxyAPPProxyProxy分布式數據庫跨機場景獲取全局事務版本號(SCN)主備強同步兩階段提交分布式執行計劃異步執行不占用工作線程協程降低線程切換開銷分布式線程模型工作線程工作線程工作線程日志緩沖區日志線程異步回調 應答客戶端強類型系統 行迭代批處理推模型提升代碼局部性編譯執行并行執行HTAP執行引擎int compare(Key k1,Key k2)int ret=0;if(INT=k1.get_type()&INT=k2.get_type()ret=int_compare(k1.get_value(),k2.get_value();else if NUMBER=k1
10、.get_type()&NUMBER=k2.get_type()ret=number_compare(k1.get_value(),k2.get_value();AggregateProjectFilterScanselect count(*)from store_sales where ss_item_sk=1000;volcano模型基于代價的查詢優化器 Adaptive Cursor Sharing解決大小賬號問題 SQL Plan Management執行計劃演進企業級查詢優化器老計劃新計劃流量老計劃基線新計劃基線演進新計劃無 性能回退根據基線 復現計劃單機數據庫:串行優化=算子局部并
11、行化并行優化create table t1(a int primary key,b int,c int)partition by hash(a)partitions 4;create table t2(a int primary key,b int,c int)partition by hash(a)partitions 4;create table t3(a int primary key,b int,c int)partition by hash(a)partitions 5;select*from t1,t2,t3 where t1.a=t2.a and t2.b=t3.b;HJMJt2
12、t3t1并行化t2t3EX(HASH)EX(HASH)PWMJEX(HASH)t1EX(HASH)PWHJ第一階段第二階段PWMJEX(HASH)t3EX(HASH)PWHJt1t2最優計劃(大概率)目錄什么透明可擴展 透明可擴展的理論基礎 透明可擴展的關鍵設計 OceanBase實踐阿里巴巴、螞蟻金服自主研發的企業級分布式關系數據庫 第一次將Paxos協議引入到關系數據庫領域,實現持續可用工業級shared nothing分布式數據庫架構,無需業務修改代碼透明可擴展 全局一致的數據庫視圖 跨服務器復雜查詢 MySQL全兼容,Oracle部分兼容,原生多租戶支持 關于OceanBase螞蟻金服
13、:支付寶核心鏈路100%支付量,網商銀行全部流量,并已進軍國際業務OceanBase使用情況在浙商銀行、南京銀行、蘇州銀行、廣東農信、人保健康險等外部客戶的互聯網核心系統中,承擔交易數據庫的重要角色螞蟻金服交易支付按照user_id拆分N份,需要擴容到M*N份 痛點:中間件+業務拆分,需要上百人年開發量,技術風險很高 解決方案:OceanBase分區表實現透明拆分交易支付透明拆分透明拆分分區表分區表分區表螞蟻金服會員系統,根據user_id,user_name,email查找用戶信息 痛點:單機數據庫,只能垂直擴展,無法水平擴展 解決方案:OceanBase分區表+強一致全局索引 會員系統全局索引Partitions主表 user_id分區索引表 user_name分區某金融機構有大量批處理場景,有多張大表關聯的復雜計算,并且涉及到大量的數據更新 痛點:傳統集中式數據庫單點瓶頸,成本高 解決方案:透明可擴展的OceanBase,HTAP場景并行處理能力,處理時間縮短到現有系統的一半,TCO大幅降低結算系統小機下移APPOMS平滑遷移可灰度,可回滾