я хочу реализовать последовательность в Scylladb, поэтому я создал таблицу:
CREATE TABLE project.sequence (
name ascii PRIMARY KEY,
value bigint
);
Затем я вставил строку:
INSERT INTO project.sequence (name,value) VALUES ('UID', 1000);
Теперь я просто хочу обновить последовательность, в которой имя — «UID», но я получил ошибку LWT от Scylla.
UPDATE project.sequence SET value=? WHERE name='UID' IF value=?;
Это ошибка:
InvalidRequest: Error from server: code=2200 [Invalid query] message = "Cannot use LightWeight Transactions for table project.sequence: LWT is not yet supported with tablets"
Фактически, я получаю эту ошибку везде, где использую LWT (при условии) !!!! В чем проблема ?
Другая идея — использовать более старую версию Scylla.
См. ограничения планшетов, включая отсутствие поддержки LWT, в ScyllaDB 6.0 здесь: opensource.docs.scylladb.com/stable/architecture/…
@PiotrSmaroń Предлагаю вам превратить это в ответ, а не в комментарий. Обратите внимание: когда вы создаете пространство ключей в Scylla 6.0 с включенными планшетами (по умолчанию), вас предупреждают, что вы не сможете использовать LWT. В предупреждении также сообщается, что вы можете сделать (удалить пространство ключей и создать его заново с отключенными планшетами). Я думаю, это предупреждение было недостаточно заметным - или вы создали пространство ключей с помощью кода, а не ручной команды, и код не замечает предупреждений :-(

Я суммирую комментарии Петра и Цаха в организованный ответ:
В ScyllaDB 6.0 представлен новый механизм репликации, называемый «таблетками», в котором таблицы разбиваются на небольшие части («таблетки»), которые можно более легко и эффективно перемещать между узлами по сравнению с предыдущей реализацией «vnodes».
Планшеты имеют много интересных преимуществ и перспектив, но, будучи новой функцией, они также имеют некоторые временные ограничения, пока все складки не будут разглажены. Эти ограничения перечислены на этой странице. Как вы заметили, одной из функций, которые в настоящее время не поддерживаются на планшетах, является LWT.
Функция «таблетки» предназначена для каждого пространства ключей, поэтому, хотя она включена по умолчанию в новых пространствах ключей, вы можете легко создать пространство ключей без планшетов (т. е. использовать классическую реализацию vnode), и тогда таблицы, созданные в этом пространстве ключей, не будут использовать планшетов и, как и прежде, будет поддерживать LWT.
Обратите внимание: если вы СОЗДАЕТЕ ПРОСТРАНСТВО КЛАВИШ при включенном планшете (это значение по умолчанию в ScyllaDB 6.0), вы получите следующее предупреждающее сообщение:
Таблицы в этом пространстве ключей будут реплицироваться с помощью планшетов. и не будет поддерживать функцию CDC (проблема № 16317) и LWT. может чаще страдать от проблемы № 5251. Если вы хотите использовать CDC или LWT, удалите это пространство ключей и создайте его заново. без таблеток, добавив
AND TABLETS = {'enabled': false}к оператору CREATE KEYSPACE.");
Это сообщение об ошибке немного вводит в заблуждение — дело не только в том, что «LWT может пострадать» от такой проблемы — на данном этапе мы полностью запрещаем LWT для планшетов, и такие запросы будут полностью отклонены. Но предупреждающее сообщение полезно тем, что оно сообщает точный синтаксис отключения планшетов в команде CREATE KEYSPACE.
Я предполагаю, что вы используете Scylla OSS 6.0, в которой планшеты включены по умолчанию, и, как говорится в ошибке, планшеты еще не совместимы с LWT. Если вам нужно использовать LWT, вам следует создать пространство ключей без планшетов, добавив «AND Tablets = {'enabled': false}» к CREATE KEYSPACE.