Ключевым изменением релиза стала реализация механизма анонса токенов через системные таблицы system.local, system.peers и system.peers_v2, аналогичного поведению Apache Cassandra. Благодаря этому стандартные cassandra-драйверы получают информацию о распределении данных по узлам кластера и автоматически направляют prepared statements на узел, хранящий нужный бакет, без лишних сетевых переходов. Это приближает поведение Sirin к нативной Cassandra и даёт ощутимый прирост производительности по сравнению с версией 1.1.0.
В Sirin 1.2.0 реализована полноценная поддержка авторизации: аутентификация по протоколу CQL, проверка прав доступа при выполнении запросов, выдача прав через GRANT PERMISSIONS, управление ролями через GRANT ROLE / REVOKE ROLE и просмотр списка ролей через LIST ROLES. Изменение прав применяется к уже установленным соединениям без необходимости переподключения.
Особое внимание в новом релизе разработчики уделили производительности: помимо локального исполнения запросов, реализован ряд улучшений, затрагивающих разные сценарии работы с данными. В совокупности они дают заметный прирост как на чтение, так и на запись.
Новые возможности Sirin:
- удаление отдельных колонок: теперь можно удалять значения конкретных колонок, не затрагивая всю строку:
DELETE col1, col2 FROM table WHERE id = 1;
- тип inet: добавлена поддержка типа данных для хранения IP-адресов (IPv4 и IPv6);
- функции mintimeuuid и maxtimeuuid: доступны для использования в WHERE-условиях при работе с колонками типа timeuuid, что позволяет делать эффективную выборку по диапазону времени:
SELECT * FROM events
WHERE id = 1
AND ts > mintimeuuid(‘2025-01-01 00:00:00’)
AND ts < maxtimeuuid('2025-12-31 23:59:59');
В ближайших релизах разработчики планируют расширить функциональность плагина. В числе приоритетов — полная поддержка команд авторизации, включая LIST PERMISSIONS и REVOKE PERMISSIONS, реализация статических колонок, а также внедрение GROUP BY и агрегатных функций.