Posts tagged ‘mysql cluster’

MySQL Cluster: тут вам не там #3

Итак третья часть! Первая, вторая.

Итак, решили вы запустить еще одну ноду, стартует она довольно долго на большом объеме данных, с 6Гб порядка 5-10 минут. В этот момент по каким-то своим причинам падает другая нода (это кстати вопрос, почему она упала!), как итог запускавшаяся нода также прекращает запуск и останавливается.

Вообще, с точки зрения архитектуры это наверное объяснимо: “если я вредная нода и завалила другую, запускаться мне незачем”.
Однако в первый раз это несколько неожиданно.

Итог:

Ваш кластер должен состоять как минимум из 4х нод, чтобы такая ошибка не убила ваш кластер, ибо остановка всех нод в кластере равносильна удалению всех таблиц. Во всяком случае у меня не получилось запустить кластер заново, пришлось запускать их с ключами –initial и заливать базу по новой.

MySQL Cluster: тут вам не там #2

MySQL Clsuter не перестает меня удивлять! (часть 1)
Только что открыл интереснейший баг: даешь запрос который выдает слишком много результатов (>2Mb по умолчанию), нода падает. Даешь несколько таких запросов, несколько нод падает.
Т.е. кривой разраб/запрос может к чертям повалить кластер!

Вы думаете я брежу? Хотелось бы, вот баг репорт: http://bugs.mysql.com/bug.php?id=61496, баг за 11 Июня 2011, по прежнему открыт.

Continue reading ‘MySQL Cluster: тут вам не там #2’ »

MySQL Cluster: тут вам не там #1

Не так давно я начал разбираться с MySQL Cluster, как оказалось штука это довольно “необычная”, например дает довольно плохую производительность на запросах без индексов.

Дальше стало еще интереснее, теперь по мере “открытия” новых особенностей MySQL Cluster буду публиковать их в блоге 🙂

“SELECT … LIKE …” не выдает результат, вообще!

Да-да, первое открытие состояло в том что MySQL как будто игнорирует ключевое слово LIKE, он всегда выдает пустой результат и ничего не пишет в Warnings.
Путем трехдневного ковыряния в приложении, которое я хотел мигрировать на MC, и в самом MC обнаружилось что это, цитирую “Then it’s a know bug that was already reported internally. Not yet fixed.”, и это по состоянию на январь 2012!

По идее все эти проблемы уже решены в последней версии MC, но я качал RPM с сайта MySQL две недели назад и там все еще присутствует этот баг.
Решается “просто”, нужно отключить engine_condition_pushdown, либо в консоли MySQL:

set engine_condition_pushdown=off;

либо добавив в my.cnf, в раздел [mysqld]

engine_condition_pushdown=off

Найдено тут (спасибо добрым людям).

ndb_size.pl считает среднюю длину для VARCHAR!

ndb_size.pl – это утилита которую Sun/Oracle рекомендует для анализа структуры базы данных и возможности перехода на NDB.
Если коротко, то в NDB есть ограничение на длину одной строки (row) в таблице, в 7.2+ это 14кб в более ранних 8кб, это значит что суммарная длинна всех полей с фиксированной длинной не должна превышать 14кб.
Когда я читал про это ограничение, я подумал “этого более чем достаточно”, но злые разработчики вернули меня на грешную землю, когда я увидел таблицу в которой 178 полей из них 142 VARCHAR(255).

Ну так вот, ndb_size.pl выдает рекомендации о том какой длинны должны быть эти самые VARCHAR поля, я поверил этой програмке и перебил ~500 таблиц в соответствии с рекомендациями, а зря…

Вот этот кусок кода говорит сам за себя:

... select avg(length(`%s`)) ...

Ну не п#$%:ц ли!

Пока я не знаю что с этим делать ;( придумаю поделюсь…

Ждите новостей с полей!

Вопрос: Производительность MySQL Cluster

Коллеги, нужна помощь.
Поставил MySQL Cluster состоящий из двух нод, конфигурация почти стандартная, еще ничего не тюнил.

Сравниваю производительность одиночного MySQL и двух нод MySQL Cluster, получаю разницу в производительности в ~8 раз, не в пользу кластера.
Между data-нодами, реальный гигабит, сетевой активности во время теста почти нет (