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

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

Because we can :)
Оно основанно на триггерах или нативных протаколах репликации каждой СУБД?

Поддерживает ли трансформации?
Он использует нативную репликацию, привнося дополнительный функционал.
Подробнее об архитектуре можно посмотреть здесь.

Трансформации поддерживаются с помощью фильтров.
А расскажите пожалуйста про производительность. При каких нагрузках приходилось держать эту связку? Сколько ресурсов отъедает репликатор?

Для большей наглядности статьи было бы очень здорово:
  • скрыть в спойлер типичные шаги установки пакетов в систему
  • подробнее описать используемые флаги конфигурации tungsten
  • дать небольшую вводную про выбор инструмента, если есть — привести аналоги

Ну и спасибо за то, что делитесь опытом!
О производительности мне сложно судить, пока внедряли в основном на dev-окружениях. Есть один боевой проект, там отставаний не замечено, но и нагрузка средняя.
Ява есть ява, мастер процесс, к примеру, кушает где-то ~500 Мб, слейв чуть меньше. Процессорного времени кушает мало.

Спасибо за замечания, учту.
На моем опыте, по производительности упирались скорее в сеть и диск. Т.е. тунгстен работает следующим образом — он физически копирует себе bin логи MySql и работает с ними, создавая thl файлы команд которые забирает по сети слейв тунгстен и применяет. Соотвественно идет повышенная нагрузка на диск при сильной нагрузке на MySql (бин логи могут занимать очень много и двойная запись тоже отжирает ресурсы), плюс если передавать из многих схем и таблиц, не отсеивая только то что надо, thl могут так же много весить.

Добавим к этому хранение bin логов хотя бы пару дней (что бы в случае падения тунгстена в пятницу ночью вы не потеряли данные для передачи на слейв), и соотв. при высокой нагрузке на БД место будет просто таять.

Решаются эти проблемы на самом деле довольно просто — тунгстен можно поселить на MySql слейве (если правильно помню и не ошибаюсь — надо только включить опцию записи слейв логов).
Вооо, а мне как раз надо с нескольких серверов сливать данные на один для последующего анализа, причем далеко не все таблицы и базы. Подскажите он случайно на лету модифицировать не умеет запросы? Например прилетает UPDATE, а мне его надо поменять на INSERT и положить в какую нибудь свою табличку.
Посмотрите документацию, по части фильтров. Думаю все можно сделать.
Давно используем тунгстен для репликации в оракл.

В целом все ок, но бывают и проблемы при больших операциях, когда на слейве тунгстен валится при попытке обработать thl файлы с нехваткой ява памяти ( давали много памяти, но не помогает, увы). В остальном — да, надежно и как Вы выше сказали — фильтры великая вещь и можно отсеивать ненужную информацию и транзакции и преобразовывать как нам угодно.
Спасибо за статью, прочел месяц назад и только сейчас осознал что мне давно хотелось использовать данные в MySQL, но без map-reduce это было нереально.

А можно наоборот? у вот хочется быстрый mongodb кластер который реплицируется в MySQL. Может такое тунгстен? А если нет то интересно почему.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий