mysql, percona, mariadb

Werdna

Господа, а есть внятное понимание, что же происходит с сабжами?
Я застрял с году так 2010, проспал четыре года. Сейчас я вижу много всего нового, все ветки идут куда-то в свои стороны.
TokuDB — это круто или нет?
Какой из форков дальше всего ушел от mysql 5.5?
Насколько они совместимы между собой? Что выбрать?

erotic

Говорят, надо всем на PostgreSQL уходить.

soroka000

MariaBD сейчас основной форк от содателя mysql, причем еще и бинарно совместимый
Из новостроя ну да перкона и еще галера есть, но все это имхо адовые велосипеды.
Посмотрел оба варианта, на синтетике погонял на 12 машинках и решил не использовать.
Про Toku слышал, но лично я не особо понимаю зачем она. Все жирные данные можно по ссылке хранить и пихать в например хадуп, а нежирные данные жать опять же смысла нет, потому что скорость важнее.
Итого: ниче не поменялось — нужен SQL + AСID — оракл или посгрес, не нужен AСID + SQL — nosql решений выше крыши на все цвета радуги

kill-still

все уже совсем со SQL слазят. :)

luna89

все уже совсем со SQL слазят.
Куда, если не секрет? На опенсорсные nosql решения без слез не взглянешь.

Hastya

Какой из форков дальше всего ушел от mysql 5.5?
бросай нахер этот mysql и переходи на PostgreSQL

NAIL

Господа, а есть внятное понимание, что же происходит с сабжами?
А ты с какой целью интересуешься? Я к тому, что движок не скажется на разработке приложения, а важен только на этапе поддержки\администрирования (если, конечно, о MyISAM'e речи не идёт).
Все движки рабочие, разница в основном в работе с тредами\стабильностью. Когда у тебя будет проект для которого важен выбор движка, то сможешь попробовать\поэкспериментировать. Пока, по содержанию вопроса, есть подозрение, что такого проекта у тебя нет.
Из важного в мире mysql для разработки с 2010 могу отметить Handler Socket http://habrahabr.ru/post/113040/.

luna89

Все движки рабочие
В каком-то движке появился бэкап? Как вообще пользователи mysql эксплуатируют СУБД без бэкапа?

NAIL

В каком-то движке появился бэкап? Как вообще пользователи mysql эксплуатируют СУБД без бэкапа?
Чаще всего используется дамп с реплики + бинлоги.

luna89

Чаще всего используется дамп с реплики + бинлоги.
Берем последнюю версию mysql:
http://dev.mysql.com/doc/refman/5.7/en/binary-log-setting.ht...
И видим что:
In MySQL 5.7, the default binary logging format is STATEMENT.
...
When using statement-based logging for replication, it is possible for the data on the master and slave to become different if a statement is designed in such a way that the data modification is nondeterministic; that is, it is left to the will of the query optimizer. In general, this is not a good practice even outside of replication
Очевидно, что если после восстановления из бэкапа мы получаем не те данные, что были до бэкапа, то это какой-то странный бэкап.
Получается, при кодировании надо учитывать, на какой форк mysql мы рассчитываем, и писать только кошерные с точки зрения этого форка SQL-запросы, от которых бэкап не отваливается.

Marinavo_0507

the default binary logging format is STATEMENT
а что, в каких-то других субд не нужно менять значения по умолчанию, они дают правильный результат всегда?

NAIL

Получается, при кодировании надо учитывать, на какой форк mysql мы рассчитываем, и писать только кошерные с точки зрения этого форка SQL-запросы, от которых бэкап не отваливается.
Некошерные запросы для statement-репликации это запросы типа delete order by rand limit 10; rand_seed не уезжает в бинлогах - получаешь рассинхрон. Но mysql об этом честно сообщит варнингом (и в логи тоже).
В общем, если голову совсем не отключать при разработке, то с бэкапами на statement-репликации можно нормально жить.

Werdna

Когда у тебя будет проект для которого важен выбор движка, то сможешь попробовать\поэкспериментировать. Пока, по содержанию вопроса, есть подозрение, что такого проекта у тебя нет.
Я все проекты стараюсь отвязывать в производительности от mysql отвязываюсь, у меня где нагрузка — там демона, взаимодействующие с базой. Т.е. меня действительно вопрос касается не очень остро.
В то же самое время, я люблю свежий софт и последние версии. И я не знаю на что мигрировать! Сменить базу на Постгрес точно не получится, так как базы не меняют просто так без причин. :)

