Как стать автором
Обновить

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

Очень нравится проект, но не могу найти ничей опыт использования его под высокими нагрузками. Насколько все это хорошо масштабируется? У кого-нибудь есть история, которой можно поделиться? :)
Об этой бд так же узнал из новости на хабре неделю назад. Честно говоря давно хочется попробовать документно-ориентированную бд, но всё не попадается хороший случай. Больше всего привлекает именно язык ReQl, особенно после того как глянул repository. По больше бы статей об этой бд, может кто в продакшн брал?
Мы для онлайн игры используем. Как раз ReQL — это одна из особенностей, которая нам понравилась. Как минимум в nodejs драйвере. В java драйвере слишком много избыточного кода писать приходится. С другой стороны, если повезёт, они в версии 2.4 может завезут нормальный мапинг объектов, что уменьшит размера кода по работе с базой раза в 1.5-2.

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

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

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

Её ценность как раз в тех вещах, что отличают её от других документо ориентированных баз. [mode type=«troll»]В отличие от монги она еще не разваливается в кластере при дуновении ветра[/mode]
А Монга разваливается? Есть ссылки почитать про печальный опыт использования кластера Монги?
Опыт различных коллег по цеху и о 2ой версии. Поэтому и пометил как тролль-мод.
Почитать можно Кайла, который специализируется на тестировании распределенных систем. Как раз появились результаты свежего теста монги. В архив есть еще пара о ней же и пара ресинковских.
Отличная новость! А может знаете, что с Horizon'ом будет?
Michael посоветовал следить за блогом Horizon, в ближайшие недели ожидаются обновления.
Ну и кстати, Horizon же и так под MIT лицензией. Или вы больше о том, как будешь дальше разработка вестись?
Michael сегодня в слаке ответил, что Horizon так же присоединится к linux foundation и останется под MIT лицензий.
Отлично, использую эту СУБД в одном из своих проектов в тандеме с GraphQL, Apollostack. Даже подумал, что можно внести донат по такому случаю :)
Имел негативный опыт работы с RethinkDB, в том числе и с «отказоустойчивостью», которая легко настраивается, но по факту не работает.

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

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

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

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

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

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

Для web app, если планируете использовать вебсокеты, рекомендую использовать rethinkdb, много лишнего кода не напишите, много костылей не сделаете :)
Кому тему интересна, советую ещё почитать недавний пост на Hacker News. A1ex, вам, вероятно, интересно будет. Там как раз Michael некоторые вопросы по Rethink'у разъясняет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации