6,666*100byte=666,600byte=667KByte.stenking wrote:6666 это уже совсем немало, тут SSD может столько не потянуть. Если даже данные по 100 байт то это добрых 0.5Г в секунду
Еще раз о масштабировании MySQL
-
- Уже с Приветом
- Posts: 946
- Joined: 24 Sep 2013 05:58
- Location: US\GA
Re: Еще раз о масштабировании MySQL
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Еще раз о масштабировании MySQL
Слушайте а как же вы работали с таким числом партиций ? Если 365 - это ж каждый день надо новую создавать ? У вас какая то логика была на запись для partition maintenance ?mskmel wrote: Предварительно проверив как mysql живет с большим количеством партиций, например 365 дней по 100-200 партиций на серверы.
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 946
- Joined: 24 Sep 2013 05:58
- Location: US\GA
Re: Еще раз о масштабировании MySQL
Hint: можно создавать раз в месяц но сразу 30 штук Логика была (есть). Она создаёт, архивирует, удаляет.Сабина wrote:Слушайте а как же вы работали с таким числом партиций ? Если 365 - это ж каждый день надо новую создавать ? У вас какая то логика была на запись для partition maintenance ?
В Оракле есть interval partitions для этого, на сколько я знаю в mysql такое еще не изобрели.
Как я понял у вас уже есть и отлично работает агрегация, так оставьте её как есть, добавив еще одну структуру для хранения всех деталей по каждому клиенту\серверу. И лезть в неё тогда и только тогда когда юзер попросил эти детали.
2000серверов * 20метрик * 6раз * 24ч = 5,760,000
Это всего навсего 6млн записей в день (спасибо stenking за урок арифметики). Если это 100 байт на запись, то это каких то 600МБ в день на все серверы что есть.
Надо вам два года: 2 * 365 * 20метрик * 6раз * 24ч = 2,102,400 или 200МБ на сервер за 2 года. Какой бы глупый mysql не был, но всю историю всех метрик в худшем случае несколько секунд считать будет.
Зачем тут разные кассандры, кэши т.п. не совсем очевидно.
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Еще раз о масштабировании MySQL
Дошли у меня руки до арифметики и все не так, ну как минимум видимо я что-то не так обьяснилаmskmel wrote: Как я понял у вас уже есть и отлично работает агрегация, так оставьте её как есть, добавив еще одну структуру для хранения всех деталей по каждому клиенту\серверу. И лезть в неё тогда и только тогда когда юзер попросил эти детали.
2000серверов * 20метрик * 6раз * 24ч = 5,760,000
Это всего навсего 6млн записей в день (спасибо stenking за урок арифметики). Если это 100 байт на запись, то это каких то 600МБ в день на все серверы что есть.
Надо вам два года: 2 * 365 * 20метрик * 6раз * 24ч = 2,102,400 или 200МБ на сервер за 2 года. Какой бы глупый mysql не был, но всю историю всех метрик в худшем случае несколько секунд считать будет.
Зачем тут разные кассандры, кэши т.п. не совсем очевидно.
2 года * 365 дней * 2000 серверов * 20 метрик * 6 раз * 24 часа - для серверов
ПЛЮС
2 года * 365 дней * 2000 серверов * [1-5] sever volumes * 10 метрик * 6 раз * 24 часа - у каждого сервера еще считывается несколько метрик для каждого volume
А самое главное у них намечается рост числа хостов где то до 5000 засчет global customers, надо и на это рассчитывать.
Агрегация такая что какие то метрики надо брать MAX, какие то SUM, какие то AVG, какие то с latest timestamp.
Сейчас агрегация делается "скриптом", то есть при добавлении raw data делается апдейт в daily rollup.
Все метрики за секунды и близко не считаются.
Даже после того как я поменяла немного таблицы, а именно:
- timestamp is no longer "datetime" column type but bigint and holding UNIX timestamp
- added range partitioning by month
- added hash partitioning by account id
Ключ по комбинации: account id + asset id + metric id + timestamp, где asset может быть либо сервер либо volume. Он же индекс соотвественно.
Запросы где в where clause условие по account id и правда быстро проходят, как минимум on weekly data volume что я собрала с новой схемой. А вот запрос по всем эккаунтам ( admin view of all accounts & all metrics health) уже занимает 200 секунд. В explain plan ничего пока нет криминального, прямо не знаю что еще попробовать ?
Как я поняла в mysql нет хинта PARALLEL, то есть параллельный процессинг не поддерживает. Так что ваше предположение что он со всем справляется увы неверное
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 946
- Joined: 24 Sep 2013 05:58
- Location: US\GA
Re: Еще раз о масштабировании MySQL
Так всё равно дневной объем 1-2ГБСабина wrote:2 года * 365 дней * 2000 серверов * [1-5] sever volumes * 10 метрик * 6 раз * 24 часа - у каждого сервера еще считывается несколько метрик для каждого volume
Думайте над датамоделью и алгоритмами, объемы детские, легко обсчитываемые серверами 10+ летней давности, которые были слабее текущих десктопов.
-
- Уже с Приветом
- Posts: 3175
- Joined: 17 May 2007 14:07
Re: Еще раз о масштабировании MySQL
+1 к предудущему посту.
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Еще раз о масштабировании MySQL
Большое спасибо за совет с дневными партициями. Квери ускорились где то в 5 раз. Вытащить все агрегированные метрики для эккаунта за одну неделю занимает 0.2 секунды, по всем эккаунтам все метрики - 20 секунд. Терпимоmskmel wrote:С чего они будут медленнее? Просканирует 7 партиций поменьше, вместо одной большой. ...Сабина wrote:Временные по дням ? Так наверное запросы медленнее будут выполняться потому что across several partitions?
Но в твоём случае, если нет 100500 юзеров постоянно выбирающих статистику по своим хостам, шардинг не надо. Сохранить и иногда запрашивать небольшой кусок данных справится любая БД из тобой рассматриваемых.
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Еще раз о масштабировании MySQL
Кстати а как Амазонский редшифт по сравнению c просто postgres ? Есть смысл пользовать Redshift over Postgres cluster если очень важна performance ?
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Еще раз о масштабировании MySQL
Да кстати Постгрес и правда немного побыстрее работал, но заметно стало только когда таблица выросла до 5 mlns records. Правда наши опсы дружно сказали нетСабина wrote:А мне показалось что не может быть PostgreSQL настолько лучше MySQL в этом плане что глобально решит проблему.VladDod wrote:http://www.postgresql.org/
А засчет чего там timeseries на порядки лучше обрабатываются ?
PS. Переделка таблиц и партиций немного помогла, теперь около 1 mln records per 24 hours
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Еще раз о масштабировании MySQL
Кстати про объемы. У меня под VM 30 гигов выделено. Я сегодня скопировала одну таблицу с 3-мы raw metrics за неделю и диск юсадж подскочил от 98 до 100 процентов и база сдохла. Я это к тому что ваши подсчеты примерно верныеmskmel wrote:Так всё равно дневной объем 1-2ГБСабина wrote:2 года * 365 дней * 2000 серверов * [1-5] sever volumes * 10 метрик * 6 раз * 24 часа - у каждого сервера еще считывается несколько метрик для каждого volume
Думайте над датамоделью и алгоритмами, объемы детские, легко обсчитываемые серверами 10+ летней давности, которые были слабее текущих десктопов.
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 64875
- Joined: 12 Jul 2002 16:38
- Location: г.Москва, ул. Б. Лубянка, д.2
Re: Еще раз о масштабировании MySQL
Согласен, с такими об'емами и mysql будет нормально бегать. Нельзя ли отпрофилировать и посмотреть, где именно тормоза?mskmel wrote:Так всё равно дневной объем 1-2ГБСабина wrote:2 года * 365 дней * 2000 серверов * [1-5] sever volumes * 10 метрик * 6 раз * 24 часа - у каждого сервера еще считывается несколько метрик для каждого volume
Думайте над датамоделью и алгоритмами, объемы детские, легко обсчитываемые серверами 10+ летней давности, которые были слабее текущих десктопов.
-
- Уже с Приветом
- Posts: 946
- Joined: 24 Sep 2013 05:58
- Location: US\GA
Re: Еще раз о масштабировании MySQL
Ещё бы! Если бы из-за каждого тормозящего запроса девелоперы бы просили поменять БД, то опсам бы 24*7 работать надо было.Сабина wrote:Правда наши опсы дружно сказали нет
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Еще раз о масштабировании MySQL
Тут вы не совсем правы. Система себя изжила , без major refactoring всяко не обойтись, проблема совсем не только в нескольких запросах и new requirements. Вопрос только когда, но тут получается опсам спасибо что решили за всех. Мне проще, хоть с базой не возится, я не возражаюmskmel wrote:Ещё бы! Если бы из-за каждого тормозящего запроса девелоперы бы просили поменять БД, то опсам бы 24*7 работать надо было.Сабина wrote:Правда наши опсы дружно сказали нет
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Еще раз о масштабировании MySQL
Местные орлы толкают новую идею DynamoDB. Никто не пробовал ?
По идее должно подойти joins не нужны, надо просто быстро читать. Мне ничего не стоит мой быстрый процесс на Java заставить писать в DynamoDB за оставшиеся дни. Начальник просит доделать backend part потому что остаются одно nodejs девелоперы работать над остальным
По идее должно подойти joins не нужны, надо просто быстро читать. Мне ничего не стоит мой быстрый процесс на Java заставить писать в DynamoDB за оставшиеся дни. Начальник просит доделать backend part потому что остаются одно nodejs девелоперы работать над остальным
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 2136
- Joined: 08 Nov 2013 22:33
- Location: SFBA
Re: Еще раз о масштабировании MySQL
это же амазона поделка.
ее разве можно где-нибудь кроме амазоновского клауда пользовать?
вся яйца класть в одну корзину - не разумно. захотите переехать как данные переносить будете?
хотя вам пофиг, делайте, потом в резюме напишите ))
ее разве можно где-нибудь кроме амазоновского клауда пользовать?
вся яйца класть в одну корзину - не разумно. захотите переехать как данные переносить будете?
хотя вам пофиг, делайте, потом в резюме напишите ))
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Еще раз о масштабировании MySQL
Так я же писала что здешний менеджмент больше верит в uptime Amazon SQS чем своих серверовXpoH wrote:это же амазона поделка.
ее разве можно где-нибудь кроме амазоновского клауда пользовать?
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 8632
- Joined: 22 Mar 2011 01:40
Re: Еще раз о масштабировании MySQL
Да, дайномо это очень хорошая noSQL база, написанная людьми, которые DB, including noSQL умеют писать.Сабина wrote:Местные орлы толкают новую идею DynamoDB. Никто не пробовал ?
По идее должно подойти joins не нужны, надо просто быстро читать. Мне ничего не стоит мой быстрый процесс на Java заставить писать в DynamoDB за оставшиеся дни. Начальник просит доделать backend part потому что остаются одно nodejs девелоперы работать над остальным
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Еще раз о масштабировании MySQL
Кстати никто не хочет к ним на контракт ? Маленькая тихая компания в EastBay, приходить в 9 ухoдить в 5, надо по делам - нет вопросов.
Они считают что им нужен ДБА , но делать надо все то же что в этой теме описано. Да и еше спокойно относится к людям, которые любой код кроме своего, называют brain fart
Они считают что им нужен ДБА , но делать надо все то же что в этой теме описано. Да и еше спокойно относится к людям, которые любой код кроме своего, называют brain fart
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 19041
- Joined: 11 Jan 2012 09:25
- Location: CA
Re: Еще раз о масштабировании MySQL
А там и так percona, но кластер то для репликацииLazy444 wrote:A попробовать MySQL Cluster https://www.mysql.com/products/cluster/faq.html#cluster" onclick="window.open(this.href);return false; не хотите ? И нам расскажете, как он масштабируется ?
https://www.youtube.com/watch?v=wOwblaKmyVw
-
- Уже с Приветом
- Posts: 15276
- Joined: 01 Mar 2007 05:18
- Location: VVO->ORD->DFW->SFO->DFW->PDX
Re: Еще раз о масштабировании MySQL
забавно, что с посекундной статистикой bw in/bw out и прочего типа этого на несколько сот тысяч серверов на позапрошлой работе не было никаких проблем
Мат на форуме запрещен, блдж!
-
- Уже с Приветом
- Posts: 946
- Joined: 24 Sep 2013 05:58
- Location: US\GA
Re: Еще раз о масштабировании MySQL
Не думаю что в твоём случае был один программист\ДБА\архитектор на всё.АццкоМото wrote:забавно, что с посекундной статистикой bw in/bw out и прочего типа этого на несколько сот тысяч серверов на позапрошлой работе не было никаких проблем
А так да, 10+ лет назад без всяких кассандрохадупов Телко считало трафик, при чем не для "жалких" сот тысяч серверов, а десятков миллионов абонентов.