2025-11-27 22:04:41 +00:00
> [!CAUTION]
2025-12-19 22:27:30 +00:00
> **ALPHA VERSION**<br><br>**Категорически не использовать в продакшене, так как это тестовая версия!!!**
2025-11-27 22:04:41 +00:00
2025-11-29 14:49:54 +00:00
# Изменения (по состоянию на 26.11.2025)
2025-11-27 22:04:41 +00:00
2025-11-28 21:37:43 +00:00
> [!NOTE]
2025-12-04 18:58:00 +00:00
**Улучшения и/или добавление функционала**
2025-11-27 22:04:41 +00:00
> * Сервер-приложений "falcot" был переименован в futriix, оболочка сервера приложений интегрирована в клиент субд futriix
> * Добавлена поддержка авторизации по протоколу "JWT" через хранимые процедуры
> * Добавлена поддержка выгрузка данных из субд в формате ".csv"
> * Операции с транзакциями были переименованы в лаконичный вид "begin", "commit", "rollaback"
> * Сокращено общее количество файлов с исходным кодом проекта с 19 до 14 за счёт объединения модулей имеющие сходный функционал
> * Добавлена поддержка WAL, timestamp
> * Добавлена поддержка протокола "Raft" в самом простом, базовом варианте (нет split-brain, нет кросс-датацентровых heartbeat)
> * Удален режим "Standalone" - в mod.rs изменен вывод режима работы только на "cluster"
2025-11-29 21:13:26 +00:00
> * Добавлена проверка кластера в sharding.rs - команды шардинга теперь требуют наличия как минимум 3 узлов
2025-11-27 22:04:41 +00:00
> * Добавлена команда cluster.rebalance в lua_shell.rs для выполнения полной ребалансировки
> * Расширен функционал команды "cluster.rebalance" таким образом, чтобы при её выполнении происходит ребалансировка не только созданных ранее шардов, но и созданных узлов в кластере. Расширена ребалансировка в sharding.rs - добавлена функция rebalance_nodes() для ребалансировки узлов кластера
> * Обновлен конфигурационный файл - удалены упоминания standalone режима
2025-11-28 21:37:43 +00:00
> [!IMPORTANT]
2025-11-28 21:35:58 +00:00
**Исправленные баги**
2025-11-28 20:52:08 +00:00
> * В Транзакциях - В методе "execute_command" для "CommitTransaction" отсутствует проверка на существование транзакции перед выполнением команд.
> * В Хранимых процедурах - В методе "CreateProcedure" процедуры сохраняются в общей хэш-таблице, но не в отдельной коллекции для лучшего управления.
> * В Индексах - В методе "create_document" проверка уникальности индексов выполняется после вставки документа, что может привести к нарушению уникальности.
> * В сервере приложений исправлена ошибка "соединение сброшено", при попытки открытия любого файла с поддерживаемым в сервере-приложений MIME-типом
2025-11-28 21:43:45 +00:00
> [!IMPORTANT]
2025-12-04 18:55:18 +00:00
> **Исправленные баги**
2025-11-28 21:40:55 +00:00
> * В транзакциях добавлена проверка существования перед коммитом
> * Хранимые процедуры теперь сохраняются в коллекции _procedures
> * Логика проверки индексов исправлена для предотвращения нарушений уникальности
2025-11-29 14:39:03 +00:00
> * Исправлены две ошибки в базовых компонентах СУБД (CRUD, транзакции, индексы):
2025-11-29 14:40:05 +00:00
> * Неправильная логика проверки уникальности в методе create_document
> * Ошибка в обработке процедур в execute_command
2025-11-29 14:39:03 +00:00
> * Исправлены три ошибки в компонентах шардирования(некорректная обработка Raft состояния), репликации и выгрузкой данных в формате "CSV"(неправильный расчет прогресса и обработка ошибок)
2025-12-04 18:51:31 +00:00
2025-11-30 14:44:08 +00:00
> [!NOTE]
2025-12-04 18:58:00 +00:00
**Улучшения и/или добавление функционала**
2025-11-30 14:44:08 +00:00
> * Заменён логотип проекта на новый
2025-11-30 14:45:07 +00:00
> [!IMPORTANT]
2025-12-04 18:55:18 +00:00
**Исправленные баги**
2025-11-30 14:44:08 +00:00
> * Исправлена ошибка условия (изменено значение с 2-х узлов на 3 узла) в реализации протокола Raft, согласно которому минимальное возможное количество узлов для запуска кластера составляло 2 узла
> * Произведён рефакторинг утилиты тестирования "integration_tests.rs"
2025-11-30 20:50:18 +00:00
> * Написан скрипт "urjenc.lua" производящий трансляцию URL в формате JSON в формат http
2025-12-04 18:51:31 +00:00
# Изменения (по состоянию на 04.12.2025)
> [!IMPORTANT]
2025-12-04 18:55:18 +00:00
**Исправленные баги**
2025-12-04 18:51:31 +00:00
> * Исправлена ошибка в методе query_documents: Н е было реализации фильтрации документов.
> * Добавлен метод filter_documents для фильтрации по JSON фильтру
> * Исправлена ошибка в методе update_indexes: Неправильная работа с DashMap (отсутствовало value_mut())
> * Исправлен доступ к изменяемым записям DashMap
> * Исправлена ошибка в триггерах: Н е было хранилища триггеров в Database
> * Добавлено поле triggers в структуру Database
> * Исправлена ошибка в транзакциях: Н е было проверки существования триггеров перед выполнением
> * Добавлена проверка и выполнение триггеров в CRUD операциях
2025-12-04 18:53:55 +00:00
> [!IMPORTANT]
2025-12-04 18:51:31 +00:00
> * Исправлена ошибка в Raft логике: Н е было таймера выборов для followers
> * Добавлен таймер выборов в run_replication_loop
> * Исправлена ошибка в проверке кластера: Жестко закодировано требование 3 узлов
> * Исправлена ошибка Добавлена конфигурация min_nodes_for_cluster
> * Исправлена ошибка в репликации: Н е было проверки сформированности кластера перед репликацией
> * Добавлены проверки в replicate_command и send_heartbeat
> * Исправлена ошибка в миграции шардов: Н е было проверки существования узлов
> * Добавлена проверка существования исходного и целевого узлов
2025-12-04 18:53:55 +00:00
> [!IMPORTANT]
2025-12-04 18:51:31 +00:00
> * Исправлена ошибка парсинга CSV: Неправильная обработка типов данных
> * Улучшен метод parse_field_value для правильного определения типов
> * Исправлена ошибка экспорта: Н е было обработки вложенных JSON структур
> * Добавлен метод value_to_string для преобразования любых JSON значений
> * Исправлена ошибка в работе с путями: Использовались абсолютные пути из конфигурации
2025-12-11 22:27:27 +00:00
> * Добавлено использование относительных путей с созданием директорий
# Изменения (по состоянию на 12.12.2025)
> [!NOTE]
**Улучшения и/или добавление функционала**
2025-12-11 22:30:11 +00:00
> * В с е вызовы функции println!() в серверных модулях были заменены на вызовы log_to_file() для записи в файл "futriix.log"
> * Вызовы функции eprintln!() для ошибок в серверных модулях также были заменены на log_to_file()
2025-12-11 22:27:27 +00:00
> * HTTP запросы теперь логируются в файл вместо вывода в консоль
2025-12-11 22:31:32 +00:00
> * Статистика HTTP сервера-приложений периодически записывается в лог каждые 60 секунд
2025-12-11 22:30:11 +00:00
> * Информация о старте сервера-приложений, создании директорий и инициализации компонентов теперь сохраняется в лог
2025-12-19 22:25:05 +00:00
2025-12-21 22:16:23 +00:00
# Изменения (по состоянию на 22.12.2025)
> [!IMPORTANT]
**Исправленные баги**
> * Исправлена ошибка цветового вывода служебных сообщений в терминале, теперь в любом терминале любой популярной графической оболочки Unix-like системы служебные сообщения при запуске futriix будут отображаться одинаково.