The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск СУБД RethinkDB 2.0

20.04.2015 23:15

Доступен выпуск документо-ориентированной СУБД RethinkDB 2.0, нацеленной на хранение данных в формате JSON и предоставляющей специализированный язык запросов ReQL. Выпуск RethinkDB 2.0 позиционируется как первый релиз, пригодный для промышленного внедрения. Код СУБД написан на языке С++ и распространяется под лицензией AGPLv3. Библиотеки для работы с RethinkDB официально предоставляются для JavaScript, Python и Ruby, неофициально сообществом развиваются драйверы для многих других языков, включая C++, PHP, Perl и Go.

Ключевым отличием RethinkDB от других СУБД является реализация обратной модели доставки результатов запроса. Если традиционная модель "запрос-ответ" требует для отслеживания изменений периодической повторной отправки запросов, то RethinkDB позволяет подписаться на изменения (push-архитектура), т.е. даёт возможность отправить запрос один раз и в live-режиме непрерывно получать информацию об изменении связанных с ним результатов. Подобный подход информирования приложения об изменениях позволяет существенно упростить архитектуру приложений, обрабатывающих данные в режиме реального времени, и уйти от использования внешних очередей сообщений.

Второй важной особенностью RethinkDB является язык запросов ReQL, который интегрируется в объектную модель различных языков программирования. При использовании ReQL запросы формируются в форме обращения к объекту, например, для отслеживания изменений в таблице, в который поле "db" равно "prod", можно выполнить "r.db('rethinkdb').table('stats').filter({ 'db': 'prod' }).changes().run(conn)", а для выборки записей, в которых значение поля "episodes" больше 100 - "r.table('tv_shows').filter(r.row('episodes').gt(100))". ReQL поддерживает создание таблиц (каждая запись может иметь свою структуру), группировку результатов, агрегатные функции, возможность использования в запросах кода на JavaScript и регулярных выражений. Для обработки JavaScript-функций используется движок V8.

