Sharding
Motivation
そこでShardingを使う
How to
ストアするのをkey-value pairと仮定する
keyの値に応じて、担当するインスタンスを切り替える。例:名前がA-F, F-N, N-Zで分ける→write trafficを3倍処理できるようになる
cons
more complexity
limited data model (key-value pair, single common key for all queries)
limited data access model
たとえば、「バリスタに対して失礼な顧客の一覧」
keyそれ自体は共通だが、すべてのシャードに対してクエリを投げてその結果を集めなければならない(scatter-gather paradigm)
scatter-gatherはよくあることであってそれ自体がダメなわけではないが、やりすぎはよくない