はじめに
今回は,
シャーディングとは,
シャーディングはMongoDBの機能の中でも重要かつ複雑なもののひとつです。手元の環境で構築することが,
シャーディングのメリット
シャーディングはMongoDBを水平スケーリングさせる機能で,
負荷分散による性能の向上
データを複数のサーバに分散させることにより,
リソース分散によるコストパフォーマンスの向上
近年,
メモリを例にあげますと,
MongoDBのシャーディングの概要
シャーディングについて,
シャードキーのレンジ(範囲)によるデータ分散
MongoDBのシャーディングはレンジパーティション方式を採用しています
シャーディングのイメージを図で表すと,
- ※1)
- データ分散という点のみで見ると,
MySQLのレンジ指定によるパーティショニングとほぼ同じです。
自動バランシング
キー範囲の調整と,
- ※2)
- 設定で自動バランシングをオフにすることも可能です。
重要キーワードの説明
シャーディングに登場するキーワードに関して説明します。
シャード
実際にデータが格納されているmongodプロセスです。1つのドキュメントは1つのシャードに格納され,
configサーバ
シャーディングのメタデータを管理しているmongodプロセスです。単一障害点となるので,
mongosサーバ
シャーディングにおけるルーティングプロセスです。シャードとクライアントを連携させます。必要があれば複数のmongosサーバをたてることが可能です。mongodプロセスではないので,
シャードキー
データを分散する範囲のキーです。複数指定もできます。キー上のどの範囲のデータがどのシャードに格納されるかは,
チャンク
シャーディングにおけるチャンクとは,
これまでに説明したキーワードは,