О проекте

На наш взгляд, большинство существующих баз данных, относящихся к разным категориям, реляционные, класса NOSQL, NewSQL: OrientDB, MemSQL, к сожалению имеют один общий фатальный недостаток- они пытаются быть универсальным решением для абсолютно любых задач.

Мы целенаправленно не создаём готовый, функционально ограниченный (нерасширяемый) продукт, поскольку мы решили следовать, старой поговорке «дай человеку рыбу, и он будет сыт один день, научи его ловить рыбу, и он будет сыт всегда». Цель Fluentbase-предоставить пользователям инструменты («удочку»), позволяющие решать различные задачи, в том числе и выходящие за рамки классических шаблонов.

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

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

Общая схема работы приложений Fluentbase

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

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

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

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

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

Пример ассоциативного массива

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

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

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

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

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

EnglishРусский