RethinkDB (RethinkDB)
RethinkDB | |
---|---|
Тип | Распределённая система управления базами данных[вд] |
Написана на | C++, JavaScript, Bash |
Операционные системы | Unix, Linux, OS X, BSD, Windows |
Первый выпуск | 24 июля 2009[1] |
Последняя версия | 2.4.4 (декабрь 11, 2023 ) |
Репозиторий | 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.
Примечания
[править | править код]- ↑ Jeremy Zawodny, RethinkDB: Rethinking the Database using Modern Assumptions Архивная копия от 9 ноября 2016 на Wayback Machine, Linux Magazine, August 24, 2009
- ↑ Announcing RethinkDB 2.3.6: the first release under community governance - RethinkDB . Дата обращения: 21 августа 2017. Архивировано 17 июля 2017 года.
- ↑ 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.