Так что это сводит меня с ума. Я попытался запросить одну из моих таблиц в Кассандре, и она показала сбой запроса. Я попытался докопаться до причины этого и обнаружил, что это из-за надгробия. Я изменил GC_GRACE_SECONDS на ноль и запустил сжатие с помощью nodetool, и когда я снова запросил, он работал нормально. однако при последующих вызовах запрос снова не удался по той же причине. Я использую драйвер cassandra-nodejs. Это моя модель данных.
CREATE TABLE my_table (
firstname text,
lastname text,
email text,
mobile text,
date timeuuid,
value float,
PRIMARY KEY (firstname, lastname, email, mobile)
) WITH CLUSTERING ORDER BY (lastname ASC, email ASC, mobile ASC);
это запрос, который я хочу выполнить для этой модели данных.
SELECT firstname, email, toDate(date) as date, mobile, value FROM my_table WHERE date >= minTimeuuid('2017-03-25 00:00:00+0000') AND date <= minTimeuuid('2017-03-28 23:59:59+0000') ALLOW FILTERING;
в результате будет примерно 40 тыс. строк. это показывает, что если мы удаляем что-то, это будет помечено как надгробие и будет удалено после установки GC_GRACE_SECONDS для данной таблицы. Если я правильно понимаю, тогда.
- Почему возникает проблема с надгробиями, когда я никогда не удаляю ни одной строки таблицы?
- Верно ли, что строка будет помечена как Надгробие тогда и только тогда, когда мы удалим строку?
- очистка надгробий с последующим запросом тех же результатов иногда работает, а иногда нет, почему так?
- это хорошая идея увеличить значение tombstone_failure_threshold? (одноузловое кластерное приложение)
Я использую cassandra 3.5 с версией cqlsh 5.0.1. И запрос отлично работает с терминалом, но выдает ошибку, когда мы выполняем с использованием внешнего клиента (экспресс-приложение с использованием драйвера nodejs для cassandra). у меня есть одноузловое кластерное приложение.
РЕДАКТИРОВАТЬ 1
Это журнал моего вставленного нулевого значения в поле (я вставил только имя и временную метку);
activity | timestamp | source | source_elapsed
-------------------------------------------------------------------------------------------------+----------------------------+---------------+----------------
Execute CQL3 query | 2017-03-29 10:28:27.342000 | 172.31.34.179 | 0
Parsing select * FROM testtomb WHERE name = 'Dhaval45'; [SharedPool-Worker-2] | 2017-03-29 10:28:27.342000 | 172.31.34.179 | 64
Preparing statement [SharedPool-Worker-2] | 2017-03-29 10:28:27.342000 | 172.31.34.179 | 101
Executing single-partition query on testtomb [SharedPool-Worker-3] | 2017-03-29 10:28:27.342000 | 172.31.34.179 | 210
Acquiring sstable references [SharedPool-Worker-3] | 2017-03-29 10:28:27.342000 | 172.31.34.179 | 223
Skipped 0/0 non-slice-intersecting sstables, included 0 due to tombstones [SharedPool-Worker-3] | 2017-03-29 10:28:27.342000 | 172.31.34.179 | 243
Merged data from memtables and 0 sstables [SharedPool-Worker-3] | 2017-03-29 10:28:27.342000 | 172.31.34.179 | 288
Read 2 live and 0 tombstone cells [SharedPool-Worker-3] | 2017-03-29 10:28:27.342001 | 172.31.34.179 | 310
Merged data from memtables and 0 sstables [SharedPool-Worker-3] | 2017-03-29 10:28:27.342001 | 172.31.34.179 | 323
Request complete | 2017-03-29 10:28:27.342385 | 172.31.34.179 | 385
И это журнал, когда я запрашиваю поле, в котором я выполнил запрос на удаление. Первоначально пользователь Dhaval15 имеет имя «aaaa», а затем - ячейку aaa. затем снова выполнение запроса выбора для того же пользователя дало мне этот журнал.
activity | timestamp | source | source_elapsed
-------------------------------------------------------------------------------------------------+----------------------------+---------------+----------------
Execute CQL3 query | 2017-03-29 10:35:18.581000 | 172.31.34.179 | 0
Parsing select * FROM testtomb WHERE name = 'Dhaval15'; [SharedPool-Worker-1] | 2017-03-29 10:35:18.581000 | 172.31.34.179 | 65
Preparing statement [SharedPool-Worker-1] | 2017-03-29 10:35:18.581000 | 172.31.34.179 | 113
Executing single-partition query on testtomb [SharedPool-Worker-3] | 2017-03-29 10:35:18.581000 | 172.31.34.179 | 223
Acquiring sstable references [SharedPool-Worker-3] | 2017-03-29 10:35:18.581000 | 172.31.34.179 | 235
Skipped 0/0 non-slice-intersecting sstables, included 0 due to tombstones [SharedPool-Worker-3] | 2017-03-29 10:35:18.581000 | 172.31.34.179 | 256
Merged data from memtables and 0 sstables [SharedPool-Worker-3] | 2017-03-29 10:35:18.581001 | 172.31.34.179 | 305
Read 1 live and 1 tombstone cells [SharedPool-Worker-3] | 2017-03-29 10:35:18.581001 | 172.31.34.179 | 338
Merged data from memtables and 0 sstables [SharedPool-Worker-3] | 2017-03-29 10:35:18.581001 | 172.31.34.179 | 351
Request complete | 2017-03-29 10:35:18.581430 | 172.31.34.179 | 430