Индексы SASI в Кассандре, похоже, имеют некоторые ошибки

Я только начал работать с индексом SASI на Cassandra 3.7.0 и столкнулся с проблемой, которая, как я подозревал, была ошибкой. Я с трудом отследил ситуацию, в которой появилась ошибка, вот что я нашел:

При запросе с индексом SASI он может некорректно возвращать 0 строк, а при незначительном изменении условий он снова работает, как в следующем CQL-коде:

CREATE TABLE IF NOT EXISTS roles (
    name text,
    a int,
    b int,
    PRIMARY KEY ((name, a), b)
) WITH CLUSTERING ORDER BY (b DESC);

insert into roles (name,a,b) values ('Joe',1,1);
insert into roles (name,a,b) values ('Joe',2,2);
insert into roles (name,a,b) values ('Joe',3,3);
insert into roles (name,a,b) values ('Joe',4,4);

CREATE TABLE IF NOT EXISTS roles2 (
    name text,
    a int,
    b int,
    PRIMARY KEY ((name, a), b)
) WITH CLUSTERING ORDER BY (b ASC);

insert into roles2 (name,a,b) values ('Joe',1,1);
insert into roles2 (name,a,b) values ('Joe',2,2);
insert into roles2 (name,a,b) values ('Joe',3,3);
insert into roles2 (name,a,b) values ('Joe',4,4);

CREATE CUSTOM INDEX ON roles (b) USING 'org.apache.cassandra.index.sasi.SASIIndex' 
WITH OPTIONS = { 'mode': 'SPARSE' };
CREATE CUSTOM INDEX ON roles2 (b) USING 'org.apache.cassandra.index.sasi.SASIIndex' 
WITH OPTIONS = { 'mode': 'SPARSE' };

Заметьте, что я изменяю только роли ролей таблицы2 из ролей таблицы ' CLUSTERING ORDER BY (b DESC) ' на ' CLUSTERING ORDER BY (b ASC) '.

При запросе с заявлением select * from roles2 where b<3;, rusult состоит из двух строк:

 name | a | b
------+---+---
  Joe | 1 | 1
  Joe | 2 | 2

(2 rows)

Тем не менее, если запрос с select * from roles where b<3;, он вернул никаких строк:

 name | a | b
------+---+---

(0 rows)

Это не единственная ситуация, когда ошибка появляется, когда я однажды создал индекс SASI с определенным именем, например, 'end_idx' в столбце 'end', ошибка появилась, когда я не указал имя индекса, он исчез,

Пожалуйста, помогите мне подтвердить эту ошибку или скажите, правильно ли я использовал индекс SASI.

0 ответов

Другие вопросы по тегам