💻toyDB — распределенная БД SQL на Rust; написана в качестве обучающего проекта, который поможет разобраться в подобных БД
На самом высоком уровне toyDB состоит из кластера узлов, которые выполняют SQL-транзакции на реплицированной машине состояний. Клиенты могут подключаться к любому узлу кластера и отправлять SQL-запросы.
toyDB нацелена на обеспечение сильной согласованности и сериализуемости, но пока ещё немного не дотягивает до них.
В кластере toyDB используется алгоритм Raft, который допускает выход из строя любого узла, пока большинство узлов остаются доступными. Один узел избирается лидером и передает команды остальным, которые применяют их к локальным копиям машины состояний. Если лидер потерян, избирается новый лидер, и кластер продолжает работу.
toyDB поддерживает большинство распространенных функций SQL, включая объединения, агрегирующие функции и ACID.
🖥 GitHub
🟡 Доки
@sqlhub
Post #1285
8.36K

- ❤ 8
- 👍 5
- 🔥 2