Релиз Sirin 1.2.0

Александр Толстой

Команда разработчиков Picodata рада сообщить о выпуске Sirin 1.2.0 — коммерческого плагина к Picodata, реализующего поддержку API Apache Cassandra (CQL и протокол Cassandra v4). Новая версия плагина работает с Picodata 26.1.2 или новее и содержит новую функциональность и улучшения производительности.

Анонс токенов и локальное исполнение запросов

Ключевое изменение релиза — реализация механизма анонса токенов через системные таблицы system.localsystem.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.

Мы готовы предложить оптимальное решение для ваших задач!

Свяжитесь с нами, заполнив эту форму


    Нажимая кнопку «Отправить», вы даете согласие на обработку персональных данных