PolarDB-X 2.0: 透過的な分散データベースの使用感

PolarDB-X 2.0: 透過的な分散データベースの使用感

透過的な分散は、PolarDB-X がまもなくリリースする機能です。これにより、アプリケーションはスタンドアロン データベースを使用しているかのように PolarDB-X を使用できるようになります。

従来のミドルウェアタイプの「分散データベース」と比較すると、透過的な分散機能を備えた PolarDB-X では、アプリケーションでパーティション キーの概念を考慮する必要がなくなりました。アプリケーションは、単一の MySQL マシン上で開発されたテーブル作成ステートメントとアプリケーション コードを、PolarDB-X に直接完全に移行して操作できます。

この記事では、PolarDB-X 透過的分散の新しい体験を紹介します。

PolarDB-X に WordPress をインストールする

WordPress は、MySQL をデータベースとして使用するオープンソースのブログ ソフトウェアです。この操作は、PolarDB-X に WordPress をインストールして、PolarDB-X の透過的な配布機能を体験することです。

私たちは、次の 3 つの簡単なステップのプロセスに従います。

DDL を変更せずに、テーブルを直接作成し、アプリケーションを実行してストレス テストを実行できます。最適化の概要は次のとおりです。

公式の WordPress イメージをそのまま使用すれば、インストール プログラムは標準の MySQL 構文を使用して、PolarDB-X でのテーブル作成やデータ初期化などのタスクを自動的に完了できます。
WordPress のストレステストを行ったところ、PolarDB-X の監視データにより、各ノードの負荷とデータ量がバランスの取れた状態であることが示されました。
PolarDB-X が提供する SQL 分析、DAS、その他のツールを使用すると、システム内のホット SQL を簡単に見つけることができます。
DBA は、アプリケーションを変更せずに、インデックスの作成やデータ分散の変更などの DDL ステートメントを通じて、システム パフォーマンスをさらに直接最適化できます。

PolarDB-Xは透過的な分散兵器を実現する

PolarDB-X が透過的な分散をどのように実現するかについて説明します。

透過的なデータパーティショニング

PolarDB-X は典型的な Share Nothing 分散データベースです。簡略化されたアーキテクチャは次のとおりです。

そのコアコンポーネントは、ステートレス コンピューティング ノード CN とステートフル ストレージ ノード DN です。

PolarDB-X の透過的な分散機能を理解するには、まず PolarDB-X 上でデータがどのように分散されるかを理解する必要があります。

PolarDB-X では、テーブルは主キー、セカンダリ インデックスなどの複数のインデックスで構成されます。PolarDB-X は各インデックスを個別にパーティション化し、パーティション キーがインデックス キーになります。

たとえば、一般的な電子商取引のシナリオでは、注文テーブルには主キー (id) と 2 つのインデックス (seller_id と buyer_id) があります。

  1. 作成する テーブル注文 ( id bigint 、 buyer_id varcharコメント'購入者' 、 seller_id varcharコメント'販売者' primary  キー(id)、インデックスsdx(seller_id)、インデックスbdx(buyer_id))

主キーインデックスの場合は、ID ごとにパーティション分割されます。インデックス sdx は seller_id によってパーティション分割されます。インデックス bdx は、次の図に示すように buyer_id によってパーティション分割されます。

インデックスをシャーディングした後、PolarDB-X はこれらのシャードを異なるストレージ ノードに分散し、次の図に示すように、データ量などの情報に基づいて負荷分散を実行します。

PolarDB-X では、テーブル作成ステートメントでパーティション キーを考慮する必要がなく、テーブルを自動的にシャーディングして負荷分散することもできます。

したがって、アプリケーションを PolarDB-X に移行する場合、スタンドアロン MySQL のテーブル作成ステートメントをエクスポートし、変更せずに PolarDB-X で直接実行できます。

透過的な分散トランザクション

分散トランザクションは、PolarDB-X の最も重要な基本機能です。これらはビジネスで広く使用されており、企業がトランザクション コードを変更する必要がなくなります。同時に、PolarDB-X はトランザクションを使用してインデックスを実装します。

