You are viewing svetasmirnova

svetsmirnova
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in svetsmirnova's LiveJournal:

    [ << Previous 20 ]
    Friday, May 8th, 2015
    3:43 pm
    Зачем Support Engineer-у знакомство с исходным кодом
    Я недавно сменила работу. Перед тем как это сделать я собеседовалась в несколько компаний и в одной из них мне задали очень интересный вопрос.

    Вообще во время собеседований меня постоянно спрашивали что я делаю на текущей работе. Я отвечала, что основная моя обязанность - это верификация баг репортов. Настоящая компания не была исключением. Мы обсудили что такое верификация, как я её делала. А затем они стали спрашивать про мои знания MySQL и знакомство с кодом. Я ответила: "А как же?" И тут они мне задали тот самый вопрос: "А зачем вам нужно знать код, вы же занимались black box testing?" К сожалению в тот день у меня не было хорошего примера зачем нужно знакомство с исходниками. Пример появился буквально на следующий день!

    Вообще говоря bug verification - это не всегда black box testing, а просто подтверждение бага любыми доступными способами.

    Bug #75706 "alter table import tablespace creates a temporary table"

    Фактически это feature request: это значит, что функциональность отсутствует и решение появится только в следующей мажорной версии. То есть это не прям такой серьёзный баг, который нужно верифицировать уже сегодня и чем раньше, тем лучше. Тем не менее подтвердить его нужно. И чтобы его подтвердить возможны варианты:

    1. Brute force. Тот самый black box testing. То есть нужно создать достаточно большую таблицу и сделать ALTER, затем отслеживать создалась ли временная табличка. Минус этого способа очевидный: очень долго, очень много тупой работы и чем быстрее диск - тем большую нужно создавать таблицу. Соответственно возможны варианты, что на моём лаптопе создание временной таблицы можно будет увидеть легко, а на сервере разработчика - уже нет.

    2. Поставить breakpoint в месте, где создаются временные таблицы и отследить его в gdb, например. Но тут уже нужно знать код.

    3. Просто прочитать код.


    Способы 2 и 3, на мой взгляд, сильно эффективнее "black box ради black box" способа 1. В данном случае я применила способ 3. Если бы это был баг применила бы способ 2: с ним проще доказать, что баг в наличии.

    Пример использования способа 2 попался буквально на днях на новой работе. Это Bug #1452397 "Gaps in Retrieved_Gtid_Set while no gaps in Executed_Gtid_Set" или Bug #76959 "Gaps in Retrieved_Gtid_Set while no gaps in Executed_Gtid_Set". Клиент предоставил relay log файлы, которые приводили к описанному поведению. В принципе когда я поняла почему ошибка происходит достаточно было запустить mysqlbinlog на них и баг репорт был бы готов. Проблема в том, что Percona Server - это fork Oracle MySQL Server и по-хорошему баг нужно было слать и в Oracle тоже. И, как вы понимаете, relay логи клиента Percona я в Oracle послать не могу. Поэтому пришлось придумывать как их создать. Опять-таки, можно было манипулировать максимальным размером логов и посылаемыми запросами из мастера, но при появлении любых дополнительных служебных данных, записываемых в binary log в любой из последующих версий, тест бы поломался и нельзя было бы точно сказать баг ли устранили или просто формат binary log поменяли. Да и долго размер запросов подбирать! Поэтому я применила более эффективный способ: Test Synchronization и DBUG_EXECUTE_IF. Что, опять-таки, без знакомства с кодом MySQL было бы невозможно.
    Wednesday, December 31st, 2014
    9:03 pm
    Oracle is easy
    Пожалуй самым звёздным MySQL-продуктом на прошедшей OOW были JSON UDFs MySQL Plugin for Oracle Enterprise Manager (OEM). Проще всего потестировать плагин, установив OEM на виртуальную машину. Однако здесь есть нюансы.

    Я устанавливала OEM для всей комнады MySQL Support и это стоило мне немножко нервов, усиленных временами медленным VPN.

    Собственно нюансы. Я предпочитала, где возможно, пользоваться командной строкой.
    Read more...Collapse )
    Да, установку OEM и последующую настройку, особенно на удалённой машине, лучше проводить вот в такой маечке:



    Как настроить MySQL Plugin я рассказывать не буду: вот здесь всё подробно. Никаких сложностей не вызывает. Можно мониторить как сервер, находящийся на той же машине, так и удалённый. Лучше покажу немного screenshot-ов.
    See more...Collapse )
    Thursday, December 25th, 2014
    1:17 am
    Ещё раз про бесправных пользователей
    Несколько дней назад я писала пост о том как MySQL пользователь с минимальными правами доступа может получить очень много ресурсов. Честно говоря, мотивацией для написания статьи было не столько желание вас попугать, сколько желание ещё раз показать memory tables в Performance Schema.

    Однако читатели больше обращали внимание на результат теста и на мои ошибки. Поэтому сейчас я хочу немножко поговорить об этих ошибках и реальных опасностях.

    Read more...Collapse )
    Wednesday, December 17th, 2014
    2:26 pm
    svetasmirnova@github
    Вот тут пишут, что без профиля на GitHub в приличное общество уже не принимают. Он у меня, оказывается, был, но я его не использовала. Тем временем MySQL Server мигрировал с Launchpad на GitHub и все мои скрипты для автоматической сборки и тестирования на двух лаптопах и нескольких Oracle-овых машинах полетели. git pull сделать, несомненно, удобнее, чем ручками, так что вот Почитать о скрипте для тестирования на английском языке можно здесь
    Wednesday, December 10th, 2014
    8:23 pm
    Performance Schema memory tables и бесправные пользователи
    В своих семинарах и тренингах, посвящённых отладке, я люблю повторять мантру: "Не раздавайте логины в базу кому попало!" Казалось бы, что в этом такого, можно же настроить минимальные привилегии и спать спокойно.

    Проблема в том, что даже минимальные привилегии в MySQL позволяют изменять сессионные переменные, в том числе те, которые регулируют потребляемые ресурсы. Мой любимый пример: убей сервер при помощи join_buffer_size. Однако до версии 5.7 проверить как это работает было сложнее. Сейчас же, при помощи memory summary tables,  можно наглядно увидеть как непривилегированный пользователь может заставить сервер уйти, например, в swap.

    Read more...Collapse )
    Wednesday, December 3rd, 2014
    10:44 pm
    Таблицы memory summary в Performance Schema в версии 5.7
    Здесь я писала о значительных нововведениях в MySQL 5.7.

    И, конечно, как troubleshooting freak я не могу не написать отдельно про своё любимое: memory summary tables в Performance Schema. И соответсвтующие представления в sys schema.

    Вообще до версии 5.7 у нас были очень ограниченные средства диагностики проблем с памятью MySQL. Мы могли использовать vmstat, top, free и прочие инструменты, предоставляемые операционной системой, но узнать что же конкретно происходит и на что именно ушла память было практически невозможно. В новой версии ситуация изменилась.
    Давайте посмотрим что мы можем узнать про использование памяти MySQL сервером.Collapse )
    Thursday, November 27th, 2014
    12:10 am
    Один день из жизни инженера технической поддержки MySQL.
    Есть такое сообщество odin_moy_den с фоторепортажами об одном дне из жизни обыкновенных людей. В моём случае рабочий день состоит из местами цензурированных screenshot-ов.
    Read more...Collapse )
    Monday, September 22nd, 2014
    1:35 am
    Мой Марш Мира 21 сентября
    До сегодняшнего дня я никогда не ходила ни на политические митинги, ни на другие мероприятия. Я не протестовала против смены собственника НТВ в 1999-2000 годах: у меня был на них зуб за пару репортажей в pre-мамонтовском стиле. Тогда мочили по коммерческим причинам. Я не выступала в защиту Ходорковского. Я не была на Болотной и не ходила с белой лентой: как-то так получалось, что все оппозиционные события последних лет я провела вне России. Я не ходила к Соловецкому камню и боялась получить по почкам 31-го числа.

    Тем не менее я не аполитична. Я ходила на выборы, пока они были честными, бойкотрировала их, когда они стали цирком, временами агитировала друзей-знакомых за политиков, которым симпатизировала и против тех, которым не. Этакий пикейный жилетик.

    В этот раз тумблер перещёлкнул. Невозможно оставаться в стороне от войны и изменений в стране, не становясь соучастником преступлений, которые совершаются. Я сразу решила, что пойду, как только узнала, что Марш разрешён. Несколько пугали возможные провокации, истерика ряда знакомых, 86%. Но страшнее было не пойти.
    Tuesday, August 5th, 2014
    2:51 pm
    Близнец или почувствуй возраст
    В спортзале (дело происходит за границей) подходит приятель и говорит:

    - Тут занимается русский парень. Он совсем молодой, но уже феноменально силён и красив. Ты его знаешь?
    - Нет.
    - У него такое же лицо как у тебя, только ему 18 лет.

    ----

    В том же спортзале несколько дней спустя.

    - Посмотри на его тело, он прекрасно выглядит для своего возраста.
    - Сколько ему лет? - спрашиваю
    - 57

    Я рассыпаюсь в комплиментах. Мимо проходит другой спортсмен и по ходу бросает: "А мне 59". Крыть было нечем.
    Wednesday, October 9th, 2013
    11:25 pm
    JSONПобольше информации о JSON UDFs
    Сегодня пришло письмо от организаторов MySQL Connect о том, что слайды, наконец, выложили. Посмотреть их можно здесь или же на моём сайте здесь или здесь. Слайды лучше README-файла: там побольше информации и примеров.

    Я ещё сделала пост на английском языке по мотивам первых фидбеков. Буду очень благодарна, если выскажатесь по темам, на которые я там прошу ответа.
    Saturday, October 5th, 2013
    8:55 pm
    8 часов об отладке
    На этой неделе я делала 8-ми часовой онлайн-тренинг для Oracle University. Здесь есть информация о нём. Если ссылка не работает, попробуйте сменить страну на United Kingdom. Для России, кстати, у них могут быть специальные цены.

    Такой длинный тренинг я делаю впервые. Предыдущий максимум у меня был 3 часа. Плюс это мой первый тренинг онлайн.

    Что я имею по этому поводу сказать.

    Получилось в целом неплохо: score >80 для первого раза - это удачно.

    Что нужно иметь в виду и исправлять в будущих таких тренингах:

    • Feedback. Очень тяжело говорить и не видеть реакции на лицах. У меня был несколько стрессовый старт и я забыла попросить слушателей "Introduce themselves". Вероятно, это могло бы их больше расшевелить. А так я постоянно задавала вопросы и просила комментировать, но было видно, что люди стеснялись. Я ожидала, что онлайн-тренинг будет проще обычного, потому что можно более свободно использовать заметки: я использовала свои обычные карточки плюс открыла более подробные на таблетке, но отсутствие контроля за реакцией зала сводило это преимущество на ноль.

    • Как ни странно, размер текста на слайде имеет значение. Было несколько слайдов, которые приходилось увеличивать. Также, из-за особенности Webex, который использует Oracle University, моё приложение, открытое на всё окно, отображалось неполностью.

    • Ещё пользователи жаловались на перенасыщенность некоторых слайдов.

    • Опять-таки, из-за особенности Webex, работающего только под Windows, нужно лучше готовить демонстрационное окружение. Основная ОС у меня сейчас Linux, в Windows перегружаюсь только для таких случаев и было обидно обнаружить устаревший MySQL Workbench, когда меня про него спросили.

    • Чисто презентационные вещи. Последнее время я провожу несколько минут непосредственно перед моим выступлением, подготавливая голос и проговаривая вступление. Тут же, из-за того, что перерывы мне приходилось тратить и на пополнение собственной энергии чаем и плюшками, так не вышло и первые один-два слайда каждой части я говорила не очень хорошо.

    • Да, и перерывы нужно делать в том числе и большие. Я выбрала такую схему: 45 минут тренинга и 15 минут переыв. Где-то в середине дня слушатели взмолились: мы хотим обедать!

    • Webex, опять-таки, показывал слушателям пустой экран в то время, когда я открывала другие приложения, чтобы послать им ссылку. Они сказали мне об этом только в конце тренинга! Feedback-feedback!

    • И слайды я быстро листала. Впрочем, это мой обычный недостаток.

    • 8 часов - это, оказывается, немного. Я боялась, что останется много свободного времени, но под конец даже пришлось ускоряться, чтобы осталось время для вопросов.

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



    Но вообще: тяжело. Я почти охрипла под конец.
    Sunday, September 22nd, 2013
    5:55 pm
    Представила вчера на MySQL Connect свой пакет "MySQL JSON UDFs"

    Мануал пока в виде README файла, слайды и подробности будут как вернусь.
    Saturday, January 26th, 2013
    3:28 pm
    My way to verify MySQL bug reports
    Давным-давно я обещала посетителям тогда ещё PHPConf опубликовать скрипт, который я использую для верификации багов сразу в нескольких пакетах MySQL.

    По прошествии, скажем так, обещанных трёх лет, я таки собралась и опубликовала их в своём рабочем блоге на английском языке.

    Вообще "обычным" пользователям вполне должно хватить MySQL Sandbox. Однако мой скрипт может понадобиться, если вы не можете выбрать до какой версии обновиться или поймали баг, который приходится тестировать на нескольких версиях.
    Saturday, January 12th, 2013
    9:12 am
    Thursday, January 3rd, 2013
    11:10 pm
    Строкоминуты
    Редактирую материал вот к этому тренингу

    Я последнее время стала приблизительный текст писать для презентаций и семинаров для лучшего time management. В среднем получается 300 строк в моём стиле, включая длинные и пустые, на час.
    Wednesday, November 28th, 2012
    2:22 am
    Имена
    Вот интересно, зачем люди дают таблицам имена типа Name, чтобы обращаться потом к ним name?
    Monday, November 26th, 2012
    3:00 pm
    Cyber Monday @O'Reilly
    Только сегодня, до 23:59 по тихоокеанскому времени (PT), O'Reilly делает 50% скидки на все электронные книги и видео.

    Адрес предложения: http://shop.oreilly.com/category/deals/cyber-monday.do

    Или можно непосредственно с моей книжки.
    Sunday, November 25th, 2012
    9:16 pm
    4 недели курса MongoDB for DBAs
    Прохожу сейчас в целях общего развития курс MongoDB for DBAs. Честно говоря сначала ожидала описания NoSQL syntax sugar. По поводу sugar-а пока впечатление "ещё один даже не язык программирования, а API" и "SQL вообще-то понятнее". Спишем на синдром тотального поражения мозга SQL-ом.

    А реально понравилось как репликация там организована: настраиваемые автоматические и ручные fail-over-ы, встроенный load balancer, возможность администрировать любой сервер из цепочки мастеров и слэйвов из одного соединения. И всё это встроено, без надстроек и сторонних приложений.
    Tuesday, October 2nd, 2012
    8:09 am
    Микки Маус
    Зашла сегодня в магазин в SF, смотрю майку мужу: любит он очень американские майки. Рядом женщина: "Вот тут очень много маек с Микки Маусом". Муж у меня нормального мужского размера если что.

    ***

    В последний день MySQL Connect у нас был ужин со шведским столом и вином для всех участников конференции. Мероприятие было на открытом воздухе рядом с отелем, в котором конференция и происходила. На ужин пускали по коду с бейджика участника. Охранница увидела мою маленькую сумочку и предупредила, что за сумочкой нужно следить, так как могут вытащить кошелёк. Только интересно кто: участники ужина?
    Thursday, September 27th, 2012
    8:45 am
    Через два часа вылетаю в Сан Франциско на MySQL Connect
[ << Previous 20 ]


About LiveJournal.com