RethinkDB

RethinkDB — распределённая документоориентированная СУБД с открытым исходным кодом, сохраняющая данные в бессхемном JSON-формате.

RethinkDB
Тип Распределённая система управления базами данных[d]
Написана на C++, JavaScript, Bash
Операционная система Unix, Linux, OS X, BSD, Windows
Первый выпуск 24 июля 2009 (2009-07-24)[1]
Последняя версия 2.4.1 (август 13, 2020 (2020-08-13))
Состояние активно разрабатывается[2]
Лицензия Apache License 2.0 (клиентский драйвер), GNU Affero General Public License (сервер)
Сайт rethinkdb.com

Ориентирована на применение для веб-приложений, требующих интенсивных обновлений базы данных. Отличительная особенность — поддержка реактивного стиля: база данных позволяет клиентскому приложению подписываться на изменения тех или иных данных[3].

Транслятор языка запросов в RethinkDB, называемого ReQL, реализован не на уровне сервера, а встраивается в качестве предметно-ориентированного языка в язык, на котором пишется клиентское приложение. Запросы ReQL представляют собой цепочку вызовов функций. ReQL официально реализован (в составе драйвера базы данных) на Java, Ruby, Python и JavaScript (включая Node.js), есть также неофициальные драйвера для других языков, в частности для C#, Go, Haskell, Erlang, Lua и PHP.

Таблицы базы данных хранят JSON-документы, допускающие любой уровень вложенности. Каждый документ имеет уникальный для таблицы-родителя первичный ключ «id», ссылаясь на который можно получить конкретный документ. Каждая функция ReQL-запроса работает с данными, полученными из предыдущей функции цепочки.

Драйвер базы данных транслирует запрос в специальный формат «RethinkDB’s JSON wire protocol format», реализованный поверх JSON.

ПримечанияПравить

ЛитератураПравить

СсылкиПравить