PolarDB-X の分散トランザクションには次の機能があります。

Spanner と同様に、外部一貫性の最も強力な一貫性レベルを満たしています。構文は MySQL と完全に互換性があり、アプリケーションを変更する必要はありません。この動作は、MySQL RC および RR レベルをサポートします。

オンラインDDL

PolarDB-X は、さまざまなオンライン DDL タイプをサポートしています。代表的な DDL タイプをいくつか示します。

インデックスメンテナンス

スタンドアロン MySQL のインデックスとは異なり、PolarDB-X のインデックスはすべてグローバル インデックスであり、次のタイプが含まれます。

通常のインデックス、ユニークインデックス、クラスター化インデックス。このうちクラスター化インデックスは、MySQL と比較した PolarDB-X の新しいタイプのインデックスです。テーブル内のすべての列が含まれるため、バックテーブルのコストが回避されます。

PolarDB-X では、インデックスの作成は DDL を通じて行われ、サービスをブロックすることなくオンラインで実行されます。

例えば:

通常のインデックスを作成します: CREATE INDEX idx1 ON t1(name)
クラスター化インデックスを作成します: CREATE CLUSTERED INDEX idx1 ON t1(name)

インスタント追加列

列の追加は、ビジネスで最も一般的な DDL タイプです。 MySQL では、列の追加にかかる時間はデータの量に関係します (MySQL 8.0 では、テーブルの最後に追加された列は INSTANT です)。

PolarDB-X では、どこにでも列を追加するのは即時です。つまり、列を追加する操作には一定の秒数かかり、データ量とは関係なく、ビジネスに影響はありません。

パーティション調整

PolarDB-X は、ハッシュ、範囲、リスト、ブロードキャストの 4 つのテーブル分散戦略をサポートしています。ハッシュは連続書き込みのホットスポットを回避できるため、PolarDB-X はデフォルトでハッシュ戦略を使用します。ほとんどの場合、この戦略はシステムのパフォーマンス要件を十分に満たすことができます。

ただし、業務運用中にシステム パフォーマンスを向上させるために適切なパーティショニング戦略を選択する場合は、PolarDB-X の DDL ステートメントを通じて簡単に調整でき、PolarDB-X は新しいパーティショニング戦略に従ってテーブル データを再編成します。

例えば:

テーブルのパーティション戦略をハッシュに変更します: ALTER TABLE t1 PARTITION BY HASH(name)
テーブルのシャード数を32に変更します: ALTER TABLE t1 PARTITION BY HASH(name) PARTITIONS 32
テーブルをブロードキャストテーブルに変更します: ALTER TABLE t1 BROADCAST
テーブルのパーティション戦略をRANGEに変更します: ALTER TABLE t1 PARTITION BY RANGE(id)
任意の 2 つのパーティション戦略は、DDL ステートメントを通じて変換できます。

バックフィル速度の適応

多くの学生が、データ量が多いために非常に大きなテーブルに対する DDL 操作が 1 日以内に完了できないという経験をしたことがあるはずです。業務への影響を回避するために、日中の業務ピーク時にはパラメータを手動で調整して DDL バックフィル速度を低下させ、業務ピークが終了した夜間には DDL バックフィル速度を上昇させます。

PolarDB-X のバックフィルは、現在のシステム負荷に基づいて速度を自動的に調整します。

例えば:

この例では、4 つの段階があります。

最初はビジネス負荷がなく、DDLバックフィル速度は250,000行/秒に増加します。
ビジネス負荷が増加し始め、DDLバックフィル速度が130,000行/秒に急速に低下します。
ビジネスTPSは15,000で安定しており、DDLバックフィル速度は130,000行/秒で安定しています。
DDL完了後、ビジネスTPSは16,000で安定します。
この例から、PolarDB-X DDL のバックフィル速度は業務負荷に応じて自動的に調整され、DDL 期間中は業務の TPS への影響は最小限に抑えられていることがわかります。

オンラインをもっとオンラインにする

DDL 中のビジネスへの影響をさらに軽減するために、PolarDB-X では次のようなさまざまなテクノロジーも使用されています。

