eコマース企業がDynamoDBを使ったフラッシュセール(タイムセール)システムを構築しています。セールイベントIDをパーティションキー(`sale_id`)、ユーザーIDをソートキー(`user_id`)として設計しました。しかし人気セール開始直後に特定の `sale_id` への書き込みが急増し、オンデマンドキャパシティモードに変更しても `ThrottlingException` が発生し続けています。この問題の根本原因と解決策として最も適切なものはどれですか?
これはDynamoDBの「ホットパーティション」問題です。DynamoDBはデータをパーティションキーのハッシュ値でパーティションに分散しますが、同一の `sale_id` に書き込みが集中すると単一パーティションの上限(約1,000 WCU/秒)を超えます。オンデマンドモードでもパーティション単位の上限は存在します。Write Sharding(書き込みシャーディング)によりランダムサフィックスを付加することで書き込みを複数パーティションに分散できます。 選択肢AのGSIはクエリパターンを拡張しますが、ベーステーブルへの書き込みは引き続き `sale_id` パーティションに集中するためホットパーティション問題は解消されません。 選択肢Cのキャパシティ増加はパーティション単位の物理的な上限を変更するものではなく、ホットパーティション問題は解消しません。 選択肢DのDAXは読み取りキャッシュであり、書き込みスロットリングには効果がありません。