CockroachDB用のObjectRocketを使用した分散SQLのスケーリング
元々は2019年8月にObjectRocket.com/blogで公開されました
CockroachDB®は、データベーステクノロジーのRackspaceObjectRocketファミリーの一部です。 CockroachDBのスケーリング機能はエキサイティングであり、データの複製と分散(高可用性の最大化)、自動データベースリバランス、データドミシリングコンプライアンスをサポートするマルチジオデータセンターなどがあります。そして、CockroachDBdataの復元力は必須であるため、これらすべてが高いデータ整合性と分散ACIDトランザクションを備えています。
スケーリングのハイライトのいくつかをCockroachDBと共有し、RackspaceObjectRocketのDBaaSが提供するものについて説明します。開発者として、マネージドサービスプラットフォームでCockroachDBを使用すると、データベースの実行の複雑さではなく、アプリケーションの構築に集中できます。
最近では、スケーリングが最も重要です
20年前、ストレージはコストのかかる懸念事項であり、ビッグデータという用語は 大きな課題に直面していることが明らかになりました。大量のデータがあり、そのデータを分析または使用するための適切な方法がありませんでした。しかし現在、テクノロジーはビッグデータと、eコマース、金融ソフトウェア、研究、経営管理、データマイニングの現代世界に固有のクエリとトランザクションの絶え間ない集中砲火を処理できます。もう1つのテクノロジーのフロンティア、モノのインターネット 、データを生成し、トランザクションをオンラインで実行するデバイスの数を増やします。オンラインで有用なデータを作成しているデバイスの長いリストに、カメラ、照明スイッチ、冷蔵庫を追加できるようになりました。
この状況では、データストアに対する現在の要求を満たし、さらに多くのデータとトランザクションのデータと新しい、まだ想像されていないソースの必然的な成長を可能にするスケーリング戦略を実装することが重要です。
スケーリングとは、現在のワークロードを適切に処理するために必要なデータベースリソースを増減することを意味します。次の方法でスケーリングします。
- 垂直スケーリング: クラスタ内の基盤となるノードにRAM、ストレージスペース、およびCPUを追加(または削除)します。
- 水平スケーリング: ワークロードを処理するために必要な場合は、ノードを追加します(単一のノードにリソースを追加するのではなく)。
ほとんどのリレーショナルデータベースは垂直スケーリングを使用します。ただし、ほとんどの分散データベース(多くの場合非リレーショナル)は水平スケーリングを使用します。これは、大量のトランザクション負荷、頻繁なクエリ、読み取り/書き込み、および復元力の要件に適しています。単一のハードウェア。
ただし、水平方向のスケーリングは計算上の制約を受けず、使用可能なハードウェアの量とソフトウェアがサポートするものにのみ制限されます。 CockroachDBのユニークな点は、分散オンライントランザクション処理(OLTP)システムに固有の高速でリアルタイムの読み取りと書き込みに対応して、リレーショナルデータベース(従来は不可能)を水平方向にスケーリングするための優れたソリューションを提供することです。 CockroachDBを垂直方向にスケーリングすることもできますが、ノードを追加してスケーリングすることをお勧めします。
CockroachDBスケーリングが特別な理由
RackspaceObjectRocketのプロダクトマネージャーであるDerekJohnsonによると、CockroachDBのスケーリングの最もエキサイティングな側面は、そのスマートさです。最初のノードを作成して構成すると、後続のノードの追加が簡単になります。マルチノード環境では、自動スケーリング、データのバランス調整、および自己管理された地理固有のコンプライアンス要件の強力なCockroachDB機能を活用して、データストアの信頼性、コンプライアンス、パフォーマンスを維持できます。最適化された構成により、CockroachDBの真の力を活用できます。たとえば、—locality
を使用します ノードのリージョンとアベイラビリティーゾーンを説明するフラグであるCockroachDBは、ジオパーティションを実装し、指定されたリージョン内にデータを自動的に保持します。
スケーリングのハイライトの内訳は次のとおりです。
- トランザクションはACIDに準拠しており、
BEGIN
などのSQLコマンドを使用して、通常の方法でトランザクションを使用できます。 またはCOMMIT
。 - CockroachDBは、リレーショナルデータベースとは異なります。スケーリング中に、すべての書き込みが単一のノードに送信されるのではなく、読み取りと書き込みの両方がすべての関連ノードに分散されます。このマルチアクティブアベイラビリティは、CockroachDBの高可用性バージョンであり、ジオスパニングを可能にします。
- CockroachDBは、少なくとも3つの異なるノードにレプリケーション要求を送信し、ほとんどのノードがデータのレプリケートに成功したことを報告するまでコミットを待機することで、コンセンサスレプリケーションを使用します。
- 書き込みごとにインテントとレコードを使用する仲介トランザクションは、トランザクションの競合を防ぎます。
- CockroachDBは、2つのオブジェクトを使用してすべてのトランザクションを仲介します。トランザクションレコードと書き込みインテントです。これらは相互にチェックインし、必要に応じてトランザクションを再起動して、最新の値を確実にコミットします。
- CockroachDBは、データのバランスとレプリケーションにより、パフォーマンスとデータの整合性のバランスが取れています。
救助のためのジオパーティショニング!
CockroachDBは、地理的にサイロ化されたシャードを作成してレイテンシーを改善し、クロスジオクエリを防止する代わりに、範囲レベルの構成設定を使用して、定義されたリージョン内でデータを複製します。 CockroachDBは、独自のジオパーティショニング機能を備えた二重目的の価値を提供します。データを保存するように特定のリージョンを構成することで、アプリケーションのパフォーマンス(ユーザーのアプリケーションに近いデータ)とGDPRdataの定住コンプライアンスの両方を実現します。
CockroachDB管理UIには、ノードマップと呼ばれる素晴らしい地理的表示があります。 、すべてのノードのアイコンと各ノードの詳細を含む世界地図を表示します。このグラフィカル表示は、データストア間の遅延の問題の計画とトラブルシューティングに役立ちます。 ObjectRocket Mission Control UIを介してCockroachDBにアクセスする場合、CockroachDB AdminUIに簡単にリンクして、ノードマップを表示できます。
適切な構成で新しいノードを手動で追加すると、スマートで迅速なスケールアウトが可能になります
- 新しいノードをプロアクティブに起動する場合は、CLIまたは管理UIのいずれかを介してコマンドを使用してノードを作成し、必要なフラグやその他の構成を設定できます。
- スケーリングするために多くのデータベースを停止および開始する必要がありますが、CockroachDBを使用すると、システムに負荷がかかっているときにノードを簡単に追加できます。
オーケストレーションを使用することにより、スケーリングはダウンタイムなしで自動的に処理されます
CockroachDBには、次のスケーリングの利点があります。
- オーケストレーションプラットフォームを介してCockroachDBをスケーリングすると、簡単になり、強力な自動化が可能になります。たとえば、(ObjectRocketのように)Kubernetesを使用する場合、1つのコマンドでCockroachDBをスケールアウトし、新しいリソースをプロビジョニングし、必要に応じて追加のポッドを起動できます。
- データセンターと異なるクラウドプロバイダー間でも、ノード間でのデータのリバランスは自動的に行われます。
- 分散トランザクションとは、ワークロードへの影響、ダウンタイム、レイテンシの増加がないことを意味します。
- サーバーの使用率をすべてのノードで均等に最適化することは、CockroachDBの自動スケーリングの自然な結果です。
ObjectRocketは、Kubernetesコンテナベースのアーキテクチャを使用して、CockroachDBデータストアに完全なマネージドサービスを提供します。このサービスには、設計と導入のコンサルティング、完全な技術サポート、およびCockroachDBのエンタープライズライセンスバージョンのすべてのメリットが含まれます。
マネージドCockroachDBソリューションの主な機能は次のとおりです。
- 3ノードの高可用性(HA)クラスター
- ObjectRocketUIを介したCockroachDB管理UIへのアクセス
- IPアドレスのホワイトリスト
- ユーザー認証
- トランスポート層セキュリティ(TLS)
これが意味することは、快適なSQLインターフェースとPostgreSQLwire互換性を備えながら、自動HA、簡単なスケーラビリティ、地理的スケーリングを備えた、リレーショナルなACID準拠のデータストアを取得できることです。
ObjectRocketのマネージドCockroachDBオファリングを使用すると、事前定義されたノードタイプからデータのニーズに最適なオプションを選択し、必要な数のノードタイプを追加することで水平方向にスケーリングできます。 Kubernetesベースのプラットフォームは、障害が発生したノードや問題のあるノードを自動的に置き換えて、クラスターが常に稼働していることを確認できます。
これは、CockroachDBと、RackspaceObjectRocketがマネージドサービスで提供するものを確認する絶好の機会です。 CockroachDBのマネージドオファリングがデータストアの要件をどのように解決するかについての洞察については、Top 5 Use Casesブログをご覧ください。Cockroach®には優れたドキュメントがあります。CockroachDBについての会話に興味がある場合、または詳細については、Rackspaceまでお問い合わせください。 。
Rackspace Cloudの利用規約を表示するには、ここをクリックしてください。
コメントや質問をするには、[フィードバック]タブを使用します。 セールスチャットをクリックすることもできます 今すぐチャットして会話を始めましょう。
-
ObjectRocketインスタンスでJSONStudioを使用する方法
JSONStudioとObjectRocket、Javaで行われた一致。 MySQLを使用したことがある場合は、PHPMyAdminやMySQL Workbenchなどのツールを使用してデータベースとインターフェイスし、アドホッククエリを実行したり、レポートを生成したりしたことがあるでしょう。これらのツールは長い間使用されており、時間の経過とともに成熟して、MySQLとの日常的なやり取りに役立つツールになりました。 MongoDBで同様の製品を検索したことがある場合は、jSonar IncのJSONStudioをぜひご覧ください。これは、MongoDBの実装と対話するためのウェブベースのフロ
-
ObjectRocketElasticsearchでKibana4を使用して稼働する
数百万(または数十億!)のElasticsearchドキュメントを人目を引くチャート、グラフ、表に変換したい場合は、Kibanaがその答えです。 Elastic製品として、Elasticsearchと緊密に統合され、大量のデータを理解するための使いやすいインターフェースを提供します。 現在、すべてのObjectRocketElasticsearchインスタンスにはKibana3がプリロードされており、ElasticsearchHTTPエンドポイントの/_plugin/kibanaからアクセスできます。ただし、Kibana 4には多くの改善と新機能が導入されているため、ObjectRocket