Category: Development
MMM Release 1.0-pre3
6 May2007

[lang_en]

MySQL Master-Master Replication Manager version 1.0-pre3 has been released today. Changes list is really short now:

  • Major fix in multiple clusters support – now you can use many clusters with one monitoring node (details are in mmmd_mon man page)
  • Man pages for mmmd_mon, mmmd_agent and mmm_control scripts
  • Startup scripts added/fixed for mmmd_mon and mmmd_agent
  • Installation script now requires iproute package to be installed on server.

As always, if you have any questions/suggestions, post them here or in mmm-devel mail list.

[/lang_en]

[lang_ru]

Очередной релиз MySQL Master-Master Replication Manager – сегодня версии 1.0-pre3. Список изменений в этой версии – совсем короткий:

  • Важное исправление в поддержке нескольких кластеров – теперь вы можете использовать один мониторинговый сервер для управления несколькими кластерами (детальнее – в man-странице для mmmd_mon)
  • Добавлены man pages для скриптов mmmd_mon, mmmd_agent и mmm_control
  • Стартовые скрипты для mmmd_mon and mmmd_agent
  • Инсталляционный скрипт теперь требует наличия пакета iproute на сервере.

Как всегда, если у вас есть какие-то дополнения/пожелания/комментарии, вы можете оставить их здесь или отправить в список рассылки mmm-devel.

[/lang_ru]


MySQL Conference 2007: First Impressions and Findings
25 Apr2007

So, first two days of mysqlconf’07 are finished now. What can I say is that without any doubts: It worth it! If you’re working on some high traffic projects, some high-loaded database driven systems, etc, you definitely should attend such conferences – you’d never be able to get such big amounts of information from the best people in the industry as you can get here.

I’ve been attending mostly practical MySQL scale-out sessions and BOFs and I’ve got really controversial impressions. No – everybody was great, controversial thing is my own level – I never before was so sure that I know nothing at all! I see people here for which most of new things for me (especially in MySQL scaling) are pretty obvious and it is hard to keep myself from some kind of self-beating because I don’t know these things.

Interesting thing happened today – I clearly realized why YouTube guys got their billion and we or someone else didn’t – IMHO – one of the major factors was their ability to handle all these users traffic efficiently. They’ve got one of the best (imho) technical people in their command. I was really impressed by one of their guys (sorry, but I’m too bad in remembering people’s names) – one of the two founders – who participated in MySQL replication and scale out BOF as attendee. He clearly showed me that they’re able to grow almost without any limits because of their skills which is one of the major requirements in today’s fast changung world.

Another interesting thing was that I realized that my spoken English could be really good when people speak clearly and I understand their questions. I spoke with some guys about our mmm project, about maby things and there was no problems at all!

So, its going pretty late and tomorrow going to be a long day so I want to repeat – if you have any chance to get on such conferences, DO IT! If your company can’t help you, spend your own money or find some other solutions, but DO IT! It is the best thing could happen to YOU as professional!

P.S. Just remembered – I saw some women-DBAs today! Really smart girls! I never thought that pretty girl can become such great IT prefessional and now I know – I was really wrong.

P.P.S. Sorry to russian-speaking readers – I will definitely translate my last posts later – just when I’ll come back home from this crazy (but the best) event with 14hrs of load a day


[lang_en]MySQL Master-Master replication manager released[/lang_en][lang_ru]Релиз ПО для управления кластерами с MySQL Master-Master репликацией[/lang_ru]
5 Apr2007

[lang_en]

So, I’s been a long time since I wrote my last post here. Lots of work and almost no new interesting technologies in my work caused such delay. But today I’m proud to announce release of really interesting project: MySQL Master-Master replication manager – set of flexible scripts for management different MySQL deployment schemes with master-master replication involved.

More information about this software could be found in detailed announce in Peter Zaitsev blog (actually this software was created by me for his company’s client) or at project page. All your questions and suggestions welcomed in MMM development group on Google Groups. If you’d like to support this software on Digg.com, you’re welcome. 😉

[/lang_en]

[lang_ru]

Очень много времени прошло с момента моего последнего поста здесь. Много работы и практически полное отсутствие новых технологий в работе – вот основные причины. Ео сегодня я с удовольствием хочу аннонсировать здесь очень интересный проект: MySQL Master-Master replication manager – набор очень гибких скриптов для управления различными схемами установки MySQL, в которых используется master-master репликация.

