• <track id="oztn4"></track>
    <sup id="oztn4"><form id="oztn4"></form></sup>
    
    
    <mark id="oztn4"></mark>
  • <dfn id="oztn4"><samp id="oztn4"></samp></dfn>
      《地爆天星小姐》电影 ,麦子交换2免费观看2023年上映时间表 ,莫妮卡《爱我几何》,大牛影库战狼6欧式少女全部视频,三年大片国语版在线看,日本空姐电视剧,电影魔镜号中文字幕,和部长一起去出差旅是第几集
      全球「AI學術頂會」精華匯聚地
      您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      人工智能開發者 正文
      發私信給skura
      發送

      0

      阿里核心技術成員解讀自研數據庫 OceanBase

      本文作者: skura 2019-10-10 11:37
      導語:這里有你想知道的關于阿里自研數據庫 OceanBase 的詳細解讀~

      本文作者是 OceanBase創始人陽振坤、OceanBase技術專家曹暉、OceanBase資深技術專家陳萌萌、OceanBase資深技術專家潘毅、OceanBase資深技術專家韓富晟、OceanBase高級技術專家趙裕眾。本文原載于阿里技術微信公眾號(ali_tech),AI開發者獲授權轉載。

      前言

      螞蟻金服自主研發的金融級分布式關系數據庫 OceanBase,不久前在被譽為“數據庫領域世界杯”的 TPC-C 基準測試中打破了由美國公司 Oracle(甲骨文)保持了 9 年之久的世界記錄,成為首個登頂該榜單的中國數據庫產品。

      很多人都好奇 OceanBase 究竟有何能耐取得這個結果,這篇文章也許能夠告訴我們答案。

      阿里核心技術成員解讀自研數據庫 OceanBase

      阿里妹導讀:TPC-C是TPC組織(國際事務性能委員會)制定的關于商品銷售的訂單創建和訂單支付等的基準測試標準,是數據庫聯機交易處理系統的權威基準測試標準。

      螞蟻金服自研的分布式關系數據庫OceanBase獲得TPC-C測試第一名后,引起了大量關注,今天,我們邀請了OceanBase的核心研發人員對本次測試做專業的技術解讀。

      一、OceanBase如何做TPC-C測試

      有機會挑戰TPC-C測試相信是所有數據庫內核開發人員的夢想,但TPC-C測試標準非常復雜。由于這是國產數據庫同時也是分布式數據庫第一次沖擊這個榜單,為了完成這次挑戰,OceanBase團隊前后準備時間超過一年。

      前期準備

      TPC-C測試首先需要找到官方唯一認證的審計員來對測試進行審計監察,他們對這次OceanBase的審計也相當重視,全世界僅有的三個審計員這次就有兩個參與到測試審計工作中。

      測試系統

      目前市面上基本找不到一個能夠開箱即用的符合TPC-C標準的測試工具。以目前各個廠商PoC環境最常遇到的benchmarksql為例,可以說只是模擬TPC-C壓力模型的壓測工具,連最基本的數據導入都不合規,大量的字符串生成未保證全局隨機,缺乏壓測階段最基本的think  time、keying  time這些基本配置導致極小的數據量就能跑出很高的tpmC,最關鍵的是它將測試模型大大簡化為工具直連DB測試,完全沒有遵守TPC-C測試標準規范。

      在標準定義中,測試系統可以分為RTE(Remote Terminal Emulator)和SUT兩部分,但實際上從角色上看SUT可以進一步拆分為兩部分:WAS(web application server)和DB Server。

      這其中DB   Server是每個測試廠商的數據庫服務;RTE扮演的角色是測試模型中的客戶終端,事務的觸發、RT的統計等都在這里完成;標準明確要求每一個用戶terminal都必須保持一個長連接,顯然在海量Warehouse時DB是無法承受這么多連接的,WAS就是RTE和DB之間橋梁,標準定義可以使用連接池,在保證對應用透明的情況下它可以做所有請求的管理。

      這三個角色中,WAS和DB是必須商業化可購買且提供支付服務的,OceanBase這次是使用了OpenResty作為WAS供應商。而RTE則一般由各個參測廠商自行根據標準實現,但所有實現代碼必須經過審計的嚴格審計,OceanBase這次完整的實現了一整套完全合規的RTE,并且支持在大規模測試系統中部署。要知道在實際的TPC-C測試流程中,不只是對DB端能力的考驗,RTE端同樣存在極大的資源消耗和壓力。以這次6088w   tpmC測試結果看,我們一共在64臺64c128G的云服務器上運行了960個RTE客戶端,來模擬總計47942400個用戶terminal,最后還需要基于這么多RTE統計結果進行一致性和持久化審計驗證。

      雖然只是測試客戶端,但RTE的中同樣有大量的可能導致最后測試失敗的小細節,比如大家可能注意不到的所有事務都因為用了web端模擬終端后需要增加的100毫秒rt,又比如為了模擬用戶終端輸出顯示的100毫秒延時。

      測試規劃

      TPC-C從來都不是一個簡單的測試,它很科學并沒有給出強制的軟硬件配置,只是給出測試規范和各種審計檢查限制標準,所有數據庫廠商可以根據自己的特性充分調優來拿到一個最好的性能或性價比。但這同時也對所有參測廠商提出了一個巨大的難題,如何對已有的資源進行合理規劃來保證順利完成一次對TPC-C榜單的沖擊。

      1. 硬件選型,這里不僅要對數據庫服務器選型,還需要對RTE以及WAS服務器選型。這之前需要先期進行大量的測試和調優,來摸出在保證性價比的前提下每個角色服務器的資源配置是多少剛好。這次OceanBase測試最大的優勢就是全部使用了云化資源,我們不需要再關注最底層機房、機柜、布線這些細節,只需要通過快速的規格調整來拿到我們需要的機型。

      2. 參數選擇,如何選擇合適的配置參數是一個非常令人頭疼的問題。舉個例子,一個最典型的問題就是我們最終要跑多少個Warehouse,每個數據庫服務器上承載多少Warehouse。TPC-C標準為了盡可能模擬真實業務場景,通過每個事務限定不同的think  time和keying  time保證了一個warehouse的數據最多能夠提供12.86tpmC值,因此數據庫廠商想要拿到更高的成績就必須裝載更多的warehouse,但是另一方面單機的存儲空間又有預計80%(經驗值)需要預留給60天增量存儲。在分布式數據庫架構下,為了能讓每個數據庫服務器跑滿又能充分利用本地存儲空間,讓每個服務器的CPU、內存、IO能力、存儲空間的資源最大化利用,我們前后調整優化了近一個月時間。

      性能壓測

      最受關注的性能壓測部分在TPC-C標準中規定了以下三個狀態:

      1. Ramp-up,標準允許每個數據庫進行一定時間的預熱來達到穩定狀態,但是ramp-up階段的所有配置必須和最終報告配置保持一致。

      2. Steady state,保證ACID及可串行化隔離級別前提下,數據庫需要能夠以最終報告tpmC值在穩定狀態無任何人工干預前提下保持運行8小時以上,每隔半小時需要完成一次checkpoint。

      3. Measurement Interval,標準規定了需要能夠支持8小時穩定運行,但性能采集階段只需要保設置2小時以上即可。這個階段還需要保證累計tpmC波動不能超過2%,并且必須完成至少4個以上的checkpoint。

      所以之前一般數據庫進行性能壓測一般是以下的流程,先進行一段時間的預熱到達穩態,等待穩定運行一段時間并完成一個checkpoint后開始進入2小時的性能采集階段。

      而OceanBase這次是使用了TPC-C測試迄今以來最嚴苛的一個流程來完成這個性能測試的,我們首先使用了10分鐘進行預熱,然后在6088w   tpmC穩態保持運行25分鐘并完成一個檢查點,再繼續跑了完整的8小時性能壓測采集階段,總耗時超過8個半小時,中間性能最大波動不到0.5%,最終結果也讓審計員異常興奮。

      整個性能測試前后,審計員還需要進行數據及事務隨機分布檢查,簡單說來就是大量全表掃描和統計sql,最大的一條sql需要訪問超過萬億行的order_line表結果,可以算是TPC-C里的“TPC-H測試”。現場審計第一次遇到這些sql時我們也大量的出現sql執行超時情況,但后續基于OceanBase2.2版本最新的并行執行框架我們還是很快搞定了這些大sql,所以要順利完成TPC-C測試并不能只是一個偏科生,保持自身沒有短板才是真正意義上的通用關系數據庫,從這點上說Oracle仍是OceanBase學習的榜樣。

      ACID

      1. A測試,通過提交和回滾payment事務來確認數據庫對原子性支持,和I測試一樣,OceanBase的A測試跑了兩遍,分別應對分布式事務和本地事務。

      2. C測試,標準里的C測試一共包含12個case,前四個是必須要完成驗證的,每個case其實都可以認為是一個復雜的大sql,而對于分布式數據庫來說重點是需要始終保證全局一致。

      3. I測試,標準要求TPC-C模型里5個事務除了StockLevel事務都需要滿足最高的可串行化隔離級別,并構造了9個case來驗證隔離性。對于分布式數據庫而言,這個要求并沒有那么容易實現,所幸OceanBase在2.x版本中提供了全局時間戳的支持,所以的I測試都在審計員的特別要求下跑完了全本地和全分布式兩種模式的兩輪測試,這也應該是TPC-C測試中首次有數據庫廠商需要做兩輪I測試跑18個case的,也許在不久后TPC-C標準定義也會因為OceanBase的這次測試而帶來針對分布式數據庫的相關更新。

      4. D測試,OceanBase在這個場景其實相對傳統數據庫是有較大天生優勢的,OceanBase每個Warehouse數據有兩份數據三份日志,通過paxos強同步,保證RPO=0的前提下只有秒級RTO。

      面對D測試標準中最嚴格的一項-部分存儲介質永久故障,OceanBase還使用了最嚴苛的測試場景,在使用超出標準要求的全量6000W   tpmC壓力下,我們強行銷毀了一個云服務器節點,整體tpmC在兩分鐘內恢復到6000w并持續跑到測試時間結束,這些表現都是遠遠超過TPC-C規范要求的,相比較而言其它傳統數據庫基本面對有日志的存儲介質故障D測試場景都是依賴磁盤RAID來恢復,OceanBase應該算是首個沒有raid完全依賴數據庫自身恢復機制完成全部D測試的數據庫廠商了。

      同時我們在D測試中是連續殺掉了兩臺服務器節點,首先殺掉一個數據節點,等待tpmC恢復且穩定5分鐘后,再次殺掉了rootserver leader節點,tpmC仍然快速恢復。  

      二、TPC-C基準測試之SQL優化

      對TPC-C有所了解人都知道,TPC-C是一個典型的OLTP  (On-Line Transaction Processing)  場景測試,考察的是數據庫在高并發壓力場景下的事務處理能力,最終的性能指標以tpmC(transaction per  minute,也即每分鐘系統處理TPC-C模型中的new  order事務的數量)和平均到每tpmC的系統成本作為衡量標準。在OLTP場景中,每條請求的響應時間都是極短的。因此,各個數據庫廠商在進行TPC-C測試時,都會盡一切可能將每一個操作時間壓縮到最短,不夸張的說,在TPC-C的測試中,一些關鍵操作的優化往往需要細化到CPU指令級。

      在進入我們的主題前,我們先來談談TPC-C中的事務模型,主要分為五種事務,訂單創建、訂單支付、訂單查詢、訂單發貨以及庫存查詢,這五種事務按照一定的比例發生,測試最終衡量的是每分鐘訂單創建事務的執行個數。大家知道,每一個數據庫的事務,其實就是由一定邏輯關系關聯的若干條SQL語句組成,他們在一個事務中,要么全部成功,要么全部失敗,這個在數據庫中稱為“原子性”,也就是ACID中的“A”。那么TPC-C中的一個事務的耗時大約是多久呢?看一下報告就很清楚了——只有十幾個毫秒。考慮到一個事務由多條SQL構成,那么每一條SQL的平均耗時都不到1毫秒!

      在C/S(client-server)模型中,一條SQL語句從發起到執行完成需要經歷從客戶端輸入、網絡傳輸、SQL優化、執行、結果返回到客戶端這樣一個流程。而具體每一條SQL的執行可能只是做一個字段的更新,所需要的執行時間是非常短暫的,從整個鏈路的角度來看,大量的時間會花費在與客戶端的交互過程中,造成資源的浪費和耗時的增加。那么如何解決這個問題的呢?答案就是使用存儲過程。

      存儲過程

      所謂“存儲過程”就是數據庫為用戶提供的一種面向過程的編程語言。基于這種語言,用戶可以將應用程序的邏輯封裝為一個可調用的過程(procedure)存放在數據庫中并隨時進行調用。通過這種方式,用戶可以將本來需要與數據庫進行多次交互才能完成的工作通過一次交互完成,省去了中間網絡的傳輸和等待時間(參見圖1)。假如一條事務的網絡開銷平均是30%,也就是說30%的CPU都花在了網絡的收發和解析上。那么在6千萬規模tpmC測試中節省下來30%的CPU資源換算成系統處理能力是驚人的。使用存儲過程還可以帶來事務響應時間的下降,導致數據庫內核中事務鎖的臨界區縮短,間接的提升了系統CPU利用率,整個吞吐量也隨之提高。存儲過程在縮短應用端的等待耗時上同樣有很大作用。

      阿里核心技術成員解讀自研數據庫 OceanBase

      圖1 傳統的C/S模型與使用存儲過程的執行方式對比

      在TPC-C中,存儲過程對于整個系統的執行效率提升是至關重要的。OceanBase 的2.2版本不僅全面支持了存儲過程,而且對存儲過程的執行效率做了大量極致的優化。

      編譯執行

      存儲過程作為一種面向過程的高級語言,需要轉換成機器碼才能夠執行。這個過程一般可以分為“編譯執行”和“解釋執行”兩種,一般來說,編譯執行相比解釋執行有代碼優化充分、執行效率高等特點。OceanBase利用近兩年逐漸成熟的LLVM編譯器框架實現了一個支持存儲過程的編譯器,通過動態編譯(Just-in-Time   Compilation)的方式將存儲過程翻譯成高效的二進制可執行代碼,在執行效率上獲得了數量級的提升。同時,過程中LLVM框架將存儲過程轉換為與機器無關的中間代碼,使得存儲過程也自然而然地獲得了跨平臺的編譯執行能力,LLVM內置的優化過程確保我們在各種不同的硬件平臺上都可以獲得正確、高效的可執行代碼。

      Array Binding

      另外一個在TPC-C測試中發揮了重要作用的功能就是對DML語句進行批量處理的能力,在Oracle中該功能也稱為“Array   Binding”。一條SQL在數據庫中的執行過程大致上可以分為“計劃生成”和“執行”兩個階段。盡管我們對SQL的執行計劃做了高速緩存,但找到一個合適的執行計劃在整個執行過程中仍然是比較耗時的一個部分。那有沒有辦法省去這個時間呢?當一組SQL的執行計劃完全一樣而只有執行參數不同時,在存儲過程中我們可以通過特定的語法將他們的執行做成一個批量處理的過程,此時“計劃生成”只需要做一次即可,這就是所謂的“Array  Binding”。

      在Array   Binding中,數據庫會首先找到需要使用的計劃,然后執行該計劃,并在每次執行完畢后,重新執行參數綁定(binding)的過程。打個比方,這就像是在一個C語言的for循環中,反復賦值而不是重新定義一個數據結構。Array  Binding的使用受用戶控制,需要在存儲過程中使用FORALL關鍵字來觸發這一功能,在TPC-C的測試過程中,我們多次使用了Array  Binding來提升系統的處理能力,效果非常明顯。

      Prepared Statement與執行計劃緩存

      Prepared  Statement是一種二進制的請求交互協議,可以大大降低系統的交互成本。OceanBase不僅支持用戶程序與數據庫間使用Prepared  Statement, 也支持在存儲過程引擎調用SQL引擎執行時使用這種交互方式。存儲過程在對SQL進行一次Prepare操作并獲取唯一id后,  后續的每次執行僅需要傳入該id和對應的參數,系統可以通過高速緩存找到對應的存儲過程或SQL計劃開始執行。該過程相比使用SQL文本的交互方式,省去了大量請求文本解析的CPU開銷。

      OceanBase內部實現了高速緩存來緩存存儲過程的可執行代碼及SQL執行計劃,不同參數的存儲過程和SQL可以通過這一高速緩存快速獲取需要的執行對象, 耗時一般在幾十微秒以內, 有效避免了重新編譯帶來的毫秒級的延遲和CPU消耗。

      可更新視圖

      在OLTP場景中,通過減少應用與數據庫的交互次數來實現性能提升的例子很多,可更新視圖就是其中之一。我們常見的數據庫視圖通常是只讀的,通過定義視圖,用戶可以定義自己感興趣的數據以及其獲取接口,但視圖同時也可以作為更新操作的入口,比如在TPC-C的new  order創建場景中,應用需要得到商品信息,更新庫存并得到更新后的值。一般可以通過兩條SQL實現這一過程:

      select i_price,i_name, i_data from item where i_id = ?;    


      UPDATE stock     

      SET s_order_cnt = s_order_cnt + 1,         

      s_ytd = s_ytd + ?,         

      s_remote_cnt = s_remote_cnt + ?,         

      s_quantity = (CASE WHEN s_quantity< ? + 10 THEN s_quantity + 91 ELSE s_quantity END) - ?     

      WHERE s_i_id = ?         

      AND s_w_id = ?     

      RETURNING s_quantity, s_dist_01,         

      CASE WHEN i_data NOT LIKE'%ORIGINAL%' THEN 'G' ELSE

      (

      CASE WHEN s_data NOT LIKE '%ORIGINAL%' THEN 'G'ELSE 'B' END

      ) END     

      BULK COLLECT INTO ...

      但通過建立一個可更新視圖:

      CREATE VIEW stock_item AS     

      SELECT i_price, i_name, i_data, s_i_id,s_w_id, s_order_cnt, s_ytd, s_remote_cnt, s_quantity, s_data, s_dist_01     

      FROM stock s, item i

      WHERE s.s_i_id =i.i_id;

      我們就可以通過一條語句更新庫存并得到商品和庫存信息:

      UPDATE stock_item     

      SET s_order_cnt = s_order_cnt + 1,         

      s_ytd = s_ytd + ?,         

      s_remote_cnt = s_remote_cnt + ?,         

      s_quantity = (CASE WHEN s_quantity< ? + 10 THEN s_quantity + 91 ELSE s_quantity END) - ?     

      WHERE s_i_id = ?         

      AND s_w_id = ?     

      RETURNING i_price, i_name, s_quantity,s_dist_01,         

      CASE WHEN i_data NOT LIKE'%ORIGINAL%' THEN 'G' ELSE (CASE WHEN s_data NOT LIKE '%ORIGINAL%' THEN 'G'ELSE 'B' END) END     

      BULK COLLECT INTO ...;

      這樣就省去了一條語句的交互,并且更新邏輯更加直觀。可更新視圖允許用戶可以像普通表一樣操作視圖,但不是所有視圖都可以定義為可更新視圖。比如帶distinct,  group  by的視圖,具體更新哪些行語義是不明確的,因此不能允許更新。具體到上面的stock_item兩表join的視圖,需要滿足所更新表的unique  key在join之后保持unique(key-preserved table),即item.i_id必須是唯一的這個前提。

      需要強調,TPC-C規范禁止使用物化視圖,而可更新視圖并沒有改變底層數據表格的存儲形式,是符合規范的。

      因為TPC-C的設計原則是盡可能的“真實”反應一個OLTP系統的運行場景,我們所做的很多優化都具有廣泛的適用性。例如,對于一個高并發的OLTP系統來說,大部分的SQL請求的耗時是非常短的,采用純粹的C/S交互模型的后果必然使系統的時間浪費在應用與數據庫的頻繁交互中,而使用存儲過程可以大大緩解這種交互的耗時,并且增強系統對于網絡抖動的免疫力,這種核心能力對于一個分布式OLTP數據庫是不可或缺的。

      在這次的TPC-C測試中,我們采用了OceanBase 2.0版本開始支持的Oracle兼容模式,存儲過程和SQL全部使用了兼容Oracle的數據類型和語法,這樣做也是為了在追求極致優化的同時,確保產品迭代可以沿著通用和正規的方向發展。  

      三、TPC-C基準測試之數據庫事務引擎的挑戰

      OceanBase這次TPC-C測試與榜單上Oracle和DB2等其他數據庫在硬件使用上有非常大的不同,OceanBase的數據庫服務器使用的是204+3臺型號是ecs.i2.16xlarge阿里云ECS服務器,其中204臺作為data  node,還有3臺作為root  node,每位讀者都可以在阿里云網站上輕松按需購買。如果讀者翻看Oracle和DB2的TPC-C測試報告會發現,這些數據庫都會使用專用的存儲設備,例如前最高記錄保持者Oracle在2010年的測試,使用了97臺COMSTAR專用的存儲設備,其中28臺用來存儲數據庫的重做日志(Redo  Log)。

      硬件的差異給軟件架構提出了完全不同的挑戰,專用的存儲設備其內部通過硬件冗余實現了設備自身的可靠保證,數據庫軟件在使用這樣的存儲設備時就天然的預設了數據不會丟失。但是,這種方式帶來了成本的極大消耗,專用的存儲設備的價格都是特別昂貴的。

      OceanBase使用通用的ECS服務器提供數據庫服務,并且只使用ECS機器自帶的本地硬盤做數據存儲,這是最通用的硬件條件。但是這種方式對軟件架構提出了很大的挑戰,因為單個ECS服務器的不如專用的存儲設備可靠性高。這也對OceanBase的事務引擎提出了很大的挑戰,OceanBase是在普通的ECS服務器上就可以實現ACID特性。

      TPC-C測試是對事務ACID特性有完整并且嚴格的要求。下面分別介紹OceanBase針對事務ACID的特性的解決方案。

      Paxos日志同步保證持久性(Durability)

      OceanBase數據庫的事務持久性(Durability)保證是依賴事務重做日志(Redo  Log)的持久性來達成的。所有的 Redo Log 會實時強同步到另外兩臺數據庫服務機器上,包含產生 Redo Log  的機器在內,總共會有三臺機器在硬盤中持久化 Redo Log。

      OceanBase  采用了 Paxos 一致性同步協議來協調這三臺機器上 Redo Log  的持久化,Paxos協議采用超過半數(也叫“多數派”)成功即算成功的算法(三個副本時,兩個成功即超過半數),當其中兩臺機器完成持久化后,事務即可完成提交,剩下的一臺機器的  Redo Log 在通常情況下,也是立即就持久化完成了。但如果這臺機器碰巧出現異常,也不會影響事務的提交,系統會在其恢復后自動補齊所缺失的  Redo Log。如果機器永久故障,系統會將故障機器所應負責同步的數據分散給集群內的其他機器,這些機器會自動補齊所缺失內容,并跟上最新的  Redo Log 寫入。

      使用Paxos一致性協議的最大優勢是數據持久化和數據庫服務可用性的完美平衡。當使用三個副本時,任何時候壞掉一個副本時至少還有另一個副本有數據,并且寫入還可以持續,因為還剩下兩個副本,后續的寫入也不受影響。

      所以,OceanBase 在保證了事務持久性的同時,也大大提升了數據庫的連續服務能力。TPC組織的審計員在現場審計OceanBase持久性能力時,在客戶端持續產生壓力的情況下,從OceanBase集群中隨意挑選了一臺機器做了強制斷電操作,發現數據庫的數據不僅沒丟,數據庫不需要任何人工干預還能持續的提供服務,審計員們都很吃驚,并且對OceanBase大為贊賞。

      依靠自動兩階段提交解決原子性(Atomicity)

      TPC-C測試模型的五種事務中的“訂單創建”和“訂單支付”兩個事務分別會對很多數據做修改,是其中相對復雜的兩個事務。TPC-C標準對事務的原子性(Atomicity)是強制性的要求,要求一個事務內部對倉庫、訂單、用戶等表格的修改一定要原子的生效,不允許出現只有一半成功的情況。

      OceanBase的數據是按照倉庫ID(Warehouse_ID)拆分到多臺機器上的,如果所有的事務都是發生在同一個倉庫內部,那么無論數據量有多大,事務的修改都只會涉及一臺機器的數據,也就是在一臺機器上完成事務提交,這是一種完美的線形擴展的場景。但是這不符合實際的業務場景,大多數的實際業務都會有很多不同維度之間的數據交互。TPC-C測試標準也是對此認真考慮,所以對于事務操作數據的隨機性規則提出了要求,最終要保證產生10%的“訂單創建”事務和15%的“訂單支付”事務要操作兩個及以上的倉庫。在OceanBase數據庫內,這樣就產生了跨機器的事務操作,而這必須使用兩階段提交協議來保證原子性。

      OceanBase會自動跟蹤一個事務內所有SQL語句操作的數據,根據實際數據修改的位置自動確定兩階段提交的參與者,事務開始提交時,OceanBase自動選擇第一個參與者作為協調者,協調者會給所有參與者發送Prepare消息,每個參與者都需要寫各自的Redo  Log和Prepare Log(也意味著每個參與者各自做自己的Paxos同步),等協調者確認所有參與者的Redo Log和Prepare  Log完成后,然后再給所有參與者發送Commit消息,再等所有參與者的Commit工作完成。整個協議是在事務提交過程中自動完成,對用戶完全透明。OceanBase為每一個兩階段提交事務自動選擇一個協調者,整個系統任何機器都可以分擔協調者工作,所以OceanBase可以將事務處理能力進行線形擴展。

      多版本并發控制保證事務的隔離性(Isolation)

      TPC-C標準里要求“訂單創建”、“訂單支付”、“訂單配送”、“訂單支付”事務之間都是串行化隔離級別(Serializable)。OceanBase采用的方法是基于多版本的并發控制機制。事務提交時會申請一個事務的提交時間戳,事務內的修改以新的版本寫入存儲引擎,并且保證之前版本的數據不受影響。事務開始時會獲取一個讀取時間戳,整個事務內數據的讀取操作只會看到基于讀取時間戳的已提交數據。所以,事務的讀取不會遇到臟數據、不可重復讀數據以及幻讀數據。同時,事務的修改會在修改的數據行上持有行鎖,保證兩個并發的修改相同行的事務會互斥。

      OceanBase的全局時間戳生成器也是由多副本組成,可以獨立部署在三臺機器上,也可以像這次TPC-C評測中一樣部署在root  node機器上,與root  node共享資源。全局時間戳的三副本是一種極高可用的架構,任何一次時間戳的獲取操作都至少在三臺機器上的兩臺獲得了確認,所以任意一臺機器出現故障,獲取時間戳的操作不會有一點影響。

      按照TPC-C標準,OceanBase準備了9種不同的場景測試有讀-讀、讀-寫沖突時事務的隔離性,最終都完美通過了審計員的審計。

      一致性保證(Consistency)

      在有了上述的事務能力后,OceanBase可以完美的保證各種數據的一致性的約束。TPC-C標準里提出了12種不同的一致性測試場景在各種測試運行前后對數據庫內的數據進行一致性校驗。因為OceanBase此次測試數據規模龐大,一致性校驗的SQL需要核對大量的數據,所以一致性校驗的挑戰在于校驗的SQL本身運行的效率。基于OceanBase的并行查詢能力,發揮整個集群所有的計算資源,校驗SQL的運行時間均縮短了幾個數量級,很好的完成一致性功能的審計工作。

      復制表

      TPC-C測試模型中有一張商品(ITEM)表,這張表的內容是測試所模擬的銷售公司所有售賣的商品信息,包含了商品的名字、價格等信息。“訂單創建”事務執行中需要請求這張表內的數據來確定訂單的價格信息,如果商品表的數據只存放在一臺機器上,那么所有機器上發生的“訂單創建”事務都會請求包含商品表的機器,這臺機器就會成為瓶頸。OceanBase支持復制表功能,將商品表設置為復制表后,商品表的數據會自動復制到集群中的每一臺機器上。

      TPC-C標準不限制數據的副本數,但是不管數據的組織形式,標準里要求事務的ACID一定要保證。OceanBase使用特殊的廣播協議保證復制表的所有副本的ACID特性,當復制表發生修改時,所有的副本會同時修改。并且,當有機器出現故障時,復制表的邏輯會自動剔除無效的副本,保證數據修改過程中不會因為機器故障出現無謂的等待。復制表在很多業務場景中都有使用,例如很多業務中存儲關鍵信息的字典表,還有金融業務中存儲匯率信息的表。  

      四、TPC-C基準測試之存儲優化

      TPC-C規范要求被測數據庫的性能(tpmC)與數據量成正比。TPC-C的基本數據單元是倉庫(warehouse),每個倉庫的數據量通常在70MB左右(與具體實現有關)。TPC-C規定每個倉庫所獲得的tpmC上限是12.86(假設數據庫響應時間為0)。

      假設某系統獲得150萬tpmC,大約對應12萬個倉庫,按照70MB/倉庫計算,數據量約為8.4TB。某些廠商采用修改過的不符合審計要求的TPC-C測試,不限制單個warehouse的tpmC上限,測試幾百到幾千個warehouse全部裝載到內存的性能,這是沒有意義的,也不可能通過審計。在真實的TPC-C測試中,存儲的消耗占了很大一部分。OceanBase作為第一款基于shared  nothing架構登上TPC-C榜首的數據庫,同時也作為第一款使用LSM  Tree存儲引擎架構登上TPC-C榜首的數據庫,在存儲架構上有如下關鍵點:

      1. 為了保證可靠性,OceanBase存儲了兩個數據副本和三個日志副本,而傳統的集中式數據庫測試TPC-C只存儲一份數據;

      2. 由于OceanBase存儲兩個數據副本,再加上OceanBase  TPC-C測試采用了和生產系統完全一樣的阿里云服務器i2機型,SSD硬盤的存儲容量成為瓶頸。OceanBase采用在線壓縮的方式緩解這個問題,進一步增加了CPU使用;相應地,集中式數據庫測試存儲一份數據,不需要打開壓縮;

      3. OceanBase LSM引擎定期需要在后臺做compaction操作,而TPC-C要求測試至少運行8小時且2小時之內抖動小于2%,因此,OceanBase存儲需要解決LSM引擎后臺操作導致的抖動問題;

      兩份數據

      為了保證可靠性和不丟數據(RPO=0),有兩種不同的方案:一種方案是在硬件層面容錯,另一種方案是在軟件層面容錯。OceanBase選擇在軟件層面容錯,優勢是硬件成本更低,帶來的問題是需要冗余存儲多個副本的數據。OceanBase使用Paxos協議保證在單機故障下數據的強一致。在Paxos協議中,一份數據需要被同步到多數派(超過一半),才被認為是寫入成功,所以一般來說副本個數總是奇數,出于成本考慮最常見的部署規格是三副本。

      三副本帶來的首要問題就是存儲成本的上升,之前商業數據庫的TPC-C測試大多基于磁盤陣列,而TPC-C規范中明確對磁盤陣列不做容災要求,使用相對于傳統數據庫三倍的存儲空間進行TPC-C測試顯然難以接受。

      我們注意到這樣一個事實,通過Paxos協議同步的只是日志,日志需要寫三份,但數據不是,數據只需要有兩份就可以完成單機故障的容災了,當一份數據由于服務器宕機不可用時,另一份數據只要通過日志把數據補齊,就可以繼續對外提供訪問。

      和數據存儲相比,日志的存儲量比較小。我們將數據與日志分開,定義了三種不同的副本類型:F副本既包含數據又同步日志,并對外提供讀寫服務;D副本既包含數據又同步日志,但對外不提供讀寫服務;L副本只同步日志,不存儲數據。當F副本出現故障時,D副本可以轉換為F副本,補齊數據后對外提供服務。在TPC-C測試中我們使用FDL模式進行部署(一個F副本,一個D副本,一個L副本),使用了兩倍數據副本的存儲空間。無論是D副本還是L副本,都需要回放日志,D副本還需要同步數據,這些都是都會消耗網絡和CPU。

      在線壓縮

      在sharednothing架構下,OceanBase至少需要存儲兩份數據才可以滿足容災的要求,這意味著OceanBase需要比傳統數據庫多耗費一倍的存儲空間。

      為了緩解這個問題,OceanBaseTPC-C測試選擇對數據進行在線壓縮,Oracle數據庫中一個warehouse的存儲容量接近70MB,而OceanBase壓縮后存儲容量只有50MB左右,大幅降低了存儲空間。TPC-C規范要求磁盤空間能夠滿足60天數據量的存儲,對于OceanBase,由于需要保存兩份數據,雖然可靠性更好,但需要保存相當于120天的數據量,這些存儲成本都要計入總體價格。

      OceanBase使用了204臺ECS   i2云服務器存儲數據,服務器規格和線上真實業務應用保持一致。每臺服務器的日志盤1TB,數據盤接近13TB。計算兩份壓縮后的數據60天的存儲空間之后,服務器的數據盤基本沒有太多余量,從服務器的資源成本消耗來看,已經達到了比較好的平衡。如果OceanBase的單機性能tpmC進一步提升,磁盤容量將成為瓶頸。OceanBase   LSM引擎是append-only的,它的優勢是沒有隨機修改,能夠在線壓縮。無論是TPC-C測試,還是最核心的OLTP生產系統(例如支付寶交易支付),OceanBase都會打開在線壓縮,通過CPU換存儲空間。

      存儲性能平滑

      TPC-C測試很大的挑戰在于在整個壓測過程中性能曲線要求是絕對平滑的,曲線上的波動幅度不能超過2%,這對于傳統數據庫來說都是一件困難的事情,因為這要求對于所有后臺任務的精細控制,不能由于某個后臺任務的資源過度使用導致前臺請求的阻塞積壓。而對于OceanBase而言,事情變得更為困難,因為OceanBase的存儲引擎是基于LSM  Tree的,在LSM  Tree要定期執行compaction操作。Compaction是個非常重的后臺操作,會占用大量CPU和磁盤IO資源,這對前臺的用戶查詢和寫入天然就會造成影響。我們做了一些優化,來平滑后臺任務對性能的影響,從最終的測試結果來看,性能曲線在整個8小時壓測過程中的抖動小于0.5%。

      ★ 分層轉儲

      在LSMTree中,數據首先被寫入內存中的MemTable,在一定時候為了釋放內存,MemTable中的數據需要與磁盤中的SSTable進行合并,這個過程被稱為compaction。在很多基于LSM   Tree的存儲系統中,為了解決寫入的性能問題,通常會將SSTable分為多層,當一層的SSTable個數或者大小達到某個閾值時,合并入下一層SSTable。多層SSTable解決了寫入的問題,但是SSTable的個數過多,會極大拖慢查詢的性能。OceanBase同樣借鑒了分層的思路,但同時使用了更加靈活的compaction策略,確保SSTable總數不會太多,從而在讀取和寫入性能之間做了更好的平衡。

      ★ 資源隔離

      Compaction等后臺任務需要消耗大量的服務器資源,為了減少后臺任務對用戶查詢和寫入的影響,我們在CPU、內存、磁盤IO和網絡IO四個方面對前后臺任務做了資源隔離。在CPU方面,我們將后臺任務和用戶請求分為不同的線程池,并按照CPU親和性做了隔離。在內存方面,對前后臺請求做了不同的內存管理。在磁盤IO方面,我們控制后臺任務IO請求的IOPS,使用deadline算法進行流控。在網絡IO方面,我們將后臺任務RPC和用戶請求RPC分為不同隊列,并對后臺任務RPC的帶寬使用進行流控。

      ★存儲CPU占用

      TPC-C基準測試主要考察整體性能tpmC,很多人也會關注單核的tpmC。然而,這個指標只有在相同架構下才有意義。對于存儲模塊的CPU占用,有如下三點:

      1. 對于集中式架構,除了數據庫使用CPU之外,專用存儲設備也需要使用CPU。例如,第二名Oracle  3000多萬tpmC的測試中,數據庫使用了108顆T3SPARC處理器,共有1728個物理核心和13824個執行線程,同時存儲設備使用的是Intel服務器作為機頭,總共使用了97臺服務器,194顆Intel  X5670 CPU,2328個物理核心。

      2. 集中式數據庫使用高可靠硬件,只需要存儲一個副本,而OceanBase通過軟件層面容錯,雖然硬件成本更低但需要兩個數據副本和三個日志副本,維護多個副本需要耗費大量CPU;

      3. OceanBase在TPC-C測試和生產系統中都打開了在線壓縮,進一步增加了CPU使用;

      因此,簡單地對比OceanBase和Oracle的CPU核是不科學的,還需要算上共享存儲設備的CPU核,以及OceanBase存儲多副本和在線壓縮帶來的CPU開銷。TPC-C推薦的方案是不關注具體的軟件架構和硬件架構,關注硬件總體成本。在OceanBase的測試中,硬件成本只占整體成本的18%左右,只考慮硬件的性價比大幅優于集中式數據庫。

      后續發展

      OceanBase的優勢在于采用分布式架構,硬件成本更低,可用性更好且能夠做到線性擴展,但是,OceanBase單機的性能離Oracle、DB2還有不小的差距,后續需要重點優化單機存儲性能。另外,OceanBase的定位是在同一套引擎同時支持OLTP業務和OLAP業務,而目前OceanBase的OLAP處理能力還不如Oracle,后續需要加強存儲模塊對大查詢的處理能力,支持將OLAP算子下壓到存儲層甚至在壓縮后的數據上直接做OLAP計算。

      雷鋒網

      阿里核心技術成員解讀自研數據庫 OceanBase

      分享:
      相關文章
      當月熱門文章
      最新文章
      請填寫申請人資料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: 穿梭之城| 求安慰少年电视剧| 扫黑风暴电视剧全集在线观看| 《人妻初次按摩忍不住| 东京复仇者第二部| 王保长新篇第一部| 爸爸播种在美国| 最后的较量电视剧 | 电影需要爸爸播种子电影在线观看| 再生侠在线观看完整版免费| 东方红的简谱| 佛说阿弥陀经唱诵| 增城市| 三门峡金燕| 聊斋奇谭2之霸王花| 法国满天星《贵夫人》完整版| 巴萨战胜曼联| 高清《女机械人》| 交换上司的秘书| 驾驶员找工作| 韩版恶作剧之吻2| 多人游戏韩国电影| 妄想学生会14| 四月一日灵异事件簿·继动漫| 咆哮电影| 日本电影漂亮的售楼小姐| 天体走秀| 苏州市民在车站向胡友平献花| 麦乐迪马克思女超人在线观看完整免费高清原声满天星百 | 唐朝诡事录第二季免费观看| 武直15| 《妻子8免费高清HD》| 当我飞奔向你电视剧免费看| 法国航空4电视剧| 口香糖女孩乳液3无限爱心版| 谢教授短剧全集免费播放| 另一个贝内特家的姐妹| 女人电影| 爸爸的种子电影| 狂野的爱| 海扁王2迅雷下载| 女房东的滋味| 免费观看已满十八岁电视剧悠悠| 飞影铠甲| 美国式的家庭忌讳1—| 湖南男子捅杀3人| 上课时胸罩不小心掉下来的事| 沙漠行动满天星版免费观看在线 | 结衣波多野下载| 足球小将粤语版全集| 双鱼陨石在线观看| 电影不能错过的只有你免费观看| 《大明王朝1566》电视剧| 大奉打更人30集免费观看| 《公的浮之手中字》电影| 斗罗大陆2绝世唐门39集免费观看| 惊变一百天| 图书馆女友1-6集观看地址 | 非诚勿扰 小德| 法国少女农场高清在线看中文| 高清《女生宿舍2》| 笔仙咒怨| 大婶爱上儿子的同学电影名字| 莫比乌斯韩国百度影音| 木子凛子电影免费观看 | 钻石王老五的爱情| 快把我哥带走| 潘金莲1-5| 亲爱的老师HD中字免费| 双枪李向阳| 惊变电影未删减版免费观看| 我女友的妈妈韩国| 传说中的七公主全集| 抗日奇侠演员表| 法国电影私人航空免费观看| 少林寺传奇4| 非洲黑人噼里啪啦视频免费看… | 武神主宰在线观看全集免费播放| 我的朋友他的妻子电影| 《渔夫荒野史》在线观看| 大马帮电视剧免费观看| 电影我有钱了在线观看完整视频| 午夜寂寞影院安卓香港版| 权志龙无限挑战2013| 潘石屹是谁| 赤热电视剧在线观看| 烽火儿女情| 惊天营救3免费观看完整| 香醇的绣感国语版在线观看免费| 美女战争| 《青河绝恋》电视剧| 《被下药强辱的妻子》在线| 明日如歌 电视剧| 那曲在线| 奇妙小森林| 老电影武当| 人猿泰山hr版 在线播| 岳飞传117集全免费听| k动漫免费观看第二季| 康体水疗1978原版电影| 福星高照电影| 《跛豪》粤语完整版在线看| 《换脸》电影在线观看| 舞乐传奇演员表| 深宅1927 电视剧| 妻子被部长欺负免费观看电视剧 | 盖世俊杰在线观看| 哇嘎电影大全免费看| 机械姬迅雷下载| 乔西的虎与鱼| 动漫大道| 韩国片黄18以上在线观看| 三年成全免费看高清影视大全| 遇见你之前| 不是闹着玩的第二部| 中字儿媳妇在线观看| 沧元图60集在线观看| 《荆棘》| 被丈夫的下属占有的身体| 扫黑风暴全集免费观看完整版| 韩国电影修车艳遇| 香港情色电影| 剩男相亲记| 夜店诡谈迅雷下载| 满天星翻拍《无法无天》| 蜜桃成熟时3d| 完美搭档韩国电影在线观看| 孤注一掷在线观看免费高清王传君| 韩剧《我的女友》免费观看| 荣誉守则在线观看免费版| 好先生23| 泽连斯基言论惹怒美国民众| 《花子倔强驱魔师》在线观看免费| 战姬绝唱| 猎罪图鉴免费观看完整版高清| 菲律宾《房产销售》| 《鸣龙少年》电视剧| \私人女人监狱免费看| 冷月孤星剑主题曲| 葫芦丝名曲月光下的凤尾竹| 老色哥| 新版潘金莲电影完整视频播放| 被窝里的爱| 奇幻贵公子第二季| 樱桃红袖珍妈妈全集| 解说原片白峰美羽电影| 唐人街探案3电影完整版免费 | 陷入我们的热恋| 屋塔房王世子国语| 巜人妻初次按摩忍不住| 隐私欲望| 公之浮手中字15| 明星新娘发型图片| 五一节后要上6天班| 秦雪梅哭灵| 碧血盐枭粤语| 维修师傅的艳遇BD电影| 机动奥特曼第一季| 鱼夫荒情电影免费观看台湾| 现代战争沙漠风暴| 李丽珍爱的精灵| 《美国灭火宝贝2》演员表介绍| 高清《妻子的新世界》电视剧| xl司令第一季全集免费观看动漫| 神探夏洛克 第四季| 成仁多情影视| 色拉拉| 《我的老师中字ID》免费观看| 迷人的岳母在线| 农村小杨要努力| 电幻国度电影在线观看免费| 正在播放: JUL-945 在没有丈夫的平日里,我被打工归来的无与伦比的岳父强奸,直 | 半把剪刀| 八戒八戒七| 婚姻攻略全集免费观看| 吴雪雯《性迷宫》在线| 聊斋艳谭之艳魔大战| 高清《囚禁时间》电影免费观看全集 | 千金复仇:仇人覆灭全集免费| 天美影院在线观看免费观看电视剧大全 | 高清《密室大逃脱第四季》综艺| 林青霞东方不败国语| 战狼12欧式少女全部视频| 西铁学校操场鬼火事件| 渴望城市电视剧| 放学后的优等生| 丁度巴拉斯《魔力镜子》| 韩国三级片男按摩师| 青梅竹马是消防员第一部| 海棠经雨胭脂透电视剧免费观看| 我心蔚蓝| 千言万语未删减版完整版在线观看| overflew樱花动漫第一季全集| 叶罗丽第十一季在线观看| 周星驰赌片| 疯狂72小时百度影音| 天启免费观看完整版| 双女任务在线观看| 禁忌的边界线| 美国式家庭3| 占有姜西| 《性的暴行》无删减版电影 | 高清生命树未删减| 铜铜钢铿锵锵锵观看| 《恋爱女子宿舍》| 蓝帽子隐身完整版在线观看| 守护甜心第三季| 那曲在线| 血洗金三角| 狙击精英之纳米危机| overflew| 偷换人生真假千金短剧| 黑色的眼泪麻生香织| 冰天雪地| 宫锁玉心| 异次元骇客电影| 杰西简《荣誉守则》电影免费观看 | 激战丛林之人袁泰山免费| 女神异闻录在线观看| 本乡爱的所有电影 | 决战紫禁之巅在线观看完整版| 军事不当| 贞观长歌高清| 四少妇的按摩记| 战略大作战| 铠甲勇士铠传| 美剧黑帆第一季未删减版| 哈利波特6免费观看| 高清《堕落》| 金银梅5普通话国语版| 大神同学想被吃掉 未增删| 还珠格格3全集| 色戒电影未测减除版| 军刺电视剧全集在线观看| 高清《厨房》韩剧视频在线观看| 《犯罪都市6》电影| 厨房与公妇伦理| 花子vs驱魔无删减版立即播放| 白袜子俱乐部| 比利海灵顿| 《薄冰》电视剧| 极品家丁电视剧在线观看免费| 日本JiZZ| 特朗普在炸鸡店为全场买单| 美国银瓶梅| 曼谷花魁| 平凡的世界 电视剧| 李晨早年上相亲节目| 小日子全部免费播放电视剧| 娃娃脸3小女孩| 黑土火影片子在线观看| 年轻的女学生味道HD| 不能久坐是多长时间| 鬼怪第三集| 电影《出行的目的》的剧情简介| 年轻的母亲4韩剧免费中文版| 丑女无敌第1季全集| 茂名市| 电影叶问4| 美容室的待遇5hd中文| 灵域第四季| 一出好戏电影完整版免费观看| 我女朋友的新妈妈双字ID免费| 佐佐木希av作品| 好事多磨19楼| xl司令的动漫全集免费观看| 青木玄德| 哈哈哈哈哈 第六季| 世界欠我一个初恋在线播放| 摩登原始人英语| 摇啊笑啊桥2018| 王者清风剧情介绍| 楼上女邻居电视剧全集| 速度与激情11| 男人和女人愁愁愁电视剧在线观op | 橘梨纱 快播| 人猿泰山意大利1995时长1小时34分| 王君安越剧名段欣赏| 美姐妹牙医在线观看| 大陆剧以法之名在线观看| 《隔山有眼3:起源》电影| 夏家三千金60| 除却巫山| 《妈咪快跑爹地》续集| 杀敌爆功力 我成武神小说 | 卖房子的韩国电影| 《欢乐家长群》全集播放| 百变小樱魔术卡中文| 贝拉1980在线观看| 唐探1900免费观看电影完整版| 站着再来一次第50集电视剧免费播放 | 哇嘎视频免费观看完整版| 少林寺传奇4| 和丈夫的部下玩火的夜晚HD无字_经典电影_手机完整版在线观看_纤纤影院 | 1986娃娃脸4| 目光所及免费观看电视剧| 白峰美羽在线电影| 建党伟业在线观看完整版| 韩国电影需要爸爸播种| 黑帮大佬365天| 出轨的味道| 《overflower》第一季动漫| 夫妻的成长日记| HD 游樣| 我女儿的朋友6在完整有限中字| 陈德修的女朋友| 恰同学少年高清| 致埃文汉森| 掌中之物未删减完整版| 上海滩主题曲简谱| 安娜1980满天星英文| 冲上云霄2大结局是什么| 媛崽好困原视频完整版| 武状元苏乞儿之天降神谕| 电影热带雨| 当蜜桃成熟全集高清| 解密在线观看免费高清完整版| 爱情公寓二在线观看免费完整版高清| 淄博一夜情| 妈妈的职业5完整版结局在线看免费| 电影《爱我几何》无删减完整版| 啄木鸟《荣誉守则》2013| 活佛济公下载| 莫妮卡《爱我几何》电影免费无删减| 璀璨人生全集下载| 公与3个媳HD| 流星蝴蝶剑联网| 花与蛇3 影音| 神池县| 孤注一掷电视剧免费观看完整版国语| 爱唯侦察dvd免费观看| 小胖俞涛回应九转大肠梗| 三年大片在线观看免费观看国语完整版 | 高清《以猫饲爱》电视剧| 盛唐风流电影免费观看国语版 | 满月的诱惑| 仙逆5200 59| 男模泳装下凸图| 别叫我情圣免费版完整版观看| 军事不当行为| 1980版《小女孩们》| 少女的绣感| 应聘者成绩47改为85| 木下凛凛子的一级电影 | 周深成跨年最忙的人| 一起吃拉面吧韩国电影完整版| 剑奴电影免费完整版在线观看| 太古至尊两处闲愁| 爱人免费收看| 战神3中文版下载| 少年派2全集免费观看完整版高清| 洪真英电影完整版免费观看 | 中餐厅7| 今日的霸道股评| 电视剧桃花映江山免费观看| 四川40岁阿姨免费观看电视剧| 需要爸爸播种子手机在线播放 | 哇嘎电影免费观看高清国语 | 《美人为馅》电视剧| 错位关系c1v1一块五花肉购买| 朝鲜世界杯| 韩剧女友的母亲双字ID | 八爪椅子电影免费观看完整版| 地狱解剖 电影| 待嫁老爸 电视剧| 我是刑警全部演员表| 平凡的浮生| 本能在线观看| 袁阔成三国演义评书下载| 人民日报评电视收费乱象| 热血街区极恶王x| melody 女超人在线| 游泳教练| 卷土重来电影| 产妇大出血院长深夜跨院摇人| 剑在弦上全集播放| 女版战狼免费观看三人剧情| 猫和老鼠东北方言版| 坎贝尔《无憾》播放| 法证先锋5电视剧全集在线观看| 三年中国中文高清在线观看| 锡剧珍珠塔全集| 武松之蒋玲玲最新更新| 汉末皇叔| 21世纪爱情指南在线免费看| 太平公主秘史分集介绍| 中文字Dl幕岳在线观看| 迷情的危险| 外卖特邀员| 童梦失魂夜| 酒店3-15集| 隐身的名字| 甜心派电视剧泰剧无删减在线观看| 南极大冒险在线观看| 陇西县| 这个历史挺靠谱第二季| 璀璨人生一共多少集| 《公主骑士是蛮族的新娘》| 安徽民间小调憨子| 国庆大阅兵2009| 满天星《乌托邦》| 电视连续剧甄嬛传免费高清观看| 特罗佩斯的姑娘们| 拜托了老师全集| 桃园市| 韩剧四百年的梦| 我推的孩子动漫| 爱唯侦察在线观着| 母亲韩剧电影国语版| 狂飙免费观看完整电视剧| 出差遇到前任| 第五元素| 女超人的危机未删减版在线观麦乐迪| 电视剧奇志| 《需要爸爸播种子》第1集免费在线观看 - 道德 - 短剧在线网 | 铿钢锵锵锵锵锵好多少视频| 炫迪传奇全集播放| 星克莱尔总统夫人免费看 | 星克莱尔《妄想症》| 恋恋不忘的我们综艺免费观看| 《女律师替夫还债》电影完整版在线 | 杀手记忆 第一季电视剧| 《完美邻居》电影免费观看| 的士女孩1979年| 星克莱尔《化妆舞会》| 巜出轨上司的人妻2中字| 长治县| 泰剧妒海主题曲| 龙门县| 失乐园韩国| 男女愁愁愁视频在线观看| 楼下的租客| 天美影院在线观看免费观看电视剧大全 | 腹黑总裁:只对我温柔全集免费| 漂亮妈妈中字开头字| 美容院的待遇服务3| 青春期集成曲电视剧| 大闹天宫| 分界线电视剧全集免费观看完整版| 《哪吒2》免费完整版在线| 喋血街头在线观看| 女员工电影完整版高清在线观看| 赤狐书生 电影| 白峰电影免费播放手机观看| 护心电视剧免费观看完整版| 白峰电影在线观看550| 钻石王牌 第四季电视剧| 枝江市| 禁室培欲3| 金银悔1-5普通话第22集| 太空部队第二季| ujizz在线播放| 樱桃嘴与大鼻子| 女销售员的销售秘密2| 爱的释放电影完整版在线观看 | 禁忌5在线观看电视剧完整版免费| 底线 电视剧| 酒店激战 第1-5集 免费观看李丽珍| 《隋唐英雄传》| 《卖房子的女销售》完整版| 小凉宫春日的忧郁| 妈妈的味道中文HD免费| 电视剧白发魔女| 韩路游记| 食为奴大结局| 人世间电视剧在线观看完整版免费| 阿部夏树的电影| 不完美的受害者电视剧| 吸血贵族5满天星电影免费观看高清| 电影黄河绝恋| 沙坪坝区| 林正英100部鬼片免费| 大神同学想吃掉我接档樱花动漫| 女子亲卫队完整免费高清原声满天星| 韩剧爱上女主播| 女版捉鬼敢死队法国空姐 | 灭火宝贝电影| 李晨早年上相亲节目 | 《美妙的爱情》| 前妻的救赎短剧在线观看| 铁流1949| 白峰ミウ女教师无删减在线播放| 电影网站在线| 电影《村枝》免费观看全集| 推荐好看的电视剧| 激情网在线视频| 云水怒电视剧全集| 千金肉奴隷1985未删减版| 电影牙医姐妹在线观看| 尸控警戒在线完整版免费观看 | 女婿回乡全集免费看| 酒店服务生第一季第一集在线观看 | 丰满的继牳小早川怜子| 博物馆奇妙夜2在线观看| 《私人航空》| 无颜之月免费观看完整版在线全| 镇江市| 韩国电影《美发店的秘密| 怪物转生在线观看| 相爱概率论泰剧免费观看| 激战丛林| 女皇陵下的风流娘们| 绝世狂萧短剧免费观看全集| 神之一手| 现在就出发3综艺免费观看完整版| 日本混血大学生精油按摩免费看| 赤裸羔羊| 高压监狱电影在线观看完整免费高清原声满天星悬疑 | 电视剧《仁心俱乐部》完整版| 男女一起愁愁愁的视频| 《香港奇案之吸血贵利王》电影| 麦乐迪女超人在线观看完整免费高清原声满天星百 | 修罗武神动漫全集免费观看| 《激战丛林》完整版免费| 农行买断| 林中小屋2百度影音| 古惑仔人在江湖| 午夜曼哈顿| 小密桃5| 女生腹泻未在意5天后心脏停跳| 《丰满的女学生3| 《我们是坏蛋理发师》| overflower动漫第一季| 小姬无人宠| 21世纪爱情指南在线播放| 中文字幕乳授乳奶水电影小说| 大决战电视剧| 金瓶艳谈| 汉城世界杯主题曲| 斗罗大陆电视剧全集免费观看完整版| 逆仙在线观看免费观看完整版| xl司令第一季无马赛第34集 | 野花高清在线观看免费3中文| 幽灵射手电影免费观看完整版| 那山那海电视剧在线观看| xl司令第一季无马赛第34集| 艾薇儿girl friend| 《小小诊所》| 前进巴格达| 小汤圆正式出院| 电影《赴汤蹈火》免费观看| 动画片小猪佩奇全集播放| 黑暗荣耀2免费观看完整版| 娃娃脸完整观看| 两个母亲ID两个妈妈| 孤独摇滚动漫在线观看免费| 五夜天| 《情感价值》| 和部长一起出差| 土地公土地婆 电视剧| 春雨电视剧在线观看全集免费| 《第一次经历秘密》刘智贤| 随时随地都能干的小镇I| 精绝古城免费完整版| 黑白配中文在线观看免费高清电影 | 爱我几何删减版在线观看高清 | 《地球上的星星2》| 按摩乳房的电影| 远离人群的地方| 有见一帘幽梦| 三佳购物网上商城| 色降ii万里驱魔| 《激战丛林》电影在线播放| 暖春电影高清| HD版《激战丛林》类似的电影| 长相思第二季免费播放全集| 男生女生一起愁愁愁电视剧全集在现观看 | 西部通缉令未删减完整| 卡贾基 豆瓣| 张国强电影| 赵本山相亲3高清| 韩国演艺圈悲惨1-33集| 天龙特攻队国语| 再见亚特兰蒂斯| 《义子侵犯》在线观看| 我的姐姐免费在线观看完整版资源| 渡江侦察记电影| 魔兽在线观看| 猎情武阎| 我的战鹰绕着宝岛飞原唱| 上位2电影| 驱魔师vs花子| 搜神记电视剧| 今天明天动画片| 万里江山入我怀免费观看| 《姐妹新娘》全集观看| 一起愁愁电视剧30集全免费看 | 菲律宾电影维修工人工的艳遇 | 朝鲜总统金胖子名字叫什么| 空姐前规则高清观看韩国| 电影《补课》免费观看中文版| 黄色仓库网址| 台风少年行| 沙坪坝区| writeas湿透了| 无间电视剧在线观看免费版完整| 误杀3 电影| 徐少强版《金悔瓶》2演员阵容是谁扮| 肉体的恶魔| 私人助理2法国版免费观看 | 韩惠珍演过的满天星三部曲| 天地无伦百度影音| 以爱为营白鹿主演36集在线观看| 深圳空姐艳照门| 奇妙儿媳妇苏玥是谁| 皇家奶娘在线观看,美丽的姑娘观看在| 想成为主人公| 视觉动物歌词| 忍者龟1| 唐朝诡事录第二季免费观看| 电影画皮| 魔镜号| 暴躁老妈和二姨| 痰多最怕一味药| 撞入他的热恋电视剧免费观看| 幸福的黄手帕完整版| 搞笑一家人韩国版全集| 私人航空电影完整版免费观看| 步步沉溺短剧全集免费观看| 小沈阳2012北京春晚| 还珠格格新| 双女任务电影在线观看| 朝阳沟封号| 时寒冰说经济大棋局我们怎么办| 《维修工》王李丹妮电影| 白蛇传奇全集| 授业到天亮chu| 向爸爸播种电影的英文| 商务旅行的女老板戴的帽子2019年完整版在线观 | 刺客伍六七玄武国篇免费观看| 来电奇缘全集| 控制女老板的遥控器| 刺客聂隐娘| 某科学超电磁炮s| 不满继拇上午HD| 家庭教师视频下载| 国家机密电视剧| 掌中之物 无删减完整版下载| 声生不息宝岛季12期完整版| 烽火儿女情| 杨春霞乱云飞| 乡村爱情13部全集免费刘能| 买房子的女销售电影| 幸福的眼泪电视剧| 朝云暮雨完整版免费观看电影| 壮志凌云2010法国满天星 | 熊出没之猎鹰熊岛完整版在线观看| 吴健农民伯伯下乡2中文配音免费观看 | 卿卿日常在线观看免费高清| 天下粮田| 韩剧公司下属的老婆| 演员李桓| 狂飙28集| 我的女友妈妈韩字的ID是谁电影 | 爸爸需要播种在线观看免费高清完整| 巴巴爸爸中文版| 官方通报快递布洛芬变衣服| 半夜影院村妓| 爱在回响| 《恶魔之吻》日剧免费观看| 白上之黑全集免费观看电影| 黄金瞳在线观看| 功夫梦韩雯雯| 夸克满天星在线播放国语版| 高清《蒙特利尔,我的美人》电影 | 歼灭天际线的日韩专辑在哪| 血滴子电影下载| 德云社相声春晚| 白嫖者联盟电影高清在| 巾帼枭雄2| 徐锦江吃叶子楣乳| 男按摩师电影在线观看| 盖世俊杰在线观看| 相亲遇见美女| 《代替满足妻子》电影| 成化十四年电视剧免费观看| 高清《红字》| 坎贝奇《无憾》在线观看| 红色假期黑色婚礼| 神话片头曲| 二阶堂完整版在线观看| 电视剧新猛龙过江全部演员表| 特战荣耀免费观看全集| 《修车艳遇》在线观看| 《开始捉迷藏 第二季》未删减| 深海狂鲨高清| 明星大侦探第五季在线观看| 美妙的旋律| 煎饼侠 电影| 一年恋一天| 强奸醉酒美女电影网| 调查韩国总统夫人的反腐官员身亡| 玩弄三个高大的熟妇赶尸艳谈| 酒店1-80集全免费观看央视网| 禁忌2电影在线观看| 中国女警的一级播放| 渔夫荒| 声生不息宝岛季免费观看完整版| 精灵梦叶罗丽第十季免费观看完整版 | 波野多结衣种子下载| 女版战狼10高清免费看| 何以为家| 老公说想放在里面睡觉| 电影《渔夫的妻子》赛纶| 顶楼第三季| 你的欲梦裸身在线播放| 做aj的电视剧大全香港| 恶魔少爷别吻我第二季免费观看全集| 黑白禁区在线观看| 山河明月全集在线播放| 特殊美容院的待遇韩国| 致命速递2| 姚二嘎吸毒| 移情别恋电影在线观看| 雨宫真贵| 速度与激情1-6| 玛丽和乔治英剧在线观看| 特罗佩斯的姑娘们| 快乐再出发免费观看| 唐璜的回忆| 法国《少女农场》高清| 外出2014| 总裁的独家私宠全集免费| 特殊治疗室| 杨思敏金梅瓶1一5集演员表| 王凯主演的电视剧大全(全部)| 信宜市| 幼幼在线播放| 美丽的小密逃9| 《手遮天》| 我的女游泳教练| 《法国空姐三部曲》| 《咒术回战 第三季》| 和讨厌的部长出差日剧| 万湖会议| 女人被躁到高潮嗷嗷叫69| 兄弟的妈妈双字ID怎么设置| 赵露思珠帘玉幕电视剧免费观看| 埃及猫原版动画| 行尸走肉第七季全集| 大学生按摩推油3| 关西无极刀高清| 我们结婚了中国特辑版 | 逆天至尊在线观看西瓜| 《卖保险套的女销售》完整版| 电视剧末路1997| 偏偏喜欢你 电视剧| 玉女心经之官人我要苏三演员表| 母亲爱上儿子同学的美剧| 致命弯道5完整版在线观看视频| 卡萨布兰卡电影| 《美容院特殊待遇》电影| 《初尝禁果》电影| 王拓好恶心| 我们的宇宙泰剧免费观看| 海之声如如免费完整版动漫| 百日的郎君| 飞越情海| JUL945老公不在的平日、被自外工作回家的絶伦公公天天侵犯到疯狂高潮。三舩美 | 斯凯拉沃克斯的满天星| 宇宙战舰大和号复活| over flow动漫在线观看全 | 明月照我心电视剧免费观看| 三级片男按摩师| 千人斩在线观看| 绝命交错| 幸福三重奏第二季| 女子特工队满天星高清播放| 天若有情之烽火佳人| 武汉三镇主帅考虑执教国足| 战狼电视剧| 女版战狼6| 星客来尔迷宫| 春暖 迅雷| 隋唐英雄传第四部| 电影法国空乘| 贝拉1980满天星版| 陈情令入围全球50大电视剧| 高清《我的娜塔莎》电视剧| 猎狐行动在线高清免费观看完整版| 美国式禁忌俄罗斯| 阿尔卑斯山在哪| 国产白嫩漂亮美女在线观看| 大明风华未删减完整版| 快递员的美味人生| 历史的天空2| 半是蜜糖半是伤电视剧免费观看| 泰山电影完整版播放| melody女超人在线观看| 电锯人二免费观看高清| 电视剧雪豹| 魔女宅急便电影| 戈壁母亲全集免费观看| 法国监狱(法国)电影观看| 重庆公共农村频道| 爷爷为我打月饼歌谱| 我儿是朵奇葩| 小辣椒3电影免费播放| 毒医嫡女:下毒医术超精通全集免费| 亡者之谜泰剧在线观看泰剧| 我有爱人了韩剧免费观看| 《女子护卫队》在线播放免费观看 | 拆弹专家电影| 色即是空2迅雷下载| 急诊护士在线观看| 何处寻真相电影| 一次邂逅| 电视剧免费播放| 战狼四| 金刚大战哥斯拉在线| 刘易斯vs霍利菲尔德| 《阿尔法》| 阿部夏树电影免费观看正片| 高清《黎明之前》| 平凡的世界免费电视剧| 插曲的痛60全集| 神医娇妻:总裁别碰短剧全集| 鹿鼎记陈小春版演员表| 凤姐qq| 牙医赤子板栗免费| 沙漠行动| 亮剑3gp下载| 启动原始码| 美丽小蜜桃5免费播放全集电视剧| 我在他乡挺好的更新时间| 电视剧《寻路》| 公之浮之手中字5HD中字怎么读 | 伦理片女儿要爸爸播种| 直播:北京卫视跨年晚会| 名侦探柯南714| 郝板栗《千金小姐》| 家产争夺:我是继承人短剧全集| 古宝奇缘电影| 第九章不等式与不等式组| 韩剧《爱妾》免费观看全集| 旱魃之十万火急| 大唐重案组2025免费观看| 大牛影库战狼6在线观看| 两小无猜:青梅竹马全集免费| 邪魔缠身的约纳斯小姐| 进错豪门嫁对郎短剧全集免费观看| 房屋销售员在线观看| 塔娜利韩国电影| 仙逆112集完整版高清4k| 今夜无人入睡免费观看韩国| 凪主演电影修空调免费观看| 中国远征军电影| 鬼客韩剧在线播放免费观看全集| 《和讨厌的部长出差》| 詹伯a奥特曼全集| 十五岁半|