Последние несколько месяцев ситуация вокруг RethinkDB была весьма смутна, о будущем проекта было сложно что-то сказать. Но ситуация наконец-то разрешилась, в официальном блоге появилось долгожданное обновление с разъяснением о текущем положении вещей. Как стало известно, CNCF(Cloud Native Computing Foundation) выкупила права на исходники RethinkDB и передала проект под покровительство организации Linux Foundation. Перед передачей код был переведён с лицензии AGPLv3 на Apache 2.0. Передача осуществлена в рамках предпринятой бывшими разработчиками RethinkDB инициативы по передаче сообществу управления над проектом.

Когда компания, разрабатывающая СУБД RethinkDB, объявила о закрытии, группа, уже бывших, сотрудников при поддержки других членов сообщества организовали команду, целью которой стала полная передача проекта сообществу с изменением лицензии. Из анонса Cloud Native Computing Foundation мы видим, что ситуация наконец-то разрешилась — CNCF выкупили права на сорсы RethinkDB и передали проект в руки The Linux Foundation под ASLv2 лицензией.


RethinkDB живёт и здравствует! Разработка СУБД будет продолжаться без перебоев. Можно продолжать использовать Rethink в продакшене, обновления будут продолжать выходить. При поддержке Linux Foundation проект будет развиваться и дальше.


В последние месяцы сообщество показало свой интерес в плане поддержки проекта монетой. Теперь вы можете задонатить в поддержку проекта. Stripe так же согласился поддержать проект задонатив $25,000.


Немного про RethinkDB


RethinkDB — это open source NoSQL база данных (сорсы на гитхабе), располагающая встроенной системой уведомления об изменениях. Вместо запросов к базе на наличие изменений, вы можете «подписываться» на потоковые обновления, что устранит ненужные запросы к базе.

RethinkDB является безсхемным хранилищем JSON документов, но также поддерживает и некоторые особенности реляционных БД. RethinkDB также поддерживает кластеризацию, что делает её очень удобной в расширении. Вы можете настроить шардинг и копирование через встроенный веб-интерфейс. Последнии версия RethinkDB также включает в себя автоматический «fail-over» для кластеров с тремя и более серверами. (прим. переводчика: подразумевается возможность продолжения работы с БД в случае падения одного из серверов.)

Язык запросов в RethinkDB, который называется ReQL, нативно встраивается в код на том языке, на которым вы пишите своё приложение. Если, например, вы кодите на Python, то при написании запросов к БД будете использовать обычный для Python синтаксис. Каждый запрос составляется из функций, который разработчик собирает в цепочку, чтобы точно описать необходимую операцию.

И что теперь?


Команда и дальше продолжит опенсорсить софт, контент, кучу арта (за авторством замечательной @annieruygt) и документацию, которые были разработаны кор командой за последние 7 лет. Так же ведётся разговор с CNCF о возможности стать Inception проектом.


Новый релиз RethinkDB уже в работе: последние несколько месяцев волонтёры немало контрибьютили в проект. В ближайшие дни можно ожидать выхода RethinkDB 2.4. Новая версия включается в себя различные улучшения от сообщества, а также фичи разрабатываемые самой командой бывших ресинковцев. Так же выйдет RethinkDB 2.3.6 с фиксом важных багов.


Почему так долго?


После закрытия компании, проект был законсервирован. Просто форкнуть его и продолжит разработку под другим именем было невозможно из-за AGPL лицензии. CNCF разрешила конфликт выкупив все исходники.


Присоединяйтесь к сообществу RethinkDB


Если вы хотите участвовать в жизни сообщества, то существует много путей для этого:


  • Почитайте о том как контрибьютить в RethinkDB.
  • Присоединяйтесь к каналу #open-rethinkdb на канале RethinkDB в Slack.
  • Кидайте пулреквесты и создавайте тикеты на GitHub.
  • Подписывайтесь на @rethinkdb в Twitter.

Чтоб быть в курсе событий, почитайте заметки с последней встречи в Январе.


