新しいロールモデルとベテランドライバーがMySQL分散ストレージの使い方を紹介します

新しいロールモデルとベテランドライバーがMySQL分散ストレージの使い方を紹介します

1. 分散アプリケーションの概念と利点

分散データベースは、高速ネットワークを使用して物理的に分散された複数のデータ ストレージ ユニットを接続し、論理的に統合されたデータベースを形成するデータベースです。分散データベースの基本的な考え方は、元の集中型データベース内のデータを、ネットワークで接続された複数のデータ ストレージ ノードに分散して、より大きなストレージ容量とより高い同時アクセスを実現することです。近年、データ量の増加に伴い、分散データベース技術も急速に発展しています。従来のリレーショナル データベースは、集中型モデルから分散ストレージへ、集中型コンピューティングから分散型コンピューティングへと移行し始めています。

分散データベース システムの主な目的は、災害復旧とオフサイト データ バックアップです。近接アクセスの原則により、ユーザーは近くのデータベース ノードにアクセスできるため、オフサイトの負荷分散が実現します。同時に、データベース間のデータ転送同期により、分散的にデータの一貫性を維持できます。このプロセスによりデータのバックアップが完了します。データのリモート ストレージは、単一点障害が発生した場合でもサービス アクセスに影響を与えません。アクセス トラフィックをリモート ミラーに切り替えるだけです。

分散データベース アプリケーションの利点は次のとおりです。

(1)分散データ管理に適しており、システムパフォーマンスを効果的に向上させることができます。

(2)このシステムは経済性と柔軟性に優れています。

(3)システムは高い信頼性と可用性を備えている。

2. MySQL分散アプリケーションの主な技術

(1)MySQLデータカット

データシャーディングとは、ある特定の条件下で同じデータベースに保存されているデータを複数のデータベース(ホスト)に分散し、単一デバイスの負荷を分散する効果を実現することを指します。データのセグメント化により、システム全体の可用性も向上します。これは、1 台のマシンがクラッシュした後、データ全体ではなく、データの一部のみが異なるためです。

セグメンテーションルールの種類に応じて、2 つのセグメンテーションモードに分けられます。 1 つは、異なるテーブル (またはスキーマ) に従ってデータを異なるデータベース (ホスト) に分割することです。この種の分割は垂直データ分割と呼ばれます。もう 1 つは、テーブル内のデータの論理的な関係に基づいて、特定の条件に従って同じテーブル内のデータを複数のデータベース (ホスト) に分割することです。この種の分割は水平データ分割と呼ばれます。垂直分割の最大の特徴は、ルールがシンプルで実装が容易なことです。これは、ビジネス間の結合度が低く、相互影響が少なく、ビジネス ロジックが非常に明確なシステムに特に適しています。このシステムでは、異なるビジネス モジュールで使用されるテーブルを異なるデータベースに分割することが容易になります。異なるテーブルに従って分割すると、アプリケーションへの影響が少なくなり、分割ルールがよりシンプルで明確になります。水平方向のスライスは垂直方向のスライスよりも少し複雑です。同じテーブル内の異なるデータを異なるデータベースに分割する必要があるため、分割ルール自体はアプリケーションにとって比較的複雑であり、その後のデータメンテナンスも複雑になります。

(2)なぜデータを分割する必要があるのか​​?

1) Oracle のような成熟した安定した DB は、大量のデータの保存とクエリをサポートできますが、その価格は誰もが利用できる価格ではありません。

2) 負荷が高い場合、マスタースレーブモデルにボトルネックが発生します。従来技術では、負荷が高いときに、関連する読み取りおよび書き込みスループット パフォーマンスを実現するために、関連するレプリケーション メカニズムが使用されます。このメカニズムには 2 つのボトルネックがあります。まず、その有効性は読み取り操作の割合に依存し、ここではマスターがボトルネックになることがよくあります。書き込み操作を実行するには順次キューが必要であり、マスターは過負荷に耐えられません。 Slaver のデータ同期遅延も非常に大きくなり、CPU の計算能力も消費します。マスターで書き込み操作が実行された後、各スレーブ マシンで書き込み操作を 1 回実行する必要があります。シャーディングにより、コンピューティング、ストレージ、I/O を複数のマシンに並列に簡単に分散できるため、複数のマシンのさまざまな処理機能を最大限に活用し、単一障害点を回避し、システムの可用性を向上させ、エラーを適切に分離できます。

3) 無料の MySQL と安価なサーバー、または PC を使用してクラスターを構築し、ミニコンピュータ + 大規模な商用 DB の効果を実現し、資本投資を大幅に削減し、運用コストを削減します。なぜそれをしないのですか?

