Распределенная мультимодельная многопоточная система управления базами данных в памяти
Fluidb — это распределённая многопоточная с возможностью хранения неизменяемых данных система управления базами данных с открытым исходным кодом (лицензия BSD-3-Clause), распространяемая по лицензии BSD-3-Clause, исходный код которой также распространяется по лицензии BSD-3-Clause.
Наша цель: «Создать многопоточное, распределённое высокопроизводительное приложение на основе модульной архитектуры, максимально простое в использовании с хранением неизменяемых данных»
Системные требования
- Процессоры: Intel или AMD
- Разрядность процессора: 64-bit
- Объём ОЗУ: 1 ГБ (или больше)
- Количество узлов в кластере: 3 (настоятельно рекомендуется)
- Операционная система: Только UNIX-подобная (Linux, BSD, MacOS X)
- Дополнительные утилиты: curl или wget (для установки приложения из скриптов)
Почему fluidB?
Ниже приведена сравнительная таблица, сравнивающая fluidb c популярными субд Sqlite и rqlite
Параметры сравнения | Fluidb | Sqlite | Rqlite |
---|---|---|---|
Модели данных | «Мультимодельная», «Темпоральная», | «Реляционная» | «Реляционная» |
Поддержка SQL | Да | Да | Да |
Тип репликация | Репликация с несколькими источниками (Multi-source replication) | Нет | Нет |
Наличие триггеров | Да | Да | Да |
Наличие установочных скриптов | Да | Нет | Нет |
Язык(и) на котором написана субд | Go, bash | С | Go |
Внешние ключи (Foreign Keys) | Да | Да | Да |
Язык для написания внутренних скриптов, расширяющий базовые функциональные возможности | SQL | SQL | SQL |
Операционная система | BSD Linux MacOS X | BSD Linux Windows | BSD Linux MacOS X Windows |
Алгоритм для решения задач консенсуса | Raft | Нет | Raft |
Благодарности
- Martin Sumner, Хочу выразить огромную благодарность за все, что Вы сделали!!! Спасибо!!!
- Josh Baker Хочу выразить свою признательность за все ваши старания!!!
Области применения
- Агрегация логов (объединение в единую систему на отдельном сервере, файлов, в которые записывается важная информация о работе системы, чаще всего сервера)
- Надёжный кэш – это высокоскоростной уровень хранения, на котором требуемый набор данных, как правило, временного характера. Доступ к данным на этом уровне осуществляется значительно быстрее, чем к основному месту их хранения. С помощью кэширования становится возможным эффективное повторное использование ранее полученных или вычисленных данных.
- Сервер очереди (Очередь – это структура данных, которая соответствует принципу: первый пришел – первый вышел. Сервер очередей – это отдельный процесс или служба, которая принимает сообщения от производителей (Producer) и распределяет их между потребителями (Consumer) сообщений. Чаще всего применяется для обработки большого количества сообщений поступающих в систему в режиме реального времени)
- Платформа виртуализации— Приложение, получающее данные из нескольких источников и позволяющее обрабатывать их как единую базу данных в формате json.
- Платформа для построения статический web-сайтов (т.е. сайтов состоящих только из html-страниц, связанных между собой гиперссылками)