Werdna

Говорят, надо всем на PostgreSQL уходить.
Ты написал для него репликатор? :)
Пока нет репликатора, для меня только MySQL 5.1 или 5.5...

Werdna

statement-репликации
Ещё кто-то использует? Есть же правильный row-based

erotic

Ты написал для него репликатор?
Нет, но у меня тут сидит бывший сотрудник Percona, и он иногда посматривает в сторону написании libslave для Postgres.

NAIL

Я все проекты стараюсь отвязывать в производительности от mysql отвязываюсь, у меня где нагрузка — там демона, взаимодействующие с базой.
Везёт же тем у кого всё в память лезет нормально. А что ты делаешь, когда есть не только нагрузка, но и данные ещё?
Ты написал для него репликатор? :)
Пока нет репликатора, для меня только MySQL 5.1 или 5.5...

http://lmgtfy.com/?q=postgresql+replication
Ещё кто-то использует? Есть же правильный row-based

Да, использует. statement тоже правильный. Когда тебе в ночи надо будет искать позицию, на которую надо зацепить слейв, то ты его тоже посчитаешь удачным выбором, например. Или когда надо будет разобраться откуда прилетел этот изменяющий запрос.
Если бы не знал тебя, то подумал бы, что какой-то нуб. Пачка странных утверждений наложенных на бан в гугле. Завязывай :)

luna89

Некошерные запросы для statement-репликации это запросы типа delete order by rand limit 10; rand_seed не уезжает в бинлогах - получаешь рассинхрон. Но mysql об этом честно сообщит варнингом (и в логи тоже).
Написано, что такое тоже некошерно (вполне обыкновенный запрос):
DELETE if you are deleting rows from a table that has foreign keys with ON DELETE CASCADE properties.
...
If and only if the preceding queries have no ORDER BY clause guaranteeing a deterministic order.

Werdna

Везёт же тем у кого всё в память лезет нормально. А что ты делаешь, когда есть не только нагрузка, но и данные ещё?
Вопрос решен уже давно: coda/cache.hpp
http://github.com/bachan/coda
Автоматический подчищающийся кеш, ограничен по числу элементов, удаляются самые давно использованные, если не хватает.
Если следующий вопрос "а читаешь ты из mysql синхронно?", то ответ ­http-сервер Близзард с быстрыми и медленными тредами.
Это, конечно, закат колхозного солнца руками, но зато работает предсказуемо, что в хай-лоаде ценится куда больше чем всё остальное.

Werdna

Пачка странных утверждений наложенных на бан в гугле.
Ну ты же ерунду придумал, особенно с Гуглом. Ну т.е. я тебя тоже знаю и не могу понять, как ты мне можешь давать совет гуглить "postgresql replication", наверное я имею в виду нечто другое...
Нету для Постгреса библиотеки репликации. В Гугл можешь не отсылать, лучше прочитай что пишет Возбу на пост выше, — его коллега подумывает написать.

serega1604

Нету для Постгреса библиотеки репликации
наверно не зря, в нем есть встроенный NOTIFY, в oracle тоже есть аналогичный механизм.

luna89

наверно не зря, в нем есть встроенный NOTIFY
Товарищам нужен logical decoding.
Он появился в 9.4, теперь можно писать вебскейл плюсовые демоны для постгреса, и делать новые интересные доклады на конференциях.

luna89

в oracle тоже есть аналогичный механизм
В оракл API по разбору redo логов называется log miner, зацените объем доков по этой (экотической) фиче.
http://docs.oracle.com/database/121/SUTIL/logminer.htm#SUTIL...

Werdna

Товарищам нужен logical decoding
Хорошая вещь!
Годнота, прямо захотелось что-то даже попробовать.
Интересно как там апдейты приходят, все строки целиком новые, или сам запрос. Примеры там даны с инсёртами...
Но за наводку спасибо.

serega1604

В оракл API по разбору redo логов называется log miner, зацените объем доков по этой (экотической) фиче.
я не про redo логи, а про уведомления об изменении говорил, если ты не заметил.
Оставить комментарий
Имя или ник:
Комментарий: