Analitycs

понедельник, 22 июля 2013 г.

chef-client 11.4.4 - ArgumentError: wrong number of arguments (2 for 1)

Некоторые версии chef-client (11.4.4 в моем случае) падают с диагнозом

ArgumentError: wrong number of arguments (2 for 1)

Причина - нарушена обратная совместимость с Ruby 1.8

Лечение

Хачим Chef хирургическим вмешательством в код - facepalm ;-)

sudo nano /var/lib/gems/1.8/gems/chef-11.4.4/lib/chef/resource/lwrp_base.rb

Заменяя

-        if Resource.const_defined?(class_name, false)
+        if Resource.const_defined?(class_name)

Взлетели ;-)

воскресенье, 21 июля 2013 г.

Почему я не люблю ORM? или ORDER BY RAND() и все-все-все

Сервак тормозит так, что приехали, в базе - очередь как за колбасой в 1992 году.

SELECT TOP 1 g2_ImageBlockCacheMap.g_itemId FROM 
 g2_ImageBlockCacheMap LEFT JOIN
 g2_ImageBlockDisabledMap ON 
 g2_ImageBlockCacheMap.g_itemId=g2_ImageBlockDisable
 dMap.g_itemId WHERE g2_ImageBlockCacheMap.g_userId = 6 
AND g2_ImageBlockCacheMap
 .g_itemType = 1 AND g2_ImageBlockDisabledMap.g_itemId 
IS NULL ORDER BY RAND()

НИКОГДА!! СЛЫШИТЕ - НИКОГДА!! Не делайте "ORDER BY RAND()" на каждой странице(!) сайта под нагрузкой!!!

Екарный бабай, это ж FAQ любого собеседования.

 Вот именно поэтому я не люблю ORM и прочих "паразитов".

понедельник, 1 июля 2013 г.

В продолжение темы MySQL InnoDB

Так как Google+ не дает ответить на комментарий, то приведу кусок одной реплики тут

Отвечаю на свой же вопрос: можно. Тут вот есть описание миграции: http://dev.mysql.com/doc/refman/5.6/en/innodb-migration.html

Однако, я все же отказался от InnoDB в пользу MyISAM, после того, как сделал 30 Гб-ый дамп InnoDB базы и она восстанавливалась из дампа 8 дней (на Core i7 с 32Гб RAM).
Советовал бы всем кто столкнется с таким выбором, забить базу тестовыми данными ожидаемого объема и попробовать с ней поиграться: сделать дамп, восстановиться и т.д. Это наилучший показатель производительности..

Сейчас я работаю с MyISAM базами по 250-500 Гб, не хочу даже себе представлять, сколько бы занял перенос базы через mysqldump при использовании InnoDb..

Не все так однозначно.

 Для начала - перед восстановлением большого дампа InnoDB нужно отключить в сервере индексы и транзакции. Иначе - да, нужно много и долго ждать.

 >Это наилучший показатель производительности.

"Запорожец лучший в мире автомобиль, потому что влезает в самый маленький гараж" (c) ;-)
Это не так.