@dba_ru

Страница 74 из 718
[Anonymous]
09.12.2016
21:01:58
Просто я не нашёл в Google.

Решил вот спросить.

Ведь есть базы вроде RethinkDB с фишкой поступления апдейтов в реальном времени.

Ну или всякие Aerospike с фокусом на "ключ-значение онли".

Google
[Anonymous]
09.12.2016
21:02:36
Я подумал может быть если что-нибудь для запросов по дате и времени.

тнн Itjunky
09.12.2016
21:02:44
Так вот. Я поднял сервера на всех локациях доступных в амазоне. Устроил получасовой пинг всех на всех. И нарисовал карту скоростей между точками. Выделил 3 группы: Америка, Европа, Азия. В каждой по сумме пингов выявил сервер, который наиболее идеально минимальный пинг до всех других в своей группе имеет. И это будут у меня 3 мастера. Итого схема будет такая. юзер А (из задачи сверху) будет направлен на сервер в Сау-Паулу, все нужные селекты он запросит с слейв-реплики находящейся там же, а когда ему нужно сделать запись, он её сделает на Мастер сервере в Ohio, на это уйдёт меньше секунды, потом эта инфа через ещё секунды-полторы окажется в Сингапуре, где стоит второй Мастер, и ещё через столько же в Сиднее, где стоит слейв реплика от Сингапурского мастера.
Ну круто, вопрос лишь в том, как часто тебе придётся перезаливать одного из мастеров и синкать с кластером =)

KOT
09.12.2016
21:03:34
И да, я когда задаю вопросы, я не стебусь и не троллю, я рад любым вариантом возможных ошибок, чтобы быть увереным, что продумал максимум возможных отказов системы.

тнн Itjunky
09.12.2016
21:06:27
СуБД же мускуль?

KOT
09.12.2016
21:07:01
Да. Планирую взять её форк - Перкону.

тнн Itjunky
09.12.2016
21:07:23
Ну так вот, практика показывает, что реплика постоянно разываливается

И что бы её восстановить, надо принести дамп с живого мастера и бинлоги актуальные

KOT
09.12.2016
21:10:14
Бинлоги держать недельные это раз. Раз в неделю полный дамп сливать, каждый день (думаю даже чаще) дамп дельты делать. В итоге мастер должен сдохнуть, не подниматься неделю, и потом его надо будет перезаливать.

тнн Itjunky
09.12.2016
21:11:15
Рушиться будет в случае с более чем двумя мастерами, думаю, чаще раза в сутки =)

KOT
09.12.2016
21:11:30
Так а причина разрушений какая?

тнн Itjunky
09.12.2016
21:11:54
Дело в том, что он ломается с дублируемыми ключами, в итоге надо его перезаливать полюбому

просто сказать, давай дальше синкайся, не выходит

Google
тнн Itjunky
09.12.2016
21:12:36
Это работает только если сам остановил синхронизацию, а если оно не верно синканулось и упало, то только перезаливка

KOT
09.12.2016
21:15:17
Ключи какого плана? Юники или ПК?

тнн Itjunky
09.12.2016
21:15:37
Уники, ага

Хотя, хз, давно это было. Может и праймари

KOT
09.12.2016
21:17:22
Этот момент я учитывал. Придётся разрабатывать логику базы без использования уников. А ПК только автоинкримененты

тнн Itjunky
09.12.2016
21:17:33
Возможно в 5.6 это сделали более стабильным, почитай форумы, но на 5.5 это был самый идиотский баг, который нифига не фиксился, видимо потому что у разрабов нет таких конфигов =)

KOT
09.12.2016
21:19:45
Так ПК же то же должны быть уникальными или я путаю?
В настройках есть 2 параметра. 1. Шаг автоинкреминента 2. Сдвиг автоинкреминента ПК делаются только автоинкреминенты. У всех проставляется шаг в 20 единиц. А сдвиг у каждого свой. Тем самым первый сервак запишет первую вставку 1, вторую 21, а третий скажем 3, а потом 23, а потом 43. И они не будут пересекаться

тнн Itjunky
09.12.2016
21:20:36
Да, такой алгоритм, вероятно, решит эту проблему

Не проверял

Но что-то мне подсказывает, что тогда краши были не потому что в оба мастера пришла запись в одну и ту же единицу времени. А скорее что синк по бинлогам как-то не по плану прошёл

KOT
09.12.2016
21:31:57
Это как?

"Не по плану?"

Да и там нету синка полного, они асинхронные, то есть все немного местами отстают и это норма.

тнн Itjunky
09.12.2016
21:33:34
Ну ты в любом случае пробуй, это стоящий варик. В конце концов, можно и ансибл написать, который будет запускаться триггером в заббиксе после падения одного из мастеров =)

KOT
09.12.2016
21:35:59
Что такое "ансибл"?

С забиксом не знаком если что

Fike
09.12.2016
21:36:13
configuration manager

тнн Itjunky
09.12.2016
21:36:31
ansible скрипты для оркестрации серверами

Fike
09.12.2016
21:36:38
херня, которой ты говоришь "поставь мускул", "положи в /etc вот этот файл", "убей всех людей", а она это делает на серваках

Google
тнн Itjunky
09.12.2016
21:37:00
а заббикс очень удобная система мониторинга с довольно простым способом доавления собственных метрик

