あるシステムで、1秒間に1万件の状態更新(int型)が必要な要求定義があります。
総レコード件数は、1000万レコードで、1リクエスト1レコードの書き換えが、1秒間に1万リクエスト飛んでくるというものです。
24時間中15時間でこの更新が走り続けます。
フィールドは、(id bigint , subid bigint , stat tinyint)となっており、
update hoge set stat = 'STAT' where id = 'ID' and subid='SUBID';
で更新します。
手法として考えられるのは、以下のようなところかな、と思いますが、
アイデアなどありましたらよろしくお願いします。
A インメモリDB(MysqlMEMORYエンジンなど)をサーバーに立ち上げる
デメリット:Mysql再起動で全レコード消失。レプリカが作れない。
B key-value型のDBをサーバー内に立ち上げる
デメリット:障害発生時、即時対応が必要??
C AWSのDynamoDB
デメリット:1秒1万アクセスは、コストが高すぎる
何かいい方法ないものかなー、といろいろ思案していますが、どれも一長一短で、
これといったものがなくて困っています。
よろしくお願いします。