第2章. CockroachDBのアーキテクチャ
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
ソフトウェアシステムのアーキテクチャは、そのシステムの目標を実現するためのハイレベルな設計上の決定を定義する。 第1章を思い出していただきたいが、CockroachDBの目標は、スケーラブルで、可用性が高く、性能が高く、一貫性が強く、地理的に分散され、さまざまなハードウェアプラットフォームで実行可能なSQLを搭載したリレーショナルデータベースシステムを提供することである。 CockroachDBのアーキテクチャは、これらのオブジェクトに沿ったものである。
CockroachDBのアーキテクチャには複数の見方がある。 クラスタレベルでは、CockroachDBのデプロイは、分散データベースシステムの単一の論理ビューを提示するために協働する1つ以上のシェアードナッシング、リーダーレスノードで構成される。 各ノード内では、SQL処理、トランザクション処理、レプリケーション、分散、ストレージなどの必須データベースサービスを提供する一連の階層化アーキテクチャとして、CockroachDBアーキテクチャを観察することができる。
この章では、CockroachDBアーキテクチャの包括的な概要を説明する。 この章の目的は、スキーマ設計、パフォーマンス最適化、クラスタ・デプロイなどに関して賢明な決定を下すのに役立つ基本概念を提供することである。
CockroachDBクラスタアーキテクチャ
遠くから見ると、CockroachDBのデプロイは、1つ以上のデータベース・サーバ・プロセスで構成されている。 各サーバには専用のストレージがあり、おなじみの "シェアード・ナッシング "データベース・クラスタのパターンである。 CockroachDBクラスタのノードは対称であり、"特殊化 "ノードや "プライマリ "ノードは存在しない。 このストレージは、CockroachDBサーバが動作するマシンに直接接続されていることが多いが、共有ストレージサブシステムに物理的にデータを配置することも可能である。 データは、キー範囲に基づいてクラスタ全体()に分散される。 各範囲はクラスタの少なくとも3つのメンバーにレプリケートされる。
データベースクライアント(アプリケーション、管理用コンソール、CockroachDBシェルなど)は、クラスタ内のCockroachDBサーバに接続する。
データベースサーバとデータベースクライアント間の通信は、PostgreSQLワイヤプロトコル形式で行われる。 このプロトコルは、SQLリクエスト/レスポンスがPostgreSQLクライアント、PostgreSQLサーバ間でどのように伝送されるかを記述している。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access