В 2014 году Филип О’Тул представил проект rqlite — первую систему с открытым исходным кодом, которая объединила базу данных SQLite с алгоритмом консенсуса Raft. Идея заключалась в том, чтобы реплицировать записи в кластере, предотвращая потерю данных при выходе из строя одного из узлов. Сегодня «распределенный SQLite» превратился в целую категорию продуктов, однако в начале пути проект был уникальным решением для специфических задач.
Развитие экосистемы
За минувшее десятилетие подходы к репликации SQLite существенно эволюционировали. О’Тул выделяет три ключевых направления, которые сформировали этот рынок:
- Консенсус (CP-системы): rqlite и dqlite от Canonical используют Raft для обеспечения строгой согласованности данных. Это выбор для тех, кто не может ждать восстановления после сбоя.
- Потоковая передача: Litestream от Бена Джонсона предложил иной путь — трансляцию WAL-журнала в облачное хранилище S3. Это позволяет восстанавливать данные без необходимости в сложном кластере.
- Слияние (AP-системы): Проекты вроде cr-sqlite используют CRDT, позволяя нескольким узлам записывать данные независимо с последующим разрешением конфликтов, что идеально для локальных приложений.
От инструментов к сервисам
Если ранние проекты, такие как rqlite, задумывались как автономное программное обеспечение для самостоятельного развертывания, то современные решения сместились в сторону облачных сервисов. Компании вроде Turso (приобретенная Supabase) и платформы уровня Cloudflare D1 превратили технологию в управляемый продукт. По мнению автора, это закономерный итог: инфраструктурные идеи долгое время развивались как open-source, прежде чем стать коммерчески успешными сервисами.
Несмотря на появление множества альтернатив, rqlite продолжает развиваться. О’Тул подчеркивает, что выбор между существующими решениями зависит от конкретной задачи: нужна ли пользователю высокая доступность, дешевое восстановление или работа в режиме «локально-первый».
Источник: philipotoole.com