RethinkDB

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

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

Ориентирована на применение для веб-приложений, требующих интенсивных обновлений базы данных. Отличительная особенность — поддержка реактивного стиля: база данных позволяет клиентскому приложению подписываться на изменения тех или иных данных[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.

Примечания

  1. Jeremy Zawodny, RethinkDB: Rethinking the Database using Modern Assumptions Архивная копия от 9 ноября 2016 на Wayback Machine, Linux Magazine, August 24, 2009
  2. Announcing RethinkDB 2.3.6: the first release under community governance - RethinkDB  (неопр.). Дата обращения: 21 августа 2017. Архивировано 17 июля 2017 года.
  3. Peter Wayner. 11 cutting-edge databases worth exploring now  (неопр.). InfoWorld (21 сентября 2015). Дата обращения: 8 ноября 2016. Архивировано 8 ноября 2016 года.

Литература

  • Jeremy Zawodny. RethinkDB: Rethinking the Database using Modern Assumptions  (неопр.). Linux Magazine (24 августа 2009). Дата обращения: 28 января 2016. Архивировано из оригинала 26 января 2016 года.
  • Slava Akhmechet. Build real-time Web apps with RethinkDB  (неопр.). InfoWorld (1 сентября 2015). Дата обращения: 28 января 2016.

Ссылки

  • rethinkdb.com — официальный сайт RethinkDB
  • Проект RethinkDB на сайте GitHub
  • RethinkDB и Rust 1.6 — Episode 0076. Интервью с создателем RethinkDB  (неопр.). DevZen Podcast (23 января 2016). Дата обращения: 28 января 2016.
  • Introducing the official RethinkDB Java client driver  (неопр.). RethinkDB blog (9 декабря 2015). Дата обращения: 14 сентября 2017.