futriix/What's new.md

42 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

> [!CAUTION]
> **Категорически не использовать в продакшене, так как это тестовая версия!!!**
# Изменения (по состоянию на 26.11.2025)
> [!NOTE]
> * Сервер-приложений "falcot" был переименован в futriix, оболочка сервера приложений интегрирована в клиент субд futriix
> * Добавлена поддержка авторизации по протоколу "JWT" через хранимые процедуры
> * Добавлена поддержка выгрузка данных из субд в формате ".csv"
> * Операции с транзакциями были переименованы в лаконичный вид "begin", "commit", "rollaback"
> * Сокращено общее количество файлов с исходным кодом проекта с 19 до 14 за счёт объединения модулей имеющие сходный функционал
> * Добавлена поддержка WAL, timestamp
> * Добавлена поддержка протокола "Raft" в самом простом, базовом варианте (нет split-brain, нет кросс-датацентровых heartbeat)
> * Удален режим "Standalone" - в mod.rs изменен вывод режима работы только на "cluster"
> * Добавлена проверка кластера в sharding.rs - команды шардинга теперь требуют наличия как минимум 2 узлов
> * Добавлена команда cluster.rebalance в lua_shell.rs для выполнения полной ребалансировки
> * Расширен функционал команды "cluster.rebalance" таким образом, чтобы при её выполнении происходит ребалансировка не только созданных ранее шардов, но и созданных узлов в кластере. Расширена ребалансировка в sharding.rs - добавлена функция rebalance_nodes() для ребалансировки узлов кластера
> * Обновлен конфигурационный файл - удалены упоминания standalone режима
# Изменения (по состоянию на 28.11.2025)
> [!IMPORTANT]
**Исправленные баги**
> * В Транзакциях - В методе "execute_command" для "CommitTransaction" отсутствует проверка на существование транзакции перед выполнением команд.
> * В Хранимых процедурах - В методе "CreateProcedure" процедуры сохраняются в общей хэш-таблице, но не в отдельной коллекции для лучшего управления.
> * В Индексах - В методе "create_document" проверка уникальности индексов выполняется после вставки документа, что может привести к нарушению уникальности.
> * В сервере приложений исправлена ошибка "соединение сброшено", при попытки открытия любого файла с поддерживаемым в сервере-приложений MIME-типом
> [!IMPORTANT]
> **Исправления**
> * В транзакциях добавлена проверка существования перед коммитом
> * Хранимые процедуры теперь сохраняются в коллекции _procedures
> * Логика проверки индексов исправлена для предотвращения нарушений уникальности
> * Исправлены две ошибки в базовых компонентах СУБД (CRUD, транзакции, индексы):
> * Неправильная логика проверки уникальности в методе create_document
> * Ошибка в обработке процедур в execute_command
> * Исправлены три ошибки в компонентах шардирования(некорректная обработка Raft состояния), репликации и выгрузкой данных в формате "CSV"(неправильный расчет прогресса и обработка ошибок)
> * Произведён рефакторинг утилиты тестирования "integration_tests.rs"