← На главную

Jepsen нашла 96 проблем в ParticleDB

31.10.2026 13:39 · hackernews

Jepsen проверила версии ParticleDB с 1.1.4 по 1.1.18.11.rc-22 и описала 96 проблем. База Orkes на Rust объединяет транзакционный SQL, key-value хранилище, векторный поиск, аналитику и пользовательские функции для приложений и ИИ-агентов. Тестирование финансировала сама Orkes. Проверялись только одиночные узлы: предоставленные сборки не поддерживали репликацию Raft, поэтому поведение кластера в отчёт не вошло.

Большинство ошибок воспроизводилось без сбоев инфраструктуры — на одном сервере и зачастую с одним клиентом. Среди них были падения, взаимоблокировки, десятки секунд ожидания транзакций, нарушения NOT NULL и UNIQUE, повторяющиеся или пустые первичные ключи, неверные JOIN и строки, которые невозможно нормально изменить или удалить. Обработка предикатов могла возвращать неподходящие записи: например, условие WHERE 4 = 5 приводило к выдаче строки. Отдельные проблемы затрагивали совместимость с Postgres, включая аутентификацию и подготовленные запросы.

Jepsen также отметила противоречивую документацию. Рекламное заявление Full ACID соседствовало с поддержкой snapshot isolation, которая не обеспечивает полную изоляцию. Описания режимов транзакций и синхронизации WAL различались между сайтом, справкой CLI и внутренним руководством. Утверждение о формальной проверке через TLA+ нельзя было оценить, поскольку сама спецификация исследователям не была предоставлена.

К версии 1.1.18.11.rc-22 исчезли 86 из 96 выявленных проблем, но сохранялись наиболее серьезные нарушения. В режиме occ по умолчанию база теряла подтверждённые записи при обычной работе, а сильнейший режим serializable допускал внутренние аномалии и Lost Update. Orkes затем выпустила 1.1.19-rc.13 и заявила, что устранила все оставшиеся ошибки; Jepsen эту версию ещё не проверяла.

Для анализа использовались генеративные транзакционные нагрузки, проверка графов зависимостей Elle и сравнение простых SQL-последовательностей с PostgreSQL. Результат показывает не только конкретные дефекты, но и важность однозначных гарантий: без ясного описания режима пользователю трудно понять, какую согласованность и долговечность база действительно обещает.

Читать оригинал →