2015-03-31 4 views
0

Я простую таблицу EMP:Cassandra таблица не имеет надгробия для удаленных строк

CREATE TABLE emp (
    empid int, 
    deptid int, 
    first_name text, 
    last_name text, 
    PRIMARY KEY (empid, deptid) 
) WITH ... 

я вставил 10 записей. Затем удалили 1 запись и проверили json для таблицы. Это было следующим:

... 
{"key": "0000000a","columns": [["1003:","",1427796440909000], ["1003:first_name","fn10",1427796440909000], ["1003:last_name","ln10",1427796440909000]]}, 
{"key": "00000001","metadata": {"deletionInfo": {"markedForDeleteAt":1427797012545000,"localDeletionTime":1427797012}},"columns": []}, 
{"key": "00000008","columns": [["1001:","",1427796419431000], ["1001:first_name","fn8",1427796419431000], ["1001:last_name","ln8",1427796419431000]]}, 
... 

Таким образом, 1 запись помечена для удаления. Далее я удалил все записи из таблицы, и select * from emp ничего не возвращает на cqlsh.

Однако, когда я проверяю json для таблицы, я получаю тот же результат, что и после 1 удаления записи. Это среда dev, и все данные были в 1 sstable.

Почему надгробные плиты для других удаленных записей не отражены в выводе json для таблицы?

ответ

2

Его в память, которая объединена с sstables. Сделайте nodetool flush перед sstable2json, чтобы посмотреть, что в настоящее время находится в памяти таблицы &.

+0

«Удалить все», в зависимости от того, как это делается, может быть надгробием диапазона –

Смежные вопросы