Mysql バージョン 5.1 以上では、データ テーブルのパーティション分割機能がサポートされています。データベース内のデータが垂直または水平に分割され、異なるデータベース ホストに保存された後、アプリケーション システムが直面する最大の問題は、これらのデータ ソースをより適切に統合する方法です。解決策は2つあります。

1) 各アプリケーション モジュールに必要な 1 つ (または複数) のデータ ソースを構成および管理し、各データベースに直接アクセスして、モジュール内でデータ統合を完了します。

2) すべてのデータ ソースは中間プロキシ層を通じて均一に管理され、バックエンド データベース クラスターはフロントエンド アプリケーションに対して透過的です。

2 番目のオプションは短期的にはコストがかかる可能性がありますが、システム全体のスケーラビリティには非常に役立ちます。 2 番目の解決策のアイデアは次のとおりです。

1) MySQL プロキシを使用してデータの分割と統合を実現します。

MySQL プロキシは、クライアント要求と MySQL サーバー間の接続プールを確立します。すべてのクライアント要求は MySQL プロキシに送信され、MySQL プロキシは対応する分析を実行して読み取り操作か書き込み操作かを判断し、対応する MySQL サーバーに送信します。マルチノードスレーブクラスターの場合、負荷分散も実現できます。

2) アメーバを使用してデータのセグメンテーションと統合を実現します。

Amoeba は、分散データベース データ ソース統合プロキシ プログラムの解決に重点を置いて、Java ベースで開発されたオープン ソース フレームワークです。 Amoeba にはすでに、クエリ ルーティング、クエリ フィルタリング、読み取り/書き込み分離、負荷分散、HA メカニズム、その他の関連コンテンツが備わっています。 Amoeba は主に以下の問題を解決します。

①データ分割後の複雑なデータソースの統合

②データセグメンテーションルールを提供し、データセグメンテーションルールがデータベースに与える影響を軽減する

③データベースとクライアント間の接続数を減らす

④読み書き分離ルーティング

3) HiveDB を使用してデータの分割と統合を実現します。

3. MySQLの読み書き分離

読み取り/書き込み分離では、データベース レプリケーション テクノロジを使用して読み取りと書き込みを異なる処理ノードに分散し、可用性とスケーラビリティを向上させます。マスター データベースは書き込み操作を提供し、スレーブ データベースは読み取り操作を提供します。多くのシステムでは、読み取り操作の方が一般的です。マスター データベースが書き込み操作を実行する場合、データベースの整合性を効果的に確保するために、データをスレーブ データベースに同期する必要があります。 Mysql には独自の同期データ テクノロジもあります。 Mysql はバイナリ ログを使用してデータをコピーします。マスター データベースがスレーブ データベースに同期された後、スレーブ データベースは通常、複数のデータベースで構成され、負荷を軽減するという目的を達成します。読み取り操作は、単純にランダムに分散されるのではなく、サーバーの負荷に基づいて異なるサーバーに分散される必要があります。 Mysql は、読み取りと書き込みの分離操作を実装するための mysql プロキシを提供します。

現在、より一般的な MySQL の読み取り/書き込み分離は、次の 2 つのタイプに分かれています。

①プログラムコードの内部実装に基づく

コードでは、ルートは選択と挿入に従って分類されます。この方法は、実稼働環境でも最も広く使用されています。

②中間プロキシ層に基づく実装

プロキシはクライアントとサーバーの間に配置されます。プロキシ サーバーはクライアント要求を受信すると、判断に基づいてそれをバックエンド データベースに転送します。次の図は、eBay の読み取りと書き込みの分離の構造図です。 Share plex は、ほぼリアルタイムでデータを他のデータ ノードに複製するために使用され、その後、特定のモジュールを使用してデータベースの状態を確認し、負荷分散と読み取り/書き込みの分離を実行することで、システムの可用性が大幅に向上します。

4. MySQL クラスタ

MySQL クラスタ テクノロジーは、分散システム内の MySQL データに冗長性を提供し、セキュリティを強化し、単一の MySQL サーバー障害がシステムに大きな悪影響を及ぼさないことを保証し、システムの安定性を確保します。

Mysql クラスターはシェアードナッシング アーキテクチャを採用しています。 Mysql クラスタは主に NDB ストレージ エンジンを使用して実装されます。これは、すべてのデータをメモリにロードする必要があるインメモリ ストレージ エンジンです。データはクラスター内の異なるストレージ ノードに自動的に分散され、各ストレージ ノードには完全なデータの一部のみが保存されます。同時に、ユーザーは同じデータを複数の異なるストレージ ノードに保存するように設定して、単一点障害によってデータが失われないようにすることができます。

