Picodata

Плагины Picodata на Rust: pike, миграции и blue-green

Плагины Picodata на Rust: pike, миграции и blue-green

Когда SQL не хватает, Picodata расширяют плагином на Rust: сервис внутри кластера со своим жизненным циклом, миграциями схемы и обновлением версий без остановки. Разбор на рабочем плагине — от скелета через pike до blue-green, включая места, где всё это ведёт себя не так, как ожидаешь

Мигратор схемы: на чём он стоит и что ломается вне ванильного PostgreSQL

Мигратор схемы: на чём он стоит и что ломается вне ванильного PostgreSQL

Мигратор — не «скрипты по порядку», а программа со своими требованиями к СУБД: журнал версий, транзакционный DDL, интроспекция каталогов. Живая матрица пяти инструментов (goose, Flyway, Liquibase, Atlas, Alembic) против PostgreSQL, CockroachDB и Picodata: на Picodata ни один не дошёл до первой миграции, на CockroachDB два споткнулись о собственную служебную часть. Плюс декларативный против императивного, привязка к формату и что на самом деле стоит денег в бесплатных редакциях

Распределённый SQL Picodata: планы, motion и цена ключа шардирования

Распределённый SQL Picodata: планы, motion и цена ключа шардирования

Как Picodata исполняет SQL на кластере: план, адресация к бакетам, двухфазная агрегация и motion — перенос данных между узлами. Почему соединение по ключу шардирования обходится без переноса, а обычное на объёме просто не выполняется, и откуда берутся два лимита, в которые упирается всё

Picodata и PostgreSQL: где кончается совместимость

Picodata и PostgreSQL: где кончается совместимость

PostgreSQL-протокол — основной способ работы с Picodata: psql, pgx и psycopg подключаются к ней тем же кодом, что к PostgreSQL. Но совместимость частичная, и граница проходит не там, где ожидаешь. Живая матрица пяти клиентов против 59 SQL-конструкций, поведение pg_dump и мигратора, и почему у Picodata собственный JDBC-драйвер

Picodata: что это на самом деле, а не «Tarantool с кластером»

Picodata: что это на самом деле, а не «Tarantool с кластером»

Picodata выросла из форка Tarantool, но это самостоятельная СУБД: свой планировщик распределённых запросов, свой кластер-менеджер на Raft, PostgreSQL как основной протокол и расширение плагинами на Rust. Разбор устройства на живом кластере — репликасеты, бакеты, тиры — и что происходит с ответами на запросы, когда узлы выходят из строя

Tarantool и Picodata: данные и вычисления рядом

Tarantool и Picodata: данные и вычисления рядом

Tarantool как in-memory DB со встроенным Lua application server: stored procedures выполняются рядом с данными — перенос вычислений к данным, а не наоборот. Движки memtx и vinyl, persistence через WAL и snapshot. И Picodata — самостоятельная СУБД на форке того же ядра, где вычисления рядом с данными живут иначе: PostgreSQL-протокол снаружи, плагины на Rust внутри, метрики Prometheus и веб-интерфейс из коробки