О проекте

Существует много различных типов баз данных, такие как Реляционные базы данных, базы данных класса NOSQL, такие как: семейство столбцов, графовые субд, документные и др., базы данных семейства NewSQL— OrientDB, MemSQL.

К сожалению, большинство из них слишком сложны, некоторые плохо масштабируются, но все они имеют один общий фатальный недостаток- они пытаются быть универсальным инструментом, для решения абсолютно любых задач.

Кратко об архитектуре проекта

Fluentbase— Это проект, состоящий из двух комплементарных частей: специальной, геопространственной СУБД (Fluentbase) предназначенной для хранения данных геолокации в памяти, совмещенной с сервером-геозон и http-сервера для работы с динамическим контентом (flunix), способного обрабатывать скрипты на языке программирования Lua.

Проект построен на основе модели «клиент-сервер». Надёжность хранения данных в субд обеспечивает алгоритм Raft. По умолчанию Fluentbase использует номер порта 9470, а также формат JSON для хранения данных. Http-сервер flunix по умолчанию использует номер порта 3000.

Наша СУБД в отличии от большинства, является специальной и направлена на решение узкого круга задач, а именно: хранения и отображения данных, о подвижных, наземных объектах (такие, как например, координаты, определяющие местоположение конкретного автомобиля в установленный промежуток времени) в режиме реального времени. А кроме того, хранения данных геолокации, полезных, например, при поиске близлежащих объектов, по заданным координатам.

О модели хранения Fluentbase

Fluentbase использует модель «ключ-значение» для хранения данных, хранящееся в оперативной памяти. Согласно данной парадигме, данные хранятся в виде ассоциативного массива, который в свою очередь может быть размещён на различных носителях: жёстком диске, твердотельном накопителе, оперативной памяти.

Ассоциативный массив — это абстрактный тип данных, который позволяет хранить пары форм (ключ, значение) и поддерживает следующие операции: добавление пары, поиск пары по ключу, удаление пары по ключу. Но он не может хранить две пары с одинаковыми ключами.

Примером ассоциативного массива может быть телефонный справочник, в котором записаны имена и номера ваших друзей. Ключ в этом примере — номер телефона, а значение — имя вашего друга.

Кейсы применения:

  • Хранение данных геолокации
  • Определение текущего местоположение объекта (например, водителя такси, или машины скорой помощи)
  • Поиск близлежащих объектов, в заданной окрестности (кафе, магазинов, музеев)
  • Сервер очереди
  • Полная замена Memcached, т.к. Для Fluentbase обеспечивает репликацию, более длинные ключи и значения, возможность восстановления кэша с диска и. т. д.
  • СУБД для небольших приложений — сокращения ссылок, изображений, микроблогов

Отличительные особенности субд:

  • Отсутствие поддержки ACID-транзакций
  • Обработка данных в режиме реального времени
  • Горизонтальное масштабирование
  • Хранение данных в оперативной памяти
  • Поддержка асинхронной репликации из коробки
  • Пространственные индексы
  • Возможность написания Lua-скриптов, на встроенном сервере-геозон, т.е. реализация приложения «поверх» базы

Попробуйте насладиться нашим продуктом…

EnglishРусский