3. MongoDB

3.1. テナント削除

MongoDB データベースのサイズが非常に大きい場合、テナント削除がすぐに完了しない場合があります。 コンソール上では、テナント削除エラーとなります。

3.1.1. 対策

削除エラーとなった場合は、しばらく時間をあけて再度削除を実施してください。

3.2. ディスク容量不足

ディスク容量が不足すると、MongoDB プロセスが異常終了する場合があります。 具体的には mongod が異常終了します。

3.2.1. 対策

監視ソフトウェアを使用して、ディスク容量不足に陥らないよう監視を行うことを推奨します。

不足しそうな場合は、ディスクを追加するか、シャーディング使用時はシャード追加を行ってデータを分散させてください。

3.3. シャーディング

MongoDB シャーディング環境では以下の点に注意が必要です。

  • シャード間でデータのマイグレーションを行っている最中にバケットを削除することはできません(エラーになります)。
    • マイグレーションが稼働中かどうかは、mongo シェルの sh.status() で確認できます。
  • シャードキー設定後、全APサーバへのシャード情報の伝搬には最大60秒かかります。この間、バケットへのアクセスが制限される場合があります。
  • Configサーバはレプリカセット構成(通常3台構成)としてください。
    • レプリカセットが正常稼働している状態でないと、テナントの追加・削除処理を行うことができません。その他の操作(バケット作成など)は問題ありません。

3.3.1. 対策

テナント追加・削除、シャードキー設定、バケット作成・削除などの管理操作は、開発時とサービス運用停止時(メンテナンス時)にのみ行うようにしてください。

3.4. トランザクション

MongoDB 4.0より、マルチドキュメントトランザクションをサポートします。 APIサーバも、v7.5より一部のREST APIでサポートを行います。

トランザクション機能は、レプリカセット構成を使用する場合のみサポートされます。

3.4.1. 対策

  • スタンドアローンの場合は、レプリカセットへの更新を行います。
  • シャーディングの場合、MongoDB 4.2でのサポートが予定されています。 リリース後に更新を検討してください。

3.5. アップグレード

MongoDBをアップグレードする場合、直接最新のバージョンに更新できない場合があります。

3.5.1. 対策