更新内容
2021年7月14日、Alms で利用しているデータベース Azure Cosmos DB (mongo API) (以降、Cosmos DB) の API バージョンを 3.2 -> 3.6 にバージョンアップしました。その結果、処理に2秒以上を要している低速なクエリを 67% 削減することに成功しました。
背景
利用者数の増加に伴いより多くのデータを短時間で取得することが必要となりました。Cosmos DB には すべてのデータベース操作に必要なコストを抽象化した、要求ユニット (RU) が存在しますが、ver 3.2 ではコレクション毎の RU 上限は最大 10,000RUという縛りがあります。
RU 上限 10,000 の制限をなくし API レスポンス速度の向上などを狙い、バージョン 3.2 -> 3.6 にバージョンアップを行いました。
※ こちらの記事 によると, 3.2 でも RU 上限は上げられるように見えますが、実行すると内部エラーが発生しうまく動作しませんでした。
効果
RU 上限を増加する事により、一度に取得するデータ数を増加することができ、結果として API レスポンス速度を向上させることができました。
また、バージョンが上がった事により内部のクエリパフォーマンスが向上し、低速クエリ(2s以上)の頻度が1/3に減少しました。
測定項目 | 改善後 | 改善前 |
---|---|---|
低速クエリ頻度 [%] | 0.017 | 0.051 |
低速クエリ回数 [回] | 26 | 97 |
総クエリ回数 [千回] | 156 | 189 |
測定期間[日] | 7 | 7 |