Интересные ссылки по теме:

  1. интересный пост от Bryan Cantrill (CTO Joyent). Немного размышлений на тему того, почему AGPL — это плохо.
  2. Над RethinkDB сгущаются тучи?
  3. Постпортем от Slava Akhmechet

P.S. я знаю, что в ру сегменте мало кто использует эту СУБД. Но для тех, кто, всё же, ждал и надеялся, новость будет приятной.
Поделиться с друзьями
-->

Комментарии (22)


  1. loststylus
    08.02.2017 02:01
    +1

    Очень нравится проект, но не могу найти ничей опыт использования его под высокими нагрузками. Насколько все это хорошо масштабируется? У кого-нибудь есть история, которой можно поделиться? :)


    1. Suvitruf
      10.02.2017 20:50

      25 млн. пользователей, 25 нод.


  1. unsafePtr
    08.02.2017 02:06

    Об этой бд так же узнал из новости на хабре неделю назад. Честно говоря давно хочется попробовать документно-ориентированную бд, но всё не попадается хороший случай. Больше всего привлекает именно язык ReQl, особенно после того как глянул repository. По больше бы статей об этой бд, может кто в продакшн брал?


    1. Suvitruf
      08.02.2017 02:09
      +3

      Мы для онлайн игры используем. Как раз ReQL — это одна из особенностей, которая нам понравилась. Как минимум в nodejs драйвере. В java драйвере слишком много избыточного кода писать приходится. С другой стороны, если повезёт, они в версии 2.4 может завезут нормальный мапинг объектов, что уменьшит размера кода по работе с базой раза в 1.5-2.

      Вторая особенность — легкость в настройке, поднять отказоустойчивый кластер дело пары минут. Ну и в третьих — это, конечно же, changefeeds.

      Уже года два используем. Если есть какие-то конкретные вопросы, то я мог бы их осветить в отдельной статье.


  1. BekoBou
    08.02.2017 02:25

    P.S. я знаю, что в ру сегменте мало кто использует эту СУБД. Но для тех, кто, всё же, ждал и надеялся, новость будет приятной.

    Зато хотя бы узнали о существования такой. Я для себя отметил при первом взгляде, что RethinkDB очень похожа на MongoDB в моих задачах. Возможно даже попробую сделать пробный проект — очень заинтересовал механизм уведомлений.


    1. Optik
      08.02.2017 07:53

      Её ценность как раз в тех вещах, что отличают её от других документо ориентированных баз. [mode type=«troll»]В отличие от монги она еще не разваливается в кластере при дуновении ветра[/mode]


      1. cbone
        08.02.2017 12:35
        +1

        А Монга разваливается? Есть ссылки почитать про печальный опыт использования кластера Монги?


        1. Optik
          08.02.2017 13:24

          Опыт различных коллег по цеху и о 2ой версии. Поэтому и пометил как тролль-мод.
          Почитать можно Кайла, который специализируется на тестировании распределенных систем. Как раз появились результаты свежего теста монги. В архив есть еще пара о ней же и пара ресинковских.


  1. farwayer
    08.02.2017 09:30

    Отличная новость! А может знаете, что с Horizon'ом будет?


    1. Suvitruf
      08.02.2017 11:10

      Michael посоветовал следить за блогом Horizon, в ближайшие недели ожидаются обновления.


    1. Suvitruf
      08.02.2017 12:05

      Ну и кстати, Horizon же и так под MIT лицензией. Или вы больше о том, как будешь дальше разработка вестись?


      1. farwayer
        08.02.2017 13:34

        Если проектом никто не будет заниматься — то какая там лицензия уже не сильно важно.


        1. Suvitruf
          08.02.2017 18:37

          Michael сегодня в слаке ответил, что Horizon так же присоединится к linux foundation и останется под MIT лицензий.


  1. eshimischi
    08.02.2017 10:29
    +1

    Отлично, использую эту СУБД в одном из своих проектов в тандеме с GraphQL, Apollostack. Даже подумал, что можно внести донат по такому случаю :)


  1. A1ex
    08.02.2017 17:17

    Имел негативный опыт работы с RethinkDB, в том числе и с «отказоустойчивостью», которая легко настраивается, но по факту не работает.

    Под «высокой» (видимо для Rethink это так) нагрузкой сервера часто свопаются и зависают, порой время ответа на простой запрос может варьироваться от 10 мс до нескольких минут.
    Имеем 5 мощных серверов в кластере, но и это не спасает от падений.

    Стоит добавить, что тот же PostgreSQL на одном среднем сервере вытянет ту же самую нагрузку с запасом.
    Не понимаю куда смотрят разработчики, заявляя, что их решение Production-ready: нескольким критичным багам больше полугода.


    1. Suvitruf
      08.02.2017 18:15

      А можно узнать конфигурацию и какие у вас нагрузки? Мы с такими проблема не сталкивались, но у нас и не highload.
      Про отказоустойчивостью же, в кластере у нас всего 3 ноды (пока хватает), были случаи, когда из-за проблем в датацентре какие-то ноды выходили из строя, Rethink всё сам разруливал.


      1. A1ex
        09.02.2017 08:44

        Нагрузки скромные: порядка 10-15 тысяч операций на запись в сутки. По чтению не могу назвать конкретных цифр, но выборки не сложные — все по индексам. Проблемы начали возникать с увеличением нагрузки на приложение, сначала сервера «зависали» несколько раз в день, а на данный момент в пиковое время сервера падают каждый 30 минут.
        Обычно такое падение выглядит как 20+ Гб выделенной виртуальной памяти (причем 10-15 Гб выделяется за секунды) и полностью заполненный своп. Часто процессы серверов убивает ядро.
        У нас 5 серверов — 16GB и 4-ядерный Xenon. Мы пробовали разные конфигурации серверов, 3 шарды по 1 реплике, 5 шард по 4 реплики, сейчас остановились на 5/2.

        Несколько слов об отказоустойчивости: она все таки работает, но непозволительно медленно — при падении одного из серверов кластера восстановление работоспособности может занять 10 минут, в течении которых сервера не отвечают ничего. Хотя казалось бы — реплики есть, и можно просто переключить все запросы на них с минимальным простоем.


        1. Suvitruf
          09.02.2017 17:51

          Хм, у нас, как я уже сказал, в кластере 3 ноды (3 сервера). На каждом сервере по 4-6 наших сервиса, которые работают с Ресинком. Максимальные нагрузки, которые я видел на ноде — это тысячи операций в секунду. Да и то это по большей части ограничено с нашей стороны, особенно в java, где драйвер синхронный (там в пуле в районе 8 соединений на хост). И за 2 года описываемых проблем не наблюдал. Может у вас что-то не так настроено?

          Кстати, а ноды в одной приватной сети? Я точно знаю, что там большие проблемы, если ноды в кластере в разных датацентрах находятся.


          1. A1ex
            10.02.2017 14:10

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


            1. Suvitruf
              10.02.2017 14:19

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

              К примеру, у нас (и ещё парочки людей, судя по форуму) с Unity есть проблема на системах с Dx 9/11. Разработчики сказали, что в курсе неё, но не фиксят, так как не знают, как со 100% вероятностью этот баг воспроизвести.


  1. JerryGreen
    09.02.2017 10:45

    Это лучшее, что могло произойти с rethinkdb. Наверное даже лучше, чем если бы изначальная команда просто продолжала работать над ним. Шикардос!

    Для web app, если планируете использовать вебсокеты, рекомендую использовать rethinkdb, много лишнего кода не напишите, много костылей не сделаете :)


  1. Suvitruf
    10.02.2017 20:53

    Кому тему интересна, советую ещё почитать недавний пост на Hacker News. A1ex, вам, вероятно, интересно будет. Там как раз Michael некоторые вопросы по Rethink'у разъясняет.