Более детальная информация о проекте может быть найдена в детальном обзоре в блоге Петра Зайцева (на самом деле, программа создавалась мной для одного из его клиентов) или на странице проекта. Все вопросы и замечания можно отправлять в группу MMM development на Google Groups. Если вы хотите поддержать данный анонс на Digg.com, я буду не против. 😉

[/lang_ru]


[lang_en]Bug in Perl’s Thread::Semaphore: Memory Leak (solution provided)[/lang_en][lang_ru]Ошибка в Perl’овом Thread::Semaphore: Утечка памяти (решение прилагается)[/lang_ru]
25 Jan2007

[lang_en]

I spent almost all day trying to find and fix really strange bug in one of our server-side applications written on Perl. And as I’ve figured out later, there is huge problem in Perl core libraries or, even, in interpreter.

Problem is following. If you are trying to use “threads” module with “Thread::Semaphore” module like it is mentioned in official Perl documentation (perlthrtut), you’ll get 4kb memory leak on every $semaphore->up call. So, simple test-case like following would cause huge memory leaks (100 Mbytes per second on my test server):
[/lang_en]

[lang_ru]

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

Проблема в следующем. Если вы попытаетесь использовать модуль “threads” вместе с модулем “Thread::Semaphore”, как это описано в официальной документации по языку Perl (perlthrtut), вы получите утечку памяти размером около 4kb на каждый вызов $semaphore->up. Следовательно, следующий простой пример кода вызовет просто огромные утечки памяти (около 100 Mбайт в секунду на моем тестовом сервере):
[/lang_ru]

Read the rest of this entry


[lang_en]Top 1000 (84) MySQL Performance Tips From MySQL Camp 2006[/lang_en][lang_ru]Список 1000 (84) Лучших Советов по Производительности MySQL с MySQL Camp 2006[/lang_ru]
14 Nov2006

[lang_en]

Looks like MySQL Camp 2006 was really interesting and useful for its attendees and for entire MySQL community. As the result of this meeting of many MySQL-related professionals we’ve got lots of interesting publications and I want to refer one of them in this post. Very interesting list of 84 MySQL performance tips has beed created on first day of this year MySQL Camp at Google headquarters:

  1. Index stuff.
  2. Don’t Index Everything
  3. Use benchmarking
  4. Minimize traffic by fetching only what you need.
    • Paging/chunked data retrieval to limit
    • Don’t use SELECT *
    • Be wary of lots of small quick queries if a longer query can be more efficient
  5. Use EXPLAIN to profile the query execution plan
  6. Use Slow Query Log (always have it on!)
  7. Don’t use DISTINCT when you have or could use GROUP BY
  8. Use proper data partitions (For Cluster. Start thinking about Cluster *before* you need them)
  9. Insert performance
    • Batch INSERT and REPLACE
    • Use LOAD DATA instead of INSERT
  10. LIMIT m,n may not be as fast as it sounds

So, I think this list can be really useful for all developers/DBAs working with MySQL and want to say “Thanks” to its authors.

[/lang_en]

[lang_ru]

Похоже, что MySQL Camp 2006 был действительно очень интересным и полезным событием как для тех, кто его посетил, так и для всего сообщества MySQL. Как результат этой встречи большого количества профессионалов, связанных с MySQL, появилось множество интересных публикаций. Именно одну из таких публикаций я и хотел бы “прорекламировать” сегодня. Очень интересный список 84 Лучших советов по производительности MySQL был создан в первый день работы MySQL Camp в штабквартире Google:

  1. Index stuff.
  2. Don’t Index Everything
  3. Use benchmarking
  4. Minimize traffic by fetching only what you need.
    • Paging/chunked data retrieval to limit
    • Don’t use SELECT *
    • Be wary of lots of small quick queries if a longer query can be more efficient
  5. Use EXPLAIN to profile the query execution plan
  6. Use Slow Query Log (always have it on!)
  7. Don’t use DISTINCT when you have or could use GROUP BY
  8. Use proper data partitions (For Cluster. Start thinking about Cluster *before* you need them)
  9. Insert performance
    • Batch INSERT and REPLACE
    • Use LOAD DATA instead of INSERT
  10. LIMIT m,n may not be as fast as it sounds

Я думаю, что этот список советов может быть очень полезен всем разработчикам и администраторам, работающим с MySQL и потому хочу сказать “Большое Спасибо” его авторам.

[/lang_ru]