У меня есть кластер Cassandra с 3 узлами (3.7), пространство ключей
CREATE KEYSPACE demo WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '2'} AND durable_writes = true;
таблица
CREATE TABLE tradingdate (key text,tradingdate date,PRIMARY KEY (key, tradingdate));
один день при удалении одной строки, например
delete from tradingdate
where key='tradingDay'and tradingdate='2018-12-31'
, тогда удаленная строка становится призрачной, когда запрос
select * from tradingdate
where key='tradingDay'and tradingdate>'2018-12-27' limit 2;
key | tradingdate
------------+-------------
tradingDay | 2018-12-28
tradingDay | 2019-01-02
select * from tradingdate
where key='tradingDay'and tradingdate<'2019-01-03'
order by tradingdate desc limit 2;
key | tradingdate
------------+-------------
tradingDay | 2019-01-02
tradingDay | 2018-12-31
Поэтому, когда используется order by, удаленная строка (tradingDay, 2018-12-31) возвращается.
Я думаю,Я удаляю только строку на одном узле, но она все еще существует на другом узле.Итак, я выполняю:
nodetool repair demo tradingdate
на 3 узлах, затем удаленная строка полностью исчезает
Поэтому я хочу знать, зачем использовать order by, я вижу строку-призрак.