О проекте

Распределенная мультимодельная многопоточная система управления базами данных в памяти
Содержание
  1. О проекте
  2. Области применения

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

Параметры сравненияFluidbSqliteRqlite
Модели данных«Мультимодельная», «Темпоральная», «Реляционная»«Реляционная»
Поддержка SQLДаДаДа
Тип репликацияРепликация с несколькими источниками (Multi-source replication)НетНет
Наличие триггеровДаДаДа
Наличие установочных скриптовДаНетНет
Язык(и) на котором написана субдGo, bashСGo
Внешние ключи (Foreign Keys)ДаДаДа
Язык для написания внутренних скриптов, расширяющий базовые функциональные возможностиSQLSQLSQL
Операционная системаBSD
Linux
MacOS X
BSD
Linux
Windows
BSD
Linux
MacOS X
Windows
Алгоритм для решения задач консенсусаRaftНетRaft

Благодарности

  • Martin Sumner, Хочу выразить огромную благодарность за все, что Вы сделали!!! Спасибо!!!
  • Josh Baker Хочу выразить свою признательность за все ваши старания!!!

Области применения

  • Агрегация логов (объединение в единую систему на отдельном сервере, файлов, в которые записывается важная информация о работе системы, чаще всего сервера)
  • Надёжный кэш – это высокоскоростной уровень хранения, на котором требуемый набор данных, как правило, временного характера. Доступ к данным на этом уровне осуществляется значительно быстрее, чем к основному месту их хранения. С помощью кэширования становится возможным эффективное повторное использование ранее полученных или вычисленных данных.
  • Сервер очереди (Очередь – это структура данных, которая соответствует принципу: первый пришел – первый вышел. Сервер очередей – это отдельный процесс или служба, которая принимает сообщения от производителей (Producer) и распределяет их между потребителями (Consumer) сообщений. Чаще всего применяется для обработки большого количества сообщений поступающих в систему в режиме реального времени)
  • Платформа виртуализации— Приложение, получающее данные из нескольких источников и позволяющее обрабатывать их как единую базу данных в формате json.
  • Платформа для построения статический web-сайтов (т.е. сайтов состоящих только из html-страниц, связанных между собой гиперссылками)