KOT
09.12.2016
21:39:10
Я планрую взять PMM, монитор от Перконы. Это одна из причин, почему я их решил попробовать изначально. Мне тут кстати, кто-то пару месяцев назад его посоветовал и понеслось. Там и самочувствие ОС и ДБ и даже разбор запросов.

тнн Itjunky
09.12.2016
21:42:38
Не пробовал. Мне обычно нужны весьма нестандартные метрики, а в заббиксе написал однострочник для консоли, сунул в конфиг агента, добавил в веб-морде айтем и наблюдай за графиком =)

Fike
09.12.2016
21:46:42
сраббикс срач го

тнн Itjunky
09.12.2016
21:48:16
Я тут ПРТГ увидел, довольно симпатичен, но по граффикам там нельзя в любое место ткнуть и любой масштаб сделать

А это ингода ооочень нужно

Dmitry
09.12.2016
21:51:04
Так что там секунда почти просто на коннект

KOT
09.12.2016
21:51:37
Хендшейк ващет three way
Персистент жеж

тнн Itjunky
09.12.2016
21:52:12
Можно ваще UDP херачить

KOT
09.12.2016
21:52:25
Зачем?

тнн Itjunky
09.12.2016
21:52:48
Что бы не ждать лишнее время на соединение и остальные формальности

тнн Itjunky
09.12.2016
21:53:14
Но и валидация на уровне приложения тогда нужна, что пакет дошёл нормально и хватит его слать

KOT
09.12.2016
22:18:54
Кот его надо тюнить, он жрет и пишет как ебанутый
Ну я думаю его вывести на отдельный инстанс. Ещё не знаю точно, надо смотреть.

Но и валидация на уровне приложения тогда нужна, что пакет дошёл нормально и хватит его слать
Не, вот таких приколов не надо, хватит просто постоянно открытых коннектов

Fike
09.12.2016
22:48:37
KOT
10.12.2016
21:38:03
Кто там советовал похронить автоинкрименент?

и перейти к uuid для ПК?

Google
KOT
10.12.2016
21:39:01
http://kccoder.com/mysql/uuid-vs-int-insert-performance/

Sergey
10.12.2016
21:40:00
это из-за большого кол-ва перестроений индекса

KOT
10.12.2016
21:41:25
Ну да, похоже на то.

Sergey
10.12.2016
21:41:44
статья недавно была

как uuid и serial влияют на размер wal

KOT
10.12.2016
21:41:48
Но что-то мне подсказывает, что искать по чар64 тоже не фонтан

На размер чего?

Sergey
10.12.2016
21:42:10
write-ahead log

журнал транзакций базы

Admin
ERROR: S client not available

Sergey
10.12.2016
21:42:41
и там было объяснение что виной всему большое кол-во перестроений индекса, сейчас попробую найти

https://habrahabr.ru/post/316036/

там конечно пример про postgre

но думаю на всех базах похожая картина

KOT
10.12.2016
21:49:21
Daniel
10.12.2016
21:58:09
как можно сделать так, чтобы одно поле не могло бы быть больше другого? Я так понимаю только тригерами? (в сам запрос лезть не можем)

mysql

Sergey
10.12.2016
21:58:43
check constraint

Daniel
10.12.2016
21:58:49
не приходилось раньше с тригерами работать. задача вроде простая, а не заходит. check() бажный

Sergey
10.12.2016
22:00:28
вообще пишут лучше trigger

Google
Sergey
10.12.2016
22:00:39
для mysql

Daniel
10.12.2016
22:00:48
check не работает https://bugs.mysql.com/bug.php?id=3464

судя по всему не пофиксили до сих пор

если тригер, как тогда его запить? может кто помочь? два поля в одной таблице. field1 не может быть больше field2

BEGIN IF NEW.field1 > NEW.field2 THEN SET NEW.field1= NEW.field2; END IF; END

во, победил таки

Fike
10.12.2016
22:44:23
Кто там советовал похронить автоинкрименент?
я, я еще предлагал не использовать мускул

и если вы стремитесь за перформансом, то откуда у вас гениальная идея хранить uuid как char 36, если там тупо 16 байт?

домрощенные таланты блин

http://mysqlserverteam.com/storing-uuid-values-in-mysql-tables/ вот вам сам mysql советует хранить как 16 байт

не говоря уж о том, что восьмерку по этому поводу пинают, которую скоро должны выпустить https://dev.mysql.com/worklog/task/?id=8920

Akzhan
11.12.2016
10:10:03
кстати, в указанной @etkee статье и про индексирование есть - как сделать более последовательно растущий ряд )

KOT
11.12.2016
10:51:03
http://mysqlserverteam.com/storing-uuid-values-in-mysql-tables/ вот вам сам mysql советует хранить как 16 байт
Не плохо. А сколько это будет съедать скорости опять же?

Было бы пофигу, если у меня 10% инсерты были и 90% селекты. У меня же 99% инсерты и 1% всё остальное.

А сколько слейв реплик может выдержать MySQL сервер?

nikoinlove
11.12.2016
13:39:39
пока не кончатся ресурсы

KOT
11.12.2016
13:40:43
То есть по сути, хоть тысячи?

Страница 74 из 718