Я пытаюсь выяснить, как влияет производительность на использование массивов кассандры.Согласно моим экспериментам, Кассандра генерирует надгробия при вставке или не инкрементном обновлении массивов (не замороженных).Однако, согласно выводу трассировки cqlsh, надгробия не читаются, поэтому они не должны влиять на производительность ...?
CREATE TABLE tomb_test (id text PRIMARY KEY, events list<text>);
insert into tomb_test (id, events) values ('1', ['A', 'B']);
bin$ nodetool flush
-- you can see there is "marked_deleted" tombstone for events array
sstabledump node1/data0/spark/test-ef990510057b11e98254712032ed3bea/mc-1-big-Data.db
[
{
"partition" : {
"key" : [ "1" ],
"position" : 0
},
"rows" : [
{
"type" : "row",
"position" : 62,
"liveness_info" : { "tstamp" : "2018-12-24T14:04:07.188625Z" },
"cells" : [
{ "name" : "events", "deletion_info" : { "marked_deleted" : "2018-12-24T14:04:07.188624Z", "local_delete_time" : "2018-12-24T14:04:07Z" } },
{ "name" : "events", "path" : [ "c7481be0-0784-11e9-8254-712032ed3bea" ], "value" : "A" },
{ "name" : "events", "path" : [ "c7481be1-0784-11e9-8254-712032ed3bea" ], "value" : "B" }
]
}
]
}
]
cqlsh:spark> tracing on
cqlsh:spark> select * from tomb_test ;
-- however when reading from tomb_test, no tombstones are scanned
Read 1 live rows and 0 tombstone cells [ReadStage-3] | 2018-12-24 15:07:02.445000 | 127.0.0.1 | 8357 | 127.0.0.1
PS: Когда таблица создается с замороженным типом списка, надгробие не создается
CREATE TABLE tomb_test (id text PRIMARY KEY, events frozen<list<text>>);
Кассандра версия: 3.11.3