| 開発者 | ヤンデックス |
|---|---|
| 初回リリース | 2022年4月19日 |
| 安定版リリース | v23.1.26 / 2023年5月16日[1] |
| リポジトリ | github.com/ydb-platform/ydb/ |
| 書かれた | C++ |
| オペレーティング·システム | Linux、macOS |
| ライセンス | Apache ライセンス2.0 |
| Webサイト | ydb.tech |
YDB ( Yet another DataBase ) は、Yandexによって開発され、オープンソーステクノロジとして利用できる分散 SQL データベース管理システム(DBMS)です。
機能性
YDBは、1秒あたり最大数百万件のリクエストという大規模な運用負荷をサポートできる大規模なWebサービスを作成できるテクノロジーです。デフォルトのクエリ言語として、 SQLの厳密に型付けされた 方言[2]であるYDBクエリ言語(YQL)[3]を使用し、ACIDトランザクションをサポートしています。[4]
オープンソース ソフトウェアとして利用できるこの DBMS に最も近い類似品は、YugabyteDBとCockroachDBです。
YDB は、物理ホスト全体のコンピュータ クラスターに自己展開することも、Kubernetes経由で仮想マシンに展開することも、Yandex Cloud のマネージド サービスとして展開することもできます。マネージド サービス オプションでは、サーバーレス コンピューティングモードまたは専用モードが利用できます。
建築
YDB は、シェアードナッシングアーキテクチャのクラスター上で動作し、標準的なコモディティハードウェアを使用します。このシステムは、信頼性の低いプロセッサのネットワークでコンセンサスを解決するための通信プロトコルを実装するタブレットに基づいています。機能的には、このプロトコルはPaxosやRaftに似ています。
YDB のユーザー タブレットには必須のプライマリ キーがあり、その範囲によってシャード化されます。ユーザー データを含むシャードは、DataShard と呼ばれるタブレットによって制御されます。DataShard のサイズは数ギガバイトに達することがあります。データ ストレージしきい値またはシャード負荷しきい値を超えると、複数のタブレットに自動的に分割されます。これにより、システムはユーザー負荷に基づいて透過的に拡張されます。
DataShard に加えて、他のタブレット タイプには次のようなものがあります。
- ユーザー テーブルに関するメタデータを保存する SchemeShard。
- タブレットのバランス調整と起動を行う Hive。
- 分散トランザクションをスケジュールするコーディネーターとメディエーター。
タブレットのデータは、タブレット プロトコルをサポートする特殊なプロトコルを備えたキー値ストレージである分散ストレージ レイヤーに保存されます。分散ストレージはデータのレプリケーションを保証し、タブレットのデータはBLOBとして保存されます。
YDBは、Calvin [5]アルゴリズムに基づく分散トランザクションフレームワークを使用して、1つ以上のテーブルのデータ間で分散トランザクションを実行します。Calvinとは異なり、YDBはレコードロックを使用してインタラクティブで非決定的なトランザクションをサポートします。
YDB はアクター モデルに基づいています。アクターは、異なるクラスター サーバーに存在しながら互いにメッセージを交換するシングル スレッドのバックエンド オートマトンです。ネットワーク内のメッセージは、プロジェクトの一部として開発された相互接続ライブラリを使用して交換されます。
仮想ブロック デバイスや永続キューなどの多数のデジタル サービスが、YDB 上のレイヤーとして開発されています。
YDBは、ノード検出、クライアントバランシングなどの手順を実装した複数のクライアントSDKを使用して、gRPCプロトコルを介してユーザーインタラクションをサポートします。[4]
YDBはUUIDをスタンドアロンのデータ型としてサポートしていません。テーブルにデータを追加するときにフィールド値を自動的に増分する組み込み関数はありません。[6]
歴史
2010年、Yandexは独自のNoSQL DBMS KiWi [3]の開発を開始し、2011年に社内での使用を開始しました。しかし、KiWiには結果整合性やNoSQLモデルのその他の欠点がありました。[4]
2012年、YandexはDBMSのニーズを満たすためにKiKiMRプロジェクトを開始しました。これは後にYDBとして知られるようになります。[3]
2016 年に、YDB は Yandex サービスに展開されました。
2018年、YDBをベースにしたデータストレージを備えたYandex Cloudプラットフォームが開始されました。[7]同時に、同社は将来的にYDBをYandex Cloudのマネージドサービスとして利用できるようにすると発表し、後にこのサービスへのアクセスを顧客に提供し、PostgreSQL、MongoDBなどの他のマネージドサービスも提供しました。 [8]このクラウドバージョンはYandex Database(後にYDBのマネージドサービス)と呼ばれました。
2022年4月、YDB DBMSはApache 2.0ライセンスに基づくフリーソフトウェアとしてGitHubで公開されました。
参考文献
- ^ “Releasev23.1.26”. Github . 2023年5月16日閲覧。
- ^ "Как писать меньзе кода для MR, или Зачем миру ещё один язык запросов? История Yandex クエリ言語". Хабр(ロシア語)。 2016 年 10 月 12 日。2022-07-01に取得。
- ^ abc 「YDBがオープンソースプロジェクトとして利用可能に」。medium.com。2022年6月23日。2022年7月1日閲覧。
- ^ abc "Бессерверная альтернатива традиционным базам данных". osp.ru (ロシア語) 。2022-07-01に取得。
- ^ 「Calvin: パーティションデータベースシステム向けの高速分散トランザクション」(PDF) . cs.yale.edu . 2022年7月4日閲覧。
- ^ "Yandex データベースのАвтоинкремент". Medium.com (ロシア語)。 2022 年 2 月 14 日。2022-07-04に取得。
- ^ “001. Яндекс Облако: обзор платформы – Ян Лещинский”. Youtube (ロシア語) 。2022-07-04に取得。
- ^ "about:cloud". Youtube (ロシア語) . 2022年7月4日閲覧。
外部リンク
- 公式サイト
