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

Квалификация выпуска

RadixDB 1.2.25 - текущая стабильная упакованная версия. В этом руководстве stable означает, что зафиксированный кандидат прошёл обязательные проектные ворота корректности, восстановления, совместимости, документации и упаковки. Этот статус не означает, что RadixDB уже обладает историей внедрений, экосистемой или эксплуатационным охватом базы, которая десятилетиями разрабатывается публично.

Версия 1.2.25 является первым публично упакованным выпуском, но не первой испытанной сборкой RadixDB. Движок разрабатывался и проходил квалификацию до создания публичного репозитория GitHub и бинарной поставки. Поэтому статус выпуска определяется зафиксированными результатами испытаний, а не возрастом публичного репозитория.

Свойство Квалифицированное значение
Выпуск 1.2.25
Аннотированный тег v1.2.25
Коммит исходников 63f45972475dd14825690009ee9e10e97707a3c7
Wire-протокол 18
Rust toolchain 1.97.0
Обязательный CI тега Успешно завершён на точном коммите исходников
Упакованная платформа Linux x86-64 GNU; архиву 1.2.25 требуется glibc 2.38 или новее

Аннотированный тег и опубликованные архивы являются неизменяемыми идентификаторами выпуска. Последующие исправления документации могут уточнять контракт, но не меняют прошедший квалификацию бинарный файл.

Release CI запускает полный default-инвентарь workspace для всех Cargo targets. Исходники выпуска содержат 6 949 именованных тестов корректности: 3 100 unit-тестов и 3 849 integration или regression-тестов. Та же инвентаризация показывает 54 Criterion benchmark-сценария; они учитываются отдельно и не выдаются за тесты корректности.

Количество можно воспроизвести без выполнения тестов:

Окно терминала
cargo test --locked --workspace --all-targets -- --list --format terse

Обязательный CI не только перечисляет, но и выполняет default-инвентарь:

Окно терминала
cargo test --locked --workspace --all-targets --no-fail-fast

В обязательные ворота тега также входят:

  • исполняемые doctests и отдельный тест контракта документации публичного API;
  • форматирование, строгий Clippy и проверка неизменности Cargo.lock;
  • контрактные тесты SQL types, partial-index TCP, restore, COPY FROM, клиента и публичной сборки;
  • differential SQLite oracles, failpoint I/O, file-backed execution, no-default-feature и optional-feature проверки;
  • cross-компиляция Linux AArch64 и выбранные проверки SIMD и extension ABI под QEMU;
  • привязанные к ревизии минимумы покрытия 75% для lines, functions и regions и 55% для branches. Для выпуска зафиксированы соответственно 77,32%, 75,11%, 77,51% и 61,79%;
  • сборка release-бинарников, проверка lifecycle, server/client smoke и offline public examples;
  • двуязычное Astro-руководство, паритет содержимого, ссылки, упаковка публикации и desktop/mobile browser-сценарии.

Успешный запуск тега является авторитетным результатом этих автоматических ворот.

Доказательства восстановления и длительной нагрузки

Заголовок раздела «Доказательства восстановления и длительной нагрузки»

Крупные квалификационные прогоны сохраняют собственные идентификаторы бинарных файлов и исходников. Они подтверждают принятое поведение линии движка V6 и 1.2, но не переименовываются задним числом в новые прогоны финального тега 1.2.25.

  • Проверка 1.2 на исходниках 23bf35df011aae6816d77578be96074b02bc363c повторно открыла и проверила каноническую базу на 100 миллионов строк, сохранив checksum 100000000:49734600639880 без ошибок хранилища или ресурсов.
  • Отчёт шестичасового испытания для исходников engine/soak dd0bf75c9176bceb70ce8f1d2a07057610ec381b фиксирует 2 351 035 операций, лестницу до 256 клиентов и 2 100 успешных проверок инвариантов без нарушений на машине с 1,76 ГиБ ОЗУ.
  • В ходе endurance-прогона проверены graceful reopen, reopen после завершения процесса, checkpoints, публикация snapshot, restore в отдельную базу и совпадение логических digest источника и восстановленной базы 59b56e6b7bdaf846dd167aa01185222c7af95aec54593b9a05927b4c0abda4b0.
  • Во время прогона реальный временный сбой транспорта SATA прервал flush. Ядро восстановило связь, движок продолжил работу, а финальный recovery oracle прошёл. Это доказательство для наблюдавшегося временного сбоя, а не заявление о сохранности после окончательной утраты носителя.
  • Release CI сохраняет регрессионное покрытие восстановления семействами тестов WAL, checkpoint, corruption, snapshot, restore и process abort. Процедуры резервного копирования и восстановления отдельно описаны в разделе «Резервное копирование и восстановление».

Публичный архив доказательств сохраняет принятые отчёты, условия стендов, точные ревизии, checksums и известные более медленные сценарии.

Статус стабильной относится к документированным SQL, протоколу 18, конфигурации и границе хранилища V6. Тесты покрывают reopen того же формата, WAL replay, публикацию каталога, checkpoints, snapshots, restore и отдельные fail-closed переходы форматов. Авторитетным описанием SQL и интерфейсов служит матрица совместимости.

Статус stable не обещает открытия или in-place обновления произвольных старых физических форматов. Неподдерживаемые физические поколения отклоняются; для перехода через такую границу используется отдельно проверенная процедура логического export/import из раздела «Обновление RadixDB».

Публичный Nightly workflow задаёт чередующиеся shards mutation testing, группы Miri, stress tests и sanitizer jobs. Это постоянно действующие средства разработки. Полный успешный all-shard Nightly run не приложен к тегу 1.2.25, поэтому mutation testing и остальные группы Nightly не учитываются как привязанное к этому выпуску доказательство статуса stable.

Такое разделение делает заявление воспроизводимым: обязательные ворота тега связаны с одним успешным запуском, а продолжающийся или выполняемый по частям анализ не превращается незаметно в приёмку выпуска.

Классификация 1.2.25 как stable не заявляет:

  • длительную независимую production-историю, широкую экосистему интеграций или зрелый рынок сторонней эксплуатационной поддержки;
  • встроенные replication, automatic failover, high availability, PITR к произвольной позиции WAL, распределённую запись или автоматический sharding;
  • serializable isolation или совместимость с PostgreSQL wire protocol;
  • сохранность после окончательной утраты диска, ложного подтверждения flush или всех возможных сбоев питания и файловой системы;
  • endurance-результат на 24 или 72 часа, throughput SLA или универсальное превосходство в быстродействии;
  • поддерживаемый готовый бинарник за пределами Linux x86-64 GNU. Проверка AArch64 в CI подтверждает переносимость, но не является обязательством поставлять готовый пакет для этой платформы;
  • совместимость бинарного архива 1.2.25 с версиями glibc ниже 2.38;
  • автоматическую проверку прикладной схемы, нагрузки, графика резервного копирования или целевых показателей восстановления.

До production-эксплуатации выполните собственный приёмочный профиль приложения и пробное восстановление на целевом оборудовании и файловой системе. Для выбора класса нагрузки используйте «Выбор RadixDB», а структурные и настраиваемые границы приведены в «Ограничениях».

Почему первый публичный выпуск может быть стабильным

Заголовок раздела «Почему первый публичный выпуск может быть стабильным»

Статус выпуска определяется зафиксированными результатами квалификационных испытаний, а не возрастом публичного репозитория GitHub.

Эти два факта существуют одновременно: движок и упакованный выпуск прошли указанные технические ворота, а публичная production-история и окружающая экосистема пока молоды. Статус stable у 1.2.25 описывает первый факт, а эта страница явно фиксирует второй.