Yandex 發布了其 DBMS «YDB» 的源代碼

最近有消息說 Yandex 發布了其 DBMS 的源代碼 «YDB»,它實現了對 SQL 方言和 ACID 事務的支持。

數據庫管理系統 從頭開始構建,最初開發時著眼於確保容錯、自動故障轉移和可擴展性。 需要注意的是,Yandex 推出了工作中的 YDB 集群,包括超過 10 個節點,它們存儲數百 PB 的數據,每秒服務數百萬個分佈式事務。

YDB的主要創新

YDB 的突出特點是 將關係數據模型與 YQL 表一起使用(YDB Query Language)用於查詢和定義數據模式,即 一種適用於大型分佈式數據庫的 SQL 方言. 創建存儲模式時,支持樹狀表分組,類似於文件系統的目錄。 提供了一個 API 用於處理 JSON 格式的數據。

創建容錯配置的能力 當磁盤、節點、機架甚至單個數據中心出現故障時,它們仍能繼續運行。 YDB 支持跨三個可用區的同步部署和復制,同時在其中一個可用區發生故障時保持集群的狀態。

數據訪問支持 使用掃描查詢,旨在對數據庫執行臨時分析查詢,以只讀模式執行並返回 grpc 流。

此外,它還脫穎而出 使用 PDisk 組件將數據直接存儲在塊設備上 本機和 VDisk 層。 除了 VDisk,DSProxy 還會運行,它會分析磁盤的可用性和性能,以便在檢測到問題時將其排除。

其他特性 脫穎而出:

  • 一種靈活的架構,允許您在 YDB 之上構建各種服務,直至虛擬塊設備和持久隊列。 適用於不同類型的工作負載:OLTP 和 OLAP(分析查詢)。
  • 支持多用戶(多租戶)和無服務器配置。
  • 能夠對客戶端進行身份驗證。 用戶可以在公共共享基礎設施上創建自己的虛擬集群和數據庫,根據請求數量和數據大小考慮資源消耗,或者通過租用/保留某些計算資源和存儲空間。
  • 可以調整記錄的使用壽命以自動刪除過時的數據。
  • 與 DBMS 交互和提交請求是使用命令行界面、集成 Web 界面或 YDB SDK 完成的,它為 C++、C# (.NET)、Go、Java、Node.js、PHP 和 Python 提供庫。
  • 以最小的延遲自動從故障中恢復到應用程序,並在存儲數據時自動保持指定的冗餘。
  • 在主鍵上自動創建索引並能夠定義二級索引以提高任意列訪問的效率。
  • 水平可擴展性。 隨著存儲數據的負載和大小的增長,只需連接新節點即可擴展集群。 計算層和存儲層是分開的,允許您分別擴展計算和存儲。 DBMS 本身監控數據和負載的均勻分佈,同時考慮到可用的硬件資源。 可以實施覆蓋世界不同地區的多個數據中心的地理分佈配置。
  • 在處理跨多個節點和表的查詢時支持強一致性模型和 ACID 事務。 為了提高性能,您可以選擇性地禁用一致性檢查。
  • 自動數據複製,當大小或負載增加時自動分區(分區,分片),以及節點之間的自動負載和數據平衡。

最後, 需要注意的是,YDB 是在 Yandex 項目中使用的, 該代碼是用 C/C++ 編寫的,並在 Apache 2.0 許可下分發,您可以查看源代碼以及有關它的更多詳細信息 在下面的鏈接.


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。