Команда разработчиков Picodata рада сообщить о выпуске Sirin 1.2.0 — коммерческого плагина к Picodata, реализующего поддержку API Apache Cassandra (CQL и протокол Cassandra v4). Новая версия плагина работает с Picodata 26.1.2 или новее и содержит новую функциональность и улучшения производительности.
Анонс токенов и локальное исполнение запросов
Ключевое изменение релиза — реализация механизма анонса токенов через системные таблицы 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. Изменение прав применяется к уже установленным соединениям без необходимости переподключения.
Производительность
В этом релизе мы уделили значительное внимание производительности: помимо локального исполнения запросов, был реализован ряд улучшений, затрагивающих разные сценарии работы с данными. В совокупности они дают заметный прирост как на чтение, так и на запись. Результаты нагрузочного тестирования будут опубликованы в ближайшее время.
Новые возможности
Удаление отдельных колонок — теперь можно удалять значения конкретных колонок, не затрагивая всю строку:
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 и функций-агрегатов
По всем вопросам и предложениям приглашаем в Telegram-чат сообщества @picodataru.