日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

聊聊分布式 SQL 数据库Doris(二)

發布時間:2023/11/23 数据库 48 coder
生活随笔 收集整理的這篇文章主要介紹了 聊聊分布式 SQL 数据库Doris(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Doris中,Leader節點與非Leader節點和Observer節點之間的元數據高可用和一致性,是通過bdbje(全稱:Oracle Berkeley DB Java Edition)的一致性和高可用實現的。

元數據與同步流程

元數據主要存儲四類數據:

  1. 用戶數據信息. 包括數據庫, 表的schema, 分片信息等
  2. 各類作業信息. 如導入作業, clone作業, schemaChange作業等。
  3. 用戶及權限信息.
  4. 集群及節點信息.

元數據同步圖:

元數據流轉如下:

  1. leader寫入元數據

    寫操作在修改leader的內存后,序列化為log,按照key-value格式寫入到bdbje. 其中 key 為連續的整型數字,全局唯一、遞增,作為 log id;value 即為序列化后的操作日志,由2部分組成。OperationType為操作類型,如建庫操作、建表操作等。Writable Entity為序列化后的操作具體內容,通過反序列化該值,可以從鏡像上回放元數據操作。

  2. 集群節點同步元數據

    日志寫入bdbje后,bdbje會根據策略(寫多數/全寫), 將日志復制到FE其他的follower節點。FE節點通過對bdbje中元數據日志的reply, 修改自身的元數據內存鏡像,完成與leader節點的元數據同步。

  3. 元數據checkpoint持久化

    leader 節點的日志條數達到閾值(默認 10w 條)并且滿足checkpoint線程執行周期(默認六十秒)。checkpoint 會讀取已有的 image 文件,和其之后的日志,重新在內存中回放出一份新的元數據鏡像副本。然后將該副本寫入到磁盤,形成一個新的 image。之所以是重新生成一份鏡像副本,而不是將已有鏡像寫成 image,主要是考慮寫 image 加讀鎖期間,會阻塞寫操作。所以每次 checkpoint 會占用雙倍內存空間。

  4. image 文件生成后,leader 節點會通知其他 non-leader 節點新的 image 已生成。non-leader 主動通過 http 拉取最新的 image 文件,來更換本地的舊文件.

  5. bdbje 中的日志,在 image 做完后,會定期刪除舊的日志

  6. 刪除舊的磁盤元數據鏡像

總結

Leader節點修改內存元數據后,元數據日志首先寫入bdbje,達到閾值后,bdbje形成一個新的DB,然后將新的DB內的日志,在舊的image上回放,生成一個新的image,然后刪除bdbje中已經被集群節點全部同步的舊的元數據日志。這樣周而復始。保證bdbje中的數據不會無限制得增長,也保證了image中始終保存著較新的元數據。同時,其他非leader節點,也訪問bdbje,將bdbje中的新寫入的元數據日志,在自己內存中的元數據上回放。

Doris的元數據存儲是 memory -> bdbje -> checkpoint(image)。

為什么同時需要 bdbje 和 image 鏡像呢?

  • 高性能和實時查詢: bdbje 作為嵌入式數據庫提供了高性能的元數據訪問,適用于實時的查詢和操作。它通常保存在內存中,可以快速地提供元數據信息。

  • 數據恢復和持久性: image 鏡像則用于實現元數據的持久化,以便在系統重啟或發生故障時,能夠使用鏡像還原元數據。這有助于確保系統的可靠性。

參考:

Apache Doris元數據管理

元數據設計文檔

元數據運維

總結

以上是生活随笔為你收集整理的聊聊分布式 SQL 数据库Doris(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。