次の表があります。
CREATE TABLE example
(
id text,
users map<text,text>,
lastvisit int,
...
PRIMARY KEY (userid)
);
時々、次のように列またはマップ エントリを更新します。
1) update example set users = users - {'JOE'} where id = 'id';
2) update example set users = users + {'JOE':'meta'} where id = 'id';
3) update example set lastvisit = 100 where id = 'id';
廃棄と圧縮の方法で、各クエリが古いデータをどのように処理するかを知る必要があります。
以下は私が調査/アドバイスしましたが、特に地図については情報が不足しています.
キー = 'JOE' のマップ エントリを削除するには、マップ内のそのエントリに対してのみトゥームストーンを生成します。圧縮すると、値が削除されます。
キーと値のペアをマップに挿入します。新しいエントリがあるため、古いエントリは圧縮時に削除されます。
列エントリが更新され、2 のように古い値がコンパクションで削除されます
それぞれの場合の問題は、行全体が再度書き込まれるのか、それとも新しいタイムスタンプを持つ更新された値のみが書き込まれるのかということです。