MySQL クラスタにはコンピュータのグループが必要であり、各コンピュータの役割は異なる場合があります。 MySQL クラスターは、ノードの種類によって、管理ノード (他のノードを管理)、データ ノード (クラスターにデータを格納、複数存在可能)、MySQL ノード (テーブル構造を格納、複数存在可能) の 3 つのカテゴリに分類できます。クラスター内のコンピューターは、特定の種類のノード、または 2 つまたは 3 つの種類のノードの集合になります。これら 3 種類のノードは論理的にのみ分割されているため、必ずしも物理コンピューターと 1 対 1 で対応するわけではありません。複数のノードを異なる地理的な場所に分散できるため、分散データベースを実装するためのソリューションでもあります。

MySQL クラスターの登場により、データベースの負荷分散が効果的に実現され、データセンター ノードとビッグ データ処理への負担が軽減されました。データベース センター ノードに障害が発生すると、クラスターは特定の戦略を採用して他のバックアップ ノードに切り替え、障害の問題を効果的に遮断します。単一のノードに障害が発生しても、データベース全体が外部サービスの提供に影響することはありません。さらに、データベース クラスタ アーキテクチャを採用することで、マスター データベースとスレーブ データベース間で常にデータ同期の冗長性が確保されます。データベースはマルチポイントかつ分散されているため、データベース データのバックアップが適切に完了し、データ損失を回避できます。

<<:  企業がハイパースケールクラウドプロバイダーになるチャンスは終わりつつある

>>:  クラウド コンピューティングが世界を席巻している今、私たちは何を心配すべきでしょうか?

推薦する

Kubernetes での AI と機械学習のワークロードの最適化

Kubernetes は、サービスからジョブ、ステートフル アプリケーションまで、あらゆる種類のコン...

ドライブしましょう: ドメイン名登録の割引をいくつかご紹介します。10年間の.xyz登録は4.99ドルです。

ドメイン名の割引情報に注目していない人が多いようです。今月登録できる安いドメイン名を簡単に紹介します...

商務省:電子決済をめぐるWTO紛争の部分的判決を歓迎

中国新聞社、北京、7月16日(記者:石燕)世界貿易機関が16日夜発表した、電子決済をめぐる米国と中国...

アマゾン第1四半期財務報告:クラウドコンピューティング事業の収益は135億ドル

海外メディアの報道によると、アマゾンが発表した第1四半期の財務報告によると、第1四半期の純売上高は1...

2021年中国産業インターネット会議が間もなく開幕します。誰を観るべきでしょうか?

9月17日、広東省工業情報化庁、広東省通信局、工業情報化部第五電子研究所、中国工業インターネット研究...

クラウドコンピューティングの基盤技術であるKVMに関する予備的研究

[[281929]] KVM は業界で最も人気のあるハイパーバイザーであり、正式名称はカーネルベース...

鉄道省企業が切符販売網を独占

毎年1月から2月にかけて、世界で最も売れる商品は中国の春節列車の切符であり、この商品の独占販売権を持...

meanservers-15USD/年/KVM/128MB RAM/ロサンゼルス/デンバー

meanservers.com は 2009 年に設立されました。市場を拡大するために、一時期は低価...

VPSデータベース - 6ドル/月/openvz/kvm/ロシア/カナダ/カンザス

vpsdatabaseは2017年5月に設立され、競争力のあるVPS製品を提供しています。販売中の2...

ファンの数が1日で300万人以上も増加するインターネットセレブ経済から、起業家は他にどのような利益を得ることができるのでしょうか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています「あなたを...

中国オープンソースクラウドコンピューティングカンファレンス:OpenStackが最も人気

12月6日、北京で第3回中国オープンソースクラウドコンピューティングカンファレンスが開催され、オープ...

WuyunはNetEaseのメールボックスデータ1億件以上が漏洩したと主張

10月19日午後、Wuyunは、NetEase 163/126メールボックスから1億件以上のデータ(...

intovps - 5 ドル/1g メモリ/20g SSD/1T トラフィック/OpenStack/5 つのオプション データ センター

intovps についてあまり詳しくない人もいるようですが、実際ブロガーも知りません。intovps...

cloudcandyhost - $3.4/128m メモリ/5g SSD/200g トラフィック/g ポート

cloudcandyhost はインドの業者です。一般化しないでください。信頼できるインドの業者も存...

ユーザーにとって価値のあるウェブページは必ずしもオリジナルの記事ではない

多くの人が初めて SEO を学ぶとき、インターネット上のさまざまなチュートリアル、特に Baidu ...