blog

MongoDBの動作 - シャーディング

シャーディングの管理と維持\nすべてのシャード・サーバーをリストアップ...

Nov 19, 2021 · 4 min. read
シェア

シャーディングの管理と維持

すべてのシャードサーバーを表示

シャーディング情報を見る

シャーディングかどうかの判断

既存のテーブルのシャーディング

テーブルtest.usersをシャーディングしたところで、ライブラリ内の既存のシャーディングされていないテーブルtest.users_2をシャーディングします。

テーブルの初期状態は以下のようになります。

テーブルの初期状態は以下のようになり、シャーディングされていないことがわかります:

セグメンテーション

再度シャーディング後のテーブルの状態を確認すると、シャーディングされていることがわかります。

シャードサーバーの追加

新しいシャード・テーブルを追加する方法を説明しましたが、次は新しいシャード・サーバーを追加する方法を説明します。

新しいシャード・サーバー・プロセスの開始

新しいシャード・サーバーの設定

スライス・テーブルのステータスを表示して、新しいシャード・サーバーを確認します。

このように、新しい Shard サーバーが追加されると、MongoDB 内部で実装されている新しい Shard にデータが自動的に振り分けられます。

これは MongoDB 内部で実装されています。

シャードサーバーの削除

ハードウェア・リソースが限られているため、リサイクル作業を実行しなければならないことがあります。

システムは、まずShard Server上のデータを他のShard Serverに均等に分配し、最終的にShard Serverをオフラインにします。

システムはまず、削除されようとしているShard Server上のデータを他のShard Serverに均等に分配し、最終的にShard Serverをオフラインにします。

db.runCommand({"removeshard" : "localhost:20002"});を常に呼び出す必要があります:

最終的な削除後、db.runCommand({"removeshard" : "localhost:20002"})を再度呼び出すと、システムはエラーを報告します。

がエラーを報告し、ポート 20002 上の Shard Server が削除されたため存在しなくなったことを通知します。

次に、表のデータの分布を見てください:

データが他の2つのシャード・サーバーに均等に分散されていることがわかります。

しかし、なぜノードがまだ存在しているのでしょうか?

この記事は"phper - a little bit every day ~"ブログからのものです。

Read next

Javaはとても堅牢なのに、どうしてハングアップするのだろう?1000件の返信のうち

Dr.Dobbsの編集長であるAndrew Binstock氏は最近、Javaに関する投稿「Javaはとても堅牢なのに、どうしてハングアップするのか?.この投稿はすぐに主要な技術系ウェブサイトで話題となり、すぐに1,000件近い返信が寄せられました。 アンドリュー・ビンストックはこのような事態を予想していたようで、1,000件の返信が発生した後、すぐにネチズンの返信に対する自身の見解のいくつかを改めて詳しく説明する記事を書きました。\n\n

Nov 15, 2021 · 2 min read