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: ウォッチドッグ

推薦する

【李 嬌寿】大手ブランドからマーケティングを学べば学ぶほど、状況が悪化するのはなぜでしょうか?

「非常に奇妙な現象ですが、私たちは他人が成功した後に何をするかを知りたがりますが、過去にどうやって成...

医療ウェブサイトでユーザーに好まれる記事の書き方について簡単に説明します

医療業界のSEO担当者は、ユーザーをコンバージョンすることが最終的な目標であることを知っています。ユ...

成功するウェブサイト運営の3つの要素シリーズ:ポジショニング

今ではウェブサイトを構築するのは簡単ではないというのが共通認識です。SEO業界のウェブマスターであっ...

263 Enterprise Communications: エンタープライズSaaS業界で最も献身的なサービスプロバイダーになる

[51CTO.comより引用] インターネット+の急速な発展に伴い、企業の情報化建設のペースは加速し...

Glu、来年モバイル向け初の007ゲームをリリース予定

記事の概要:このゲームは2015年夏に正式リリースされる予定で、iOS、Android、その他のモバ...

モバイルウェブサイトのミニマリストデザインを他と差別化する方法

月収10万元の起業の夢を実現するミニプログラム起業支援プランブロードバンド事業者は絶えず価格を下げて...

反論: ソーシャルマーケティングがSEOに取って代わるという考え

ソーシャルフォーラムがその後の発展の可能性を持っているかどうかは、誰もが議論したことがあると思います...

2018 年のクラウド コンピューティング: 切り替えるか死ぬか

クラウド コンピューティング テクノロジーは、まったく新しい、異なるビジネス チャンスを生み出してい...

#11.11# Gouyun: 全品40%オフ、香港 (CN2\CMI\Ali\BGP)、日本 (Softbank\IIJ\BGP)、韓国 (BGP)、ドイツ + オランダ (AS9929)、ロシア (CN2)、米国 (CN2 GIA\AS9929)

毎年恒例のダブルイレブンが到来し、Gouyunも例外ではありません。また、毎年恒例の最低価格イベント...

なぜ芸術的なスタイルが中国のインターネット企業の弱点となっているのか?

はじめに:豆板の「新鮮でシンプル」なスタイルが疑問視されている。 Inchuangyebang は、...

上海市党委員会書記はUCloudのトップに何と言ったのでしょうか?

昨日、上海市委員会の李強書記はいくつかの科学技術イノベーション企業を現地調査し、シンポジウムを主宰し...

SEO Baiduウェブマスタープラットフォームとの直接対話が再開

改良された Baidu Webmaster プラットフォームがリリースされました。インターフェースの...

ウェブサイトの外部リンク構築の経験と方法について話す

ウェブサイトを構築したことがある友人は、ウェブサイトの外部リンクを構築するのは長くて骨の折れる作業で...