Некоторые другие особенности RethinkDB:

  • Возможность управления работой СУБД, в том числе анализ статистики и перенос данных между узлами в кластере, через встроенный Web- или CLI-интерфейс.
  • API для монтиринга за работой СУБД;
  • Удобная система настройки репликации на другой сервер или шардинга данных в кластере. Поддержка как асинхронной, так и синхронной репликации;
  • Механизм кэширования запросов с произвольной настройкой размера кэша;
  • Возможность подсоединения клиента к любому узлу кластера. Все запросы будут автоматически маршрутизированы на нужные узлы. Если запросом охвачены данные на нескольких узлах, то запрос будет разделён на подзапросы к разным серверам, которые будут выполнены параллельно, а затем агрегированы для получения сводного результата;
  • Возможность использования механизма map-reduce;
  • Размещение данных в B-Tree и хранение с использованием лог-подобных структур, созданных с оглядкой на архитектуру Btrfs. Наличие выполняемого в фоне инкрементального сборщика мусора и упаковщика данных. Гарантирование непротиворечивости данных после сбоя;
  • Гибкая система индексов с поддержкой первичных и вторичных ключей, геопространственных индексов, возможностью индексации по произвольным выражениям. Каждый запрос может использовать только один индекс.


  1. Главная ссылка к новости (http://rethinkdb.com/blog/2.0-...)
  2. OpenNews: Доступна документо-ориентированная СУБД MongoDB 3.0
  3. OpenNews: Выпуск СУБД OrientDB 2.0
  4. OpenNews: Выпуск СУБД Couchbase Server 3.0, сочетающей возможности CouchDB, memcached и Membase
  5. OpenNews: Выпуск документ-ориентированной БД Apache CouchDB 1.6.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/42072-rethinkdb
Ключевые слова: rethinkdb
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (34) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 23:54, 20/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Убийца MongoDB. Как-то необычайно по описанию хорош, в чём подвох?

     
     
  • 2.2, Аноним (-), 00:37, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Из минусов:
    Пока-что нет встроенного полнотекстового индекса. Можно использовать внешний, например Elasticsearch.
    Изменения структуры шардинга производится вручную. Автоматическую систему (на базе Raft) добавят в одном из следующих релизов.
    Подсистема сохранения данных по описанию очень даже неплоха. Но пока нет никаких сравнений с WiredTiger из MongoDB 3.0.
     
     
  • 3.5, Аноним (-), 00:45, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ещё добавлю:
    разбивка данных по шардам производится по самому ключу (range, например А-К, Л-Т, У-Я) вместо хеша ключа (consistent hash) что имеет как плюсы, так и минусы (потребует перебалансировки) - планируют изменить.
     
  • 2.4, Хамоватый Аноним (?), 00:45, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >Убийца MongoDB. Как-то необычайно по описанию хорош, в чём подвох?

    Ловись рыбка: большая и маленькая...

     
  • 2.13, jOKer (ok), 06:01, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как всегда, - в соответствии требованиям ACID
     
     
  • 3.25, Crazy Alex (ok), 12:41, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так чуть ли не весь поинт NoSQL в своё время был, что ACID нужен далеко не всегда. и, опять же, у монги с ним тоже не фонтан.
     
     
  • 4.28, Аноним (-), 15:28, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Это все булшит и маркетинг.
     
  • 2.18, Аноним (-), 08:22, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Мистер франкинштейн отдыхает. Какую техническую проблему решает данная БД лучше других БД я так и не понял.
     

  • 1.6, ДругойАноним (?), 00:49, 21/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хм, русские основали что-ли?

    Slava Akhmechet
    Founder at RethinkDB

    Michael Glukhovsky
    Founder at RethinkDB

     
     
  • 2.8, Аноним (-), 00:54, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > Хм, русские основали что-ли?

    Таки да

     
  • 2.20, Аноним (-), 09:22, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Но не в Российской Федерации
     
     
  • 3.21, asdasd (?), 09:36, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Шишкин тоже не в РФ работает, только вот образование в МГУ получил.
     

  • 1.9, Аноним (-), 01:53, 21/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Не жабе, в отличие от многих noSQL, которые на ней - годно.
     
     
  • 2.10, Аноним (-), 01:54, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Не на жабе, в смысле.
     

  • 1.11, fi (ok), 02:03, 21/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ну и как, лучше чем Pg 9.4 ищет по json?
    MongoDB вроде слилась.
     
     
  • 2.17, Аноним (-), 08:13, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Не несите чушь про слив. В pg jsonb дополнительный тип и не кто в здравом уме не будет его пихать по все дыры. С монго совсем друга история. Поражает дурость людская и попытки забивать гвозди микроскопом. А можно я буду забивать гвозди микроскопом? Можно разрешаю, но не рекомендую.
     
     
  • 3.31, Aleks Revo (ok), 15:52, 22/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Таки не несите чушь про Постгрес. В постгресе добрая часть всех возможностей - «дополнительные». Пользуйтесь MySQL ISAM, если дополнительные возможности не нужны )))

    Лезут тут всякие, панимашь, гвозди забивать без молотка. Молоток им, видите ли, слишком круто для забивания гвоздей.

     
  • 3.36, Кирилл (??), 13:41, 14/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Не несите чушь про слив. В pg jsonb дополнительный тип и не
    > кто в здравом уме не будет его пихать по все дыры.
    > С монго совсем друга история. Поражает дурость людская и попытки забивать
    > гвозди микроскопом. А можно я буду забивать гвозди микроскопом? Можно разрешаю,
    > но не рекомендую.

    )))) Там всё -- "дополнительный тип". Чем и ценна.

     

  • 1.12, Аноним (-), 03:59, 21/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > созданных с оглядкой на архитектуру Btrfs.

    Как видим, у Мэйсона есть чем поживиться :)

     
     
  • 2.15, Аноним (-), 07:02, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Юзер285, хватит уже к чужой славе примазываться. Ну полно же.
     

  • 1.16, cmp (ok), 07:43, 21/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Шикарно, у них даже репа к центосу есть
     
  • 1.19, Игорь (??), 08:56, 21/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что такое "API для монтиринга" ?
     
  • 1.22, Аноним (-), 10:11, 21/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    нужна база которая будет автоматом раскидывать ключи по серверам, перебалансировать ключи при добавлении/удалении серверов, поддерживать транзакционное изменение ключей на нескольких серверах - вот что нужно, пока это можно сделать только на postgres ручками
     
     
  • 2.24, funny_falcon (ok), 12:21, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > транзакционное изменение ключей на нескольких серверах

    Как вы это делаете на Postgres? двухфазный коммит? это ведь всё равно не надёжно.
    Впрочем, если обеспечить тепличные условия, наверное работает.

     
  • 2.29, Аноним (-), 23:22, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    PostgreXL
     
     
  • 3.32, funny_falcon (ok), 15:54, 22/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Сами используете, или слухи?

    Если сами используете, то поделитесь опытом/наблюдениями, пожалуйста. Очень любопытно.

     

  • 1.23, Аноним (-), 11:48, 21/04/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > Ключевым отличием RethinkDB от других СУБД

    в MS SQL есть Query Notifications. Наверное имелось в ввиду "от других бесплатных СУБД"

     
     
  • 2.26, Аноним (-), 13:33, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    как бы намекает что не только в MS http://www.postgresql.org/docs/9.0/static/sql-notify.html
     
  • 2.27, Аноним (-), 13:37, 21/04/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> Ключевым отличием RethinkDB от других СУБД
    > в MS SQL есть Query Notifications. Наверное имелось в ввиду "от других
    > бесплатных СУБД"

    Как любят прибежать и рассказать что у них продукт тоже такое умеет и намекнуть что их конкуренты какаха. MS то платит хотя бы или вы за бесплатно пиарите?

     
     
  • 3.33, человек (??), 09:52, 24/04/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы кажетесь расстроенным. Обидно наверное что революционной фичей всякие проприетарщики пользуются уже давно.
     
     
  • 4.35, Кирилл (??), 13:34, 14/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы кажетесь расстроенным. Обидно наверное что революционной фичей всякие проприетарщики
    > пользуются уже давно.

    Вернее, не пользуются ))) В силу того, что практически подобное оказывается невостребованным совершенно.

     
  • 2.30, Аноним (-), 08:39, 22/04/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Тупорылый далбаеб, что ты несеш
     
  • 2.34, Кирилл (??), 13:33, 14/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    В любой СУБД, в которой есть процедурные расширения, сделать аналог Наблюдателя не составляет труда. Но зачем это нужно? Это создаёт совершенно нерациональную инфраструктуру, которая банально 99% времени просто простаивает. Поэтому ни в одной "взрослой" СУБД подобная функциональность не стала востребованной, хотя в разные годы и предлагалась довольно назойливо.
     

  • 1.37, Аноним (-), 11:29, 20/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    интересная штука на самом деле. с простым и логичным применением :=)nested обтектные поверх сеансового/событийного - смотрится колоритно. надо еще нативных ЯП поддержку расширять. я бы забрал фортрана и хаскеля и мб эрангда, наверное. про логику(процедуры)в теле запроса - потенциально головная боль для развивающих, но идея свежая =)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру