Slide 14
Slide 14 text
具体的な改善アプローチ
- パフォーマンス悪化の原因
- historyUseCase.Listにて、はじめにGetByUseCase(企業 x UseCase) でDynamoDBから取得
し、それからメモリ上でフィルタリングしている。
- GetByUseCaseではカーディナリティが低く、時間と共に取得件数が単調増加してしまう。
- stage環境にて試したところ、DynamoDBからの取得で15万件ヒット、7~10秒かかっていた。
- 対応方針
- 第一フィルタリングをGetByUseCaseではなく、優先度に応じて1度だけ行うようにした。
- Objectのカーディナリティは極めて高く、フィルタリング効果が大きいのでObjectが指定され
ているクエリについてはパフォーマンスが大きく改善する。
- 既存のhistory APIのコールを一通り確認したが、概ねObjectが指定されていたので全体的に改
善するのではないかと期待。
- 結果
- Object指定のリクエストについては 7s → 54ms に改善した。