メタデータには複数のバージョンがあります。詳細については、https://zhuanlan.zhihu.com/p/347885003 を参照してください。
一時停止およびキャンセル可能
MDLデッドロック検出

要約する

PolarDB-X の透過的な分散機能により、単一マシン データベースから分散データベースへのアプリケーションの移行コストが大幅に削減されます。同時に、将来的には透明性を高めていきます。私たちが行っていることの一部は次のとおりです。

スケジュール戦略におけるホットデータのより洗練された視覚化、SQL監査分析にリンクされたインテリジェントな診断、グローバルインデックスがある場合のパーティションレベルの切り捨てのサポート
時間によるデータのスクロール、クリーニングなど

<<:  クラウド コンピューティング アーキテクチャ: 避けるべき 5 つのよくある間違い

>>:  Redisson 分散ロック ソースコード 2: ウォッチドッグ

推薦する

データコラボレーションは SaaS の未来でしょうか、それとも単なる仕掛けでしょうか?

[[228970]] SaaS は今日すでに多くの巨人を生み出しています。 SaaS 企業の将来はど...

Google の最適化にはパンダ以前とペンギン以降があり、SEO 担当者はどのように対処すればよいのでしょうか。

Google の最適化は、「雨が降れば土砂降りになる」と表現できます。Google のアルゴリズムは...

vaicdn: 高品質の CDN、大きな帯域幅、高い防御力、攻撃による遅延は発生せず、ファイリング/実名登録は不要

vaicdn は、フルシナリオのアクセラレーション製品チェーンを提供する企業であり、その中核事業はハ...

ethelite-$5/Xen/512m メモリ/35g ハードディスク/1.25T トラフィック/フリーモント

ethelitehosting は、2010 年に設立されたと主張するホスティング プロバイダーです...

ニュース推奨ウェブサイトRedditが4億ドルの評価額で資金調達中との報道

1月7日、海外メディアの報道によると、ニュース推奨サイトRedditが資金調達を準備しているとの情報...

広州:大学生がオンラインショッピングモールを立ち上げ、半年で売上高が20万近く

卒業シーズンがまた近づいてきた。卒業生の大半が就職に苦労する中、華南理工大学を2010年に卒業した張...

hostxen: 香港\日本\シンガポール\USA VPS、登録料50元、再チャージ料1/4増、月額70元、6Gメモリ/2コア/40gSSD/7M帯域幅無制限/Windows対応

Hostxen は現在、トップアップ時にさらに多くのギフトがもらえるプロモーションを実施しており、6...

個人ブログでの友好的なリンクの交換に関する考察

私の個人ブログは2年以上運営されており、私がホストする無錫369情報ネットワークはまもなくアップグレ...

Vultr - Alipay/日本/シンガポールおよびその他 15 のデータセンターへのアクセス、月額 2.5 ドル、Windows をサポート

VPSクラウドブランドVultr.comは、数年の運営を経て、ついにAlipay決済方法に正式に接続...

SaaSベースのAIトレーニングがゲームチェンジャーとなる理由

機械学習アプリケーションが増加するにつれて、多くの人が機械学習トレーニング データを使用する利点を理...

クラウドネイティブ アプリケーションを構築するための 6 つのセキュリティのベスト プラクティス

翻訳者 |劉望洋レビュー |チョンロウクラウドネイティブ アーキテクチャにより、ソフトウェアの開発、...

李佳奇は独身の日を殺したのか?

建国記念日などのオンラインショッピングフェスティバルは、その始まり以来、必然的にトレンドを生み出し、...

エンタープライズコンテナ化を選択するには? HerokuとDockerの包括的な比較

Heroku と Docker はどちらも、開発者がコンテナ内でアプリケーションを開発、デプロイ、実...

他の人の記事を再投稿する場合は、ソースアドレスを忘れずに残してください。

なぜ今日この記事を書き始めたいのか?それは、他の人の記事を収集し、彼らの努力を尊重しないウェブマスタ...

次世代 JVM である GraalVM とは何でしょうか?

[[404037]]この記事はWeChatの公開アカウント「Coffee Latte」から転載したも...