Перейти к содержимому

История выпусков

Эта страница кратко описывает пользовательские выпуски. Источниками release identity являются Git tags и CHANGELOG.md; подробный контракт находится в тематических главах.

Руководство 1.2.25 соответствует выпущенному снимку исходников 1.2.25 и wire protocol 18. Согласованные crates workspace и бинарники сообщают Cargo package version 1.2.25. Связывайте бинарник с точной ревизией исходников и lockfile по полной build identity.

Этот технический выпуск сериализует автоматическое освобождение неизменяемых компонентов с владением physical restore и compaction. Поздний цикл очистки больше не может создать quarantine во время замены физического корня базы. Регрессионные проверки отмены, конкурентного изменения схемы и file-backed checkpoint получили детерминированные и ограниченные контракты выполнения.

SQL, wire protocol, storage format, конфигурация и публичные API не изменились относительно 1.2.21.

Руководство 1.2.21 соответствует выпущенному снимку исходников 1.2.21 и wire protocol 18. Согласованные crates workspace и бинарники сообщают Cargo package version 1.2.21. Связывайте бинарник с точной ревизией исходников и lockfile по полной build identity.

Этот технический выпуск усиливает чувствительные к таймингам CI-проверки отмены TCP-запроса при разрыве соединения и финализации долговечного Job scheduler. По сравнению с 1.2.19 не изменились runtime-поведение, SQL, wire protocol, storage format, конфигурация и публичные API. Опубликованные crates получили отдельные тематические keywords для движка, хранилища, клиента, ORM, application SDK, procedural runtime и пакетов расширений.

Руководство 1.2.19 соответствует выпущенному снимку исходников 1.2.19 и wire protocol 18. Согласованные crates workspace и бинарники сообщают Cargo package version 1.2.19. Связывайте бинарник с точной ревизией исходников и lockfile по полной build identity.

Безопасность сервера и управление доступом

Заголовок раздела «Безопасность сервера и управление доступом»

Штатный сервер аутентифицирует долговечные субъекты базы, проверяет Argon2id verifier пароля и право базы CONNECT до допуска session. Вместо plaintext TCP можно включить прямой TLS с проверкой CA и имени сервера, строгими правами private key и атомарной перезагрузкой сертификатов для новых подключений. Вход root без пароля ограничен plaintext loopback и предназначен для восстановления, если verifier root не настроен. Новая утилита radixdb-password создаёт проверяемый Argon2id PHC verifier; после его настройки исходный пароль обязателен для root на plaintext или TLS endpoints, а беспарольный вход отключён везде.

Субъекты и роли поддерживают enable, disable, rename и удаление с учётом зависимостей. Права объектов и столбцов поддерживают WITH GRANT OPTION и REVOKE GRANT OPTION FOR; делегирование роли хранит grantor, а schema USAGE отделено от schema CREATE. При подключении и каждом запуске trigger проверяются права schema и вызываемой функции.

Functions, Procedures, Triggers и Jobs получили явные команды alter и drop. RadixDB PL предоставляет typed context текущего и effective principal, транзакции, запроса, времени оператора и Job. SQL_IDENTIFIER(TEXT) безопасно формирует identifier для dynamic SQL, а :OLD.column и :NEW.column связывают trigger records в static SQL.

Штатный сервер запускает долговечные scheduled Jobs с lease, запретом параллельного выполнения одной задачи, retry с ограниченным exponential backoff, coalescing пропущенных запусков, ограниченной историей и чистой остановкой. Ошибки попыток имеют устойчивый диагностический класс, поэтому приложениям не требуется разбирать текст ошибки.

Предметно-независимый radixdb-app-sdk добавляет слой доверенного прикладного сервиса над асинхронным клиентом и ORM. Он предоставляет ограниченные request и session identity, deadlines, кооперативную отмену, лимиты типизированных результатов, устойчивую классификацию повторов и исходов, fingerprints схемы, сгенерированные контракты таблиц и процедур и versioned application events. Аутентификация продукта, авторизация, маршруты и бизнес-правила остаются вне репозитория базы. Сквозной пример приведён в главе Application SDK.

  • TEXT(n) ограничивает длину текста; VARCHAR(n) и CHAR(n) принимаются как варианты записи ограниченного текстового типа.
  • DOUBLE PRECISION сохраняет самостоятельную идентичность в SQL и каталоге, используя представление f64.
  • TIMESTAMP представляет календарные дату и время без неявного преобразования через часовой пояс соединения.
  • TIME представляет время суток независимо от конкретного момента времени.
  • TIMESTAMPTZ представляет момент времени. Часовой пояс IANA или фиксированное смещение соединения используются при явных преобразованиях календарного времени и момента; неоднозначное и несуществующее время при переходах летнего времени отклоняется.
  • Производные сложение, вычитание и умножение DECIMAL сохраняют точность при разных масштабах, с проверками точности и переполнения.

SET TIME ZONE и SHOW TIME ZONE управляют часовым поясом соединения. Скалярные и упорядоченные составные первичные ключи поддерживают нецелочисленные значения и обеспечивают уникальность полного ключа; NULL запрещён в каждом компоненте. Ограничения, добавляемые после загрузки данных, принимают квалифицированные имена отношений и отклоняют конфликтующие определения. Проверки уникальности в холодном хранилище выполняются пакетно при массовой вставке и перепроверке commit, включая составные ключи. Группы строк переменного размера разделяются по байтовому лимиту до публикации.

