Yandex開源支持SQL的分佈式DBMS YDB代碼

Yandex 發布了分佈式 YDB DBMS 的源代碼,它實現了對 SQL 方言和 ACID 事務的支持。 DBMS 是從頭開始創建的,最初開發時著眼於確保容錯、發生故障時的自動恢復和可擴展性。 值得注意的是,Yandex 推出了可運行的 YDB 集群,包括超過 10 個節點,存儲數百 PB 數據,每秒服務數百萬分佈式事務。 YDB 用於 Yandex 項目,如 Market、Cloud、Smart Home、Alice、Metrika 和 Auto.ru。 代碼是用 C/C++ 編寫的,並在 Apache 2.0 許可下分發。 為了熟悉和快速啟動,您可以使用現成的 Docker 容器。

項目特色:

  • 將關係數據模型與表一起使用。 YQL(YDB Query Language)用於查詢和定義數據模式,是一種適用於大型分佈式數據庫的 SQL 方言。 創建存儲方案時,支持樹狀表分組,類似於文件系統中的目錄。 提供了一個 API 用於處理 JSON 格式的數據。
    Yandex開源支持SQL的分佈式DBMS YDB代碼
  • 支持使用旨在對數據庫執行分析性臨時查詢的掃描查詢進行數據訪問,以只讀模式執行並返回 grpc 流。
  • 與 DBMS 的交互和發送請求是使用命令行界面、內置 Web 界面或 YDB SDK 進行的,它為 C++、C#(.NET)、Go、Java、Node.js 提供庫, PHP 和 Python。
  • 創建在單個磁盤、節點、機架甚至數據中心發生故障時繼續工作的容錯配置的能力。 YDB 支持跨三個可用性區域的部署和同步複製,同時在其中一個區域發生故障時保持集群的健康。
  • 以最小的應用程序延遲自動從故障中恢復,並在存儲數據時自動保持指定的冗餘。
  • 自動在主鍵上創建索引和定義二級索引的能力,以提高訪問任意列的效率。
  • 橫向可擴展性。 隨著負載和存儲數據大小的增長,可以通過簡單地連接新節點來擴展集群。 計算層和存儲層是分開的,允許單獨擴展計算和存儲。 考慮到可用的硬件資源,DBMS 本身監控數據和負載的均勻分佈。 可以部署覆蓋世界不同地區的多個數據中心的地理分佈式配置。
  • 在處理跨多個節點和表的查詢時支持強一致性模型和 ACID 事務。 為了提高性能,您可以有選擇地禁用一致性控制。
  • 自動數據複製,當大小或負載增加時自動分區(partitioning,sharding),節點間自動負載和數據平衡。
  • 使用本機 PDisk 組件和 VDisk 層將數據直接存儲在塊設備上。 在 VDisk 之上,DSProxy 運行,它分析磁盤的可用性和性能,以便在檢測到問題時排除它們。
  • 一種靈活的架構,允許您在 YDB 之上創建各種服務,直至虛擬塊設備和持久隊列(persistent queue)。 不同類型工作負載、OLTP 和 OLAP(分析查詢)的應用程序適用性。
  • 支持多用戶(多租戶)和無服務器配置。 能夠對客戶端進行身份驗證。 用戶可以在公共共享基礎架構中創建自己的虛擬集群和數據庫,同時考慮請求數量和數據大小級別的資源消耗,或者通過租用/預留某些計算資源和存儲空間。
  • 可以調整記錄的生命週期以自動刪除過時數據。

來源: opennet.ru

添加評論