TitanDB - Реляционная СУБД с нуля на Rust Всем привет! Хочу представить вашему вниманию мой проект — TitanDB. Это полноценная реляционная система управления базами данных (РСУБД), написанная полностью на языке Rust. Проект был создан с целью глубокого изучения внутреннего устройства баз данных, и в качестве архитектурного ориентира я использовал PostgreSQL. Ключевые особенности проекта 1. ACID-транзакции: Я реализовал полноценный менеджер транзакций, который гарантирует целостность данных. MVCC (Multi-Version Concurrency Control): Система управления параллельным доступом позволяет операциям чтения не блокировать операции записи, и наоборот. Write-Ahead Logging (WAL): Для обеспечения атомарности и долговечности используется журнал упреждающей записи. Обнаружение Deadlock'ов: Реализован механизм обнаружения и разрешения взаимных блокировок на основе графа ожидания (waits-for graph). 2. Модульное хранилище "Bedrock": Это ядро СУБД, отвечающее за надёжное хранение данных на диске. Менеджер буферного пула: Эффективный кэш для дисковых страниц в памяти, использующий алгоритм вытеснения Clock-Sweep (Second-Chance). B-Tree индексация: Полнофункциональная реализация B-Tree для быстрого поиска, вставки и удаления данных. 3. Продвинутый обработчик запросов: Я создал сложный конвейер для преобразования SQL-запросов в конечный результат. SQL-парсер: Написан с использованием библиотеки chumsky. Оптимизатор запросов на основе стоимости (Cost-Based Optimizer): Система анализирует статистику таблиц (команда ANALYZE) для выбора наиболее эффективного плана выполнения запроса, интеллектуально переключаясь между последовательным сканированием (Sequential Scan) и сканированием по индексу (Index Scan). Несколько алгоритмов JOIN: Поддерживаются Nested Loop, Hash Join и Merge Join для эффективной обработки сложных запросов. 4. Совместимость с протоколом PostgreSQL. GitHub