Привилегия DESCRIBE уровня базы управляет получением схемы приложениями. Сгенерированные прикладные контракты сохраняют детерминированные fingerprints и типизированные аргументы/результаты процедур; процедуры с табличным результатом сохраняют число возвращаемых строк.

Версия 1.2.19 добавляет stable C ABI 1.0, безопасный Rust authoring SDK и deterministic package tooling для operator-trusted in-process extensions. Package, допущенный при startup, может предоставить bounded external scalar types, native scalar и batch functions, binary operators, B-tree/hash/bitmap operator classes и bounded planner support. SQL транзакционно связывает exports с catalog 6.2, а protocol 18 сохраняет external type identity и codec revision на wire.

Host сохраняет владение storage, WAL, MVCC, catalog mutation, index pages, ACL и recovery. Packages загружаются только из exact absolute allowlist entries; network install, hot reload, version ranges и ALTER EXTENSION UPDATE отсутствуют. Proving extension radixdb-spatial проходит через public SDK с fixed и variable geometry types, native predicates, Morton-key B-tree index и residual recheck.

Bundled CLI workflows backup и logical export пока не загружают plugin allowlist и потому не являются поддержанным recovery path для extension-bound database.

Поддерживаются целевые платформы пакетов x86_64-unknown-linux-gnu и aarch64-unknown-linux-gnu. Target пакета и архитектура ELF должны совпадать с сервером; пакет для другой архитектуры отклоняется.

Начните с установки extensions, затем используйте руководство разработчика и cargo radixdb-plugin.

Внешний physical backup записывает покрытые checksum сведения о сборке, формате, базе и точном snapshot и восстанавливает только этот snapshot. Логический export использует нормализованный checksum содержимого; dump можно воспроизвести, импортировать в новый root, повторно открыть и экспортировать. Runtime status артефактов ограничен по объёму и сообщает о truncation.

CLI сохраняет уровень изоляции и savepoints в batch, откатывает ошибочный batch и показывает effective durability configuration. Снятые настройки cache и compression теперь отклоняются, а не игнорируются. Nullable indexed window partitions сохраняют группу NULL после cold storage и повторного открытия.

Protocol 18 не совместим по wire с protocol 14. Обновляйте server и client как один проверенный комплект, а при пересечении неподдерживаемой границы физического формата используйте logical export/import.

RadixDB 1.1.0 определяется аннотированным тегом v1.1.0 и использует wire protocol 14. Этот выпуск заложил первую опубликованную процедурную и ACL-основу, описанную ниже. Ограничения раздела относятся к 1.1, а не к выпускам 1.2.25 и 1.2.21 выше.

Версия 1.1 добавляет долговечные catalog objects для principals, roles, ACL entries, functions, procedures, triggers и jobs. Ограниченный procedural runtime использует существующие SQL parser, executor, transaction owner и путь MVCC/WAL. Реализованы typed calls, local variables, control flow, cursors, exception regions, динамический EXECUTE, транзакционные DML triggers и долговечные записи попыток jobs.

Контексты invoker/definer и права roles/objects проверяются в пути выполнения БД. Прикладная запись может атомарно публиковать audit и outbox rows, а ограниченное публичное чтение ORM использует ту же authority. См. PL/SQL, процедуры, триггеры, задания и контроль доступа.

Normal rollback остаётся вне synchronous durability deadline, но ошибки записи rollback marker передаются вызывающему коду. Publisher ownership отзывается при закрытии, а same-process lock handoff усилен.

База с catalog 6.0 открывается без автоматической перезаписи. Первая procedural- или ACL-DDL атомарно переводит каталог в exact minor 6.1. Обратного writer path нет, а бинарник, знающий только 6.0, отклоняет 6.1 fail closed. Сетевым контрактом этого выпуска остаётся protocol 14.

Перед сменой бинарника изучите обновление, а поддержку SQL проверяйте по матрице, не предполагая совместимость синтаксиса или wire protocol PostgreSQL.

Release gate сохранил checksum и access paths набора из 100 000 000 строк. Наибольшая указанная регрессия запроса равна 4,91%, что ниже фиксированного коридора 1,20 раза. Точная методика и привязка к исходникам находятся в тестах производительности.

Штатный сервер 1.1 остаётся loopback-only и не предоставляет principal login или транспортное шифрование. ACL применим через доверенный embedded-контекст или аутентифицированный gateway, но не является прямой аутентификацией недоверенного TCP-клиента. Штатный сервер также не запускает фоновый Job scheduler. Это явные границы продукта из глав аутентификации и заданий, а не возможности, подразумеваемые catalog model.

Версия 1.0.0 зафиксировала production-архитектуру catalog-artifact V6 и приняла свидетельства 100M NVMe, 20k memory и шестичасового HDD run. Также появился transport-independent ORM v1 с versioned IR, canonical JSON, стабильными schema descriptors, typed parameters и расширениями выполнения embedded/TCP.

Существующие данные прежних unnamed-catalog layouts не переписываются на месте. Миграция выполняется явным logical export/import в отдельно проверенное место назначения. Перед ней изучите обновление и резервное копирование.

Принадлежность выпуску не превращает распознанную parser форму в поддерживаемый SQL-контракт. Независимо проверяйте целевой выпуск, compatibility matrix и описанные ограничения.