Flow of life


Журнал о Японии и фотографии

Links to Infinity / Matter of Attitude

Managing farms of MySQL servers with MySQL Fabric



While built-in replication has been a major cause for MySQL’s wide adoption, official tools to help DBAs manage replication topologies have typically been missing from the picture. The community has produced many good products to fill in this gap, but recently, Oracle has been filling it too with the addition of MySQL Utilities to the mix.

One part of the Utilities that has been generating interest recently is MySQL Fabric, and we will be discussing this project in an upcoming series of blog posts.

According to the official documentation, MySQL Fabric is a system for managing farms of MySQL Servers. At the current stage, the system focuses on two areas of MySQL operations: High Availability and Sharding, relying on GTID based replication (available only on MySQL >= 5.6.5) for the former. Its development has been spearheaded by Mats Kindahl, senior principal software developer in MySQL at Oracle, who explains what it is in this post and again in this short video interview at Percona Live earlier this month.

We will start this series of posts by providing a broad overview of the project, and then we’ll dig deeper on each area on subsequent posts.

What it does

Currently, MySQL Fabric has two areas of server management in which it can help DBAs: High Availability and Sharding.

In terms of High Availability, MySQL Fabric will let you pool a group of MySQL servers and treat them as a single logical unit, with a Primary server that can take reads and writes, and Secondary servers that can take reads (and be used to scale those) as well as take over the Primary role in the event of a failure.

As we’ll see, MySQL Fabric relies on GTID based replication to work. By default, the tool won’t do any automatic failover, but it can be configured to do that, and it does work. In future posts of this series, we’ll spend some time explaining how to set up an HA group of MySQL servers using MySQL Fabric, and then we’ll set to try and break them in many ways. Stay tuned if you’re interested in the results :)

When it comes to Sharding, MySQL Fabric relies on special connectors to work. Without the connectors, you can still use the mysqlfabric command line tool to manage shards (and even migrate them from one server to another), but you will have to modify your application to include logic to decide which shard should be used for any given query. When using the connectors, the MySQL connection will actually be established with MySQL Fabric (with an XML RPC service we’ll talk about later). The connectors cache the needed information (this is a simplification, we’ll go into more detail on the next post) so that the client can make the right routing decision when reading or writing data to a sharded table.

We feel that the HA features are more mature now, but the Sharding ones look promising. Also, MySQL Fabric is extensible, and we think this is one area where it can grow a lot (for example, by using Shard Query with MySQL Fabric to support parallel distributed queries).

General Concepts

In order to understand MySQL Fabric we first need to present some terminology used by the project. We’ll start by listing basic definitions, and then we’ll go into more details when needed.

  • Group. A collection of mysqld servers.
  • Global group. Special groups that store updates that must be propagated to all shards.
  • Node. A running instance of MySQL Fabric.
  • Shard. A horizontal partition of data in a table.
  • Primary. A group member that has been designated master.
  • Secondary. A group member that is read only.


A server here is actually a mysqld instance, though ideally, all instances of a group should be on different servers. However, while testing, you can create multiple instances on the same host since you don’t really need HA.

A given server can only be part of a single group. This may seem confusing at first, but when you realize MySQL Fabric relies on replication (using GTID) for most of its work, it becomes clearer. A given MySQL server can only have one master and therefore it makes no sense for it to belong to multiple groups.

Groups have identifiers, which are just symbolic names that need to comply with some basic rules

Global group

Global groups are special groups involved in Sharding. They are used to propagate changes global to all shards (like schema changes, though not only that).


Note that a node is *not* a MySQL server that’s part of a group. It is a python program that, among other things, provides the XML-RPC server that is used by special connectors and by the ‘mysqlfabric’ command line client. A node will, however, need a mysqld instance. This instance is called the backend store and will be used by MySQL Fabric to save all the information it needs to manage servers.


We said a shard is an horizontal partition of data in a table, but this partition happens at the MySQL Fabric level. MySQL is completely unaware of it, and at the mysqld instance level, a shard is just a table. We’ll talk more about this soon, as it has some consequences.


The primary server is the only writable server in a group. This applies to HA, not to sharding, though you could define a group (and therefore a Primary) per shard and therefore use MySQL Fabric both for sharding, and to provide HA for each shard.


A Secondary server is a member of a group that is available to replace a Primary server on failover, and that is read only.It can also be used to scale out reads. 


 As with anything, MySQL Fabric has its good and bad points. Fortunately, the bulk of the bad points we identified are due to the project being still early in its lifecycle. Considering the latest release is a RC, we’re sure those will go away the future.

On the good side:

  • It is developed by Oracle.

We think this is important, because MySQL did not have a standard tool to manage farms of servers until now. People will still be able to use tools from other providers (or cook their own), but we think it’s good to have a standard offering that’s part of the MySQL packages.

  • It is extensible.

MySQL Fabric feels more like a framework than a closed product. In fact, even some official presentations introduce it as a framework. As a framework, it is implemented in python, a widely available and friendly interpreted language. We believe this means MySQL Fabric should be adaptable to specific needs with little hassle.

  • It is focused on MySQL versions 5.6.10 and newer.

By not worrying about backwards compatibility, implementation should be simpler. Take Secondary server promotion after the Primary goes down as example. GTID makes this much simpler.

On the bad side:

  • It is a bit rough around the edges.

This is expected for a new product, and to be honest, most problems we faced turned out being a documentation issue and not an actual problem with the software. The docs are still a bit green, but source code comments are good and plenty, so if you want to get your hands dirty and really understand how it works, that is the path we suggest.

  • Some things require help from MySQL to be properly implemented, and MySQL does not provide it (yet?).

An example: it is currently impossible to make sure that writes can never go to the wrong shard. As we said earlier, at the individual mysqld server, a shard is just a table, period. Ideally, some future MySQL version should extend the @read_only variable functionality and allow you to selectively mark parts of the data as read only. If we could mark a specific table as read only, or as updatable only when a given condition is met (i.e. WHERE id between <lower bound> and <upper bound>), it would increase the safety of sharding a lot.

  • It is focused on MySQL versions 5.6.10.

Yes, we said that’s good, but the obvious downside is you can’t consider using MySQL Fabric if you’re on an earlier MySQL version, and a lot of people still are.

  • In HA setups, MySQL Fabric itself can become a single point of failure

MySQL Fabric (the XML-RPC ‘Node’) and its data store (the mysqld instance that stores MySQL Fabric’s data) are a single point of failure that needs to be addressed. In practical terms, the impact of MySQL Fabric going down will vary with your use case. If you’re only using the mysqlfabric utility to manage servers, nothing will happen as long as all servers in a Group continue to work. If, however, you’re using one of the special connectors to access the Group, then your application will be down. This is resolvable, and we will discuss some approaches in the HA posts, but we think the best solution going forward is for MySQL Fabric to address this in the future by letting you set up multiple Fabric Nodes and have them monitor each other and promote a new active one if needed.

What comes next

Over the next few days, we will blog more about this, describing how to set up HA and Sharded clusters using MySQL Fabric, walking you through the process, and also trying to see how and when it can fail. We had a lot of fun doing this and we hope you have a good time reading it and experimenting yourself too!

The post Managing farms of MySQL servers with MySQL Fabric appeared first on MySQL Performance Blog.

Афоризм дня по итогам голосования за 24 апреля 2014


Госдума приравняла блогеров к СМИ, в связи с чем блогеры приравняли Госдуму к ОПГ.

История дня по итогам голосования за 24 апреля 2014


Знакомый как-то ездил на Камчатку к друзьям. А друзья там люди не простые, а браконьеры. Живут в лесах, ставят сети и вылавливают огромное количество рыбы на последующую продажу. У одного из них есть домик в лесу, и там, как домашнего питомца, они держат медведицу Машку. Дело в том, что лет пять назад охотники убили взрослую медведицу, а медвежонка, эту самую Машку, оставили. Ну и приручили её: на людей не бросается, сама доброта. Только если не на цепи, то пробирается к сети и начинает воровать рыбу.
Ну так вот, значит, и сама история.
Сидят как-то они в этом домике большой компанией - выпивают. И хорошо так подвыпили. Тут один из ребят видит, что Машку забыли посадить на цепь, и она самым наглым образом ворует рыбу. Ну, он и решил её проучить. Подходит, значит, к речке, достаёт из сети рыбёху покрупнее и начинает лупить Машку по голове, приговаривая, мол, хватит из сетей воровать. Полупил-полупил, ну, Машка и ушла.
Возвращается мужик обратно в домик, а остальные на него смотрят, как будто призрака какого увидели.
Далее диалог:
- Мужики, чего вы так на меня смотрите, что случилось?
- Ты разобрался с Машкой?
- Ну да, хлестанул ей пару раз рыбиной по голове, она и отвалила. А что?
- Просто Машка в это время на цепи сидела...

Анекдот дня по итогам голосования за 24 апреля 2014


Сурдопереводчик во время концерта группы "Ленинград" всё время просто держал поднятым вверх средний палец.

Linux foundation создал фонд для финансирования открытых проектов



24 Апреля 2014 года, Linux Foundation представила проект Core Infrastructure Initiative. В рамках этой инициативы корпорации станут финансировать разработку открытых проектов задействованных в ключевых областях компьютерной индустрии.
К этому проекту присоединились: Google, Amazon, Microsoft, Intel, IBM, Cisco, Dell, Facebook, Fujitsu, NetApp, Rackspace и VMware. Как сообщает Linux Foundation, инициатива является ответом на кризис, возникший в результате HeartBleed.

 heartbleed, linux foundation

DNF 0.5.0 -- пакетный менеджер, замена YUM



DNF (Dandified Yum) — пакетный менеджер, который станет заменой YUM. В отличие от YUM, новый пакетный менеджер отличается заметным увеличением скорости работы, низким потреблением памяти, предоставлением API для плагинов и интеграцией с другими приложениями. Управление пакетами осуществляется с помощью RPM и библиотеками libsolv и hawkey. Для обработки метаданных и загрузки пакетов он использует librepo. Для эффективной обработки привилегий данных — libcomps.

Список изменений:

  • Исправления утечки ресурсов.
  • Добавлена функция группового обновления/установки/удаления пакетов.
  • Добавлена опция --refresh, для обновления метаданных из репозиториев.
  • Много изменений в API.

В Fedora 20 появится после того как проверят в Rawhide и не будет критических багрепотов от пользователей.

>>> Список изменений

 fedora, package manager

Релиз libssh 0.6.3



Вышло обновление для libssh, которое устраняет уязвимость CVE-2014-0017.

libssh — кроссплатформенная библиотека Си, поддерживающая протоколы SSHv2 и SSHv1. С помощью libssh вы сможете удалённо запускать приложения, передавать файлы и использовать защищённый туннель для ваших приложений.

Список изменений в версии 0.6.3:

  • Устранена уязвимость CVE-2014-0017.
  • Устранена утечка памяти.

>>> Скачать

 ssh, безопасность

Вангеры под Linux теперь в Steam!



Проект, который начался в 2008 году как неофициальное портирование на Linux/FreeBSD, закончился релизом в Steam под Linux, OS X и Windows.

Для тех, кто не играл и не знаком с игрой, прошу следующий текст: «Стань Вангером на тропах Цепи Миров. Контролируй дороги, выбивай спесь из всех встречных бродяг и реши судьбу последних эскейвов! Грабь, торгуй, воюй и просто исследуй миры Униванга в уникальном смешении гонок, экшена, приключений и квеста!»

 games, steam, игры

Релиз rethinkdb 1.12.4



RethinkDB создан для хранения документов JSON и масштабирования машин с наименьшим усилием.

RethinkDB имеет приятный язык запросов, который поддерживает такие запросы, как «table join» и «group by».

RethinkDB лёгок в настройке и изучении.

  • Простая модель программирования:
    • Модель данных JSON.
    • Распределённые запросы, соединения, агрегации и обновления.
    • Вторичные, соединённые и произвольные вычисленные индексы.
    • Hadoop-style map/reduce.
  • Лёгкое администрирование:
    • Дружелюбные инструменты с Web и CLI-интерфейсом.
    • Обработка машинных сбоев и прерываний соединения.
    • Репликация и отказоустойчивость дата-центра.
  • Горизонтальная масштабируемость:
    • Дробление и репликация множественных узлов.
    • Автоматическое распределение и распараллеливание узлов.
    • Операции Lock-free через MVCC.
  • RethinkDB в сравнении с другими базами данных:

Изменения в версии 1.12.4

  • Формат диска в этом релизе совместим с версиями от 1.12.0 до 1.12.3. Если вы обновляете версию 1.11.3 или ниже, сохраните ваши данные перед обновлением.
  • Исправлена ошибка в утверждении: [page->is_disk_backed()].
  • Исправлена ошибка, из-за которой происходил сбой сервера и некорректная обработка запросов.

>>> Скачать

 db, rethinkdb, субд

Релиз Qt 4.8.6



Разработчики компании Digia объявили о выпуске корректирующего релиза стабильной ветки кроссплатформенного фреймворка Qt 4.8.6. В новую версию было внесено более 200 изменений и багфиксов, в том числе:

  • Исправлена проблема в безопасности XML Entity Expansion Denial of Service (http://en.wikipedia.org/wiki/Billion_laughs).
  • Улучшена поддержка Mac OS X 10.9 Mavericks.
  • Бинарные пакеты для MinGW теперь собраны с gcc 4.8.2
  • Добавлен перевод на баскский язык, улучшены многие другие переводы.

>>> Полный список изменений

>>> Скачать

 digia, qt, qt4

Релиз Dnsmasq 2.70



Dnsmasq — лёгкий, легко конфигурируемый DNS, DHCP и TFTP сервер, спроектированный обеспечивать доменными именами (и опционально DHCP и TFTP) небольшие сети. Он может обеспечивать именами локальные машины, которые не имеют глобальных DNS-записей. DHCP сервер интегрирован с DNS сервером и даёт машинам с IP-адресом доменное имя, сконфигурированное раннее в конфигурационном файле. Dnsmasq поддерживает привязку IP-адреса к компьютеру или автоматическую настройку IP-адресов из заданного диапазона и BOOTP для сетевой загрузки бездисковых машин.

Разработчики позиционируют Dnsmasq, как программу, способную передавать адреса через NAT от модема. Но система так же хорошо функционирует в малых сетях, требует мало ресурсов для своей работы и проще настраивается.

Поддерживаемые платформы включают Linux (glibc или uClibc), BSD и Mac OS X.

Список изменений в версии 2.70

  • Исправлен сбой, введённый в версии 2.69, который происходил при запросе TCP, при компилировании с поддержкой DNSSEC и при работе с отключенным DNSSEC.
  • Исправлена регрессия, нарушающая функциональность ipset.

>>> Скачать

 dns, dnsmasq, dnssec

Google Web Designer Beta для Linux



Google выпустила WYSIWYG-редактор HTML5. Поддерживается создание web-страниц, баннеров и 3D-эффектов. На выходе получается блок кода HTML5, CSS3 и JavaScript. Контент автоматически адаптируется для разных браузеров и смартфонов.

Доступно для Debian/Ubuntu/Fedora/openSUSE

>>> Сайт проекта


Релиз консольного оконного менеджера GNU screen 4.2.0



После шестилетней задержки представлен новый значительный релиз консольного оконного менеджера GNU screen 4.2.0, позволяющего использовать один терминал для работы с несколькими приложениями.

Список изменений:

  • Поддержка слоёв (layouts).
  • Поддержка группировки окон.
  • Улучшена работа с мышью.
  • Обеспечен режим вертикального разбиения окна.
  • Добавлены новые команды.

 gnu, screen

Canonical будет поддерживать ядро linux 3.13 до апреля 2016 года



Последним выпуском, который поддерживает Greg Kroah-Hartman, станет linux 3.13.11, после чего поддержанием выпуска исправлений для данной 3.13 займётся Canonical. Обновления будут выпускаться canonical ubuntu kernel team до апреля 2016 года.

>>> Информация на Wiki Ubuntu

 canonical, linux kernel

Sonic Robo Blast 2 версии 2.1.8 -- игра с открытым исходным кодом, созданная фанатами Sonic the Hedg



Sonic Robo Blast 2 (SRB2) — 3D-игра с открытым исходным кодом, созданная фанатами Sonic the Hedgehog с использованием модифицированной версии движка Doom Legacy (порт Doom). SRB2 полностью вдохновлена сериями Sonic от Sega Genesis. SRB2 всё еще разрабатывается, но в ней уже есть тонна уровней, врагов, скорости, что доставит вам кучу удовольствия.

Особенности игры

  • Красивое 3D-оформление игры.
  • Это платформер старой школы, в комплекте которого кольца, пружины, опасности, обратная гравитация и другие препятствия из оригинальной игры.
  • Три игровых персонажей (каждый со своими уникальными способностями): Sonic, Tails, Knuckles.
  • Более 20 игровых уровней для игры: от зеленых лугов до глубоких подводных руин, шахт, гор и космических станций...
  • Мультиплеер на 2 игрока: разделенный экран или до 32 игроков в 9 различных игровых режимах онлайн.
  • Настраиваемые графика и опции управления (джойстик поддерживается).
  • Оригинальные саундтреки, созданные лучшими музыкальными исполнителями в интернете.
  • SRB2 включает возможность создавать свои собственные уровни, персонажей, игровые режимы.

Список изменений версии 2.1.8

  • Исправлен эксплойт в игре по сети, с помощью которого можно было аварийно завершить работу игры для всех.
  • Исправлено несколько больших проблем с рендерингом OpenGL.
  • Исправлено несколько привязок Lua.

>>> Список изменений

>>> Скриншоты и видео

 doom, sega

Bluefish 2.2.5



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

Небольшой cписок изменений:

  • Улучшение движка сканирования синтаксиса.
  • Улучшения файлового менеджера (теперь меньше потребляет ресурсов и работает быстрее).
  • Улучшения отступов в автодополнении.
  • Улучшения закладок.
  • Много улучшений на OS X (поддержка OS X Mavericks, дисплеев Retina, открытие файлов из «finder» на Mac OS X перемещено на хоткеи Cmd+C|V|X|A ).
  • Кроме того, было улучшение подсветки синтаксиса JQuery в JavaScript, HTML5 и HTML5 в PHP.

>>> Скачать

 html, верстка, програмирование

Dungeon crawl: stone soup 0.14



Вот и вышла новая версия популярного рогалика Dungeon Crawl Stone Soup.

В этой версии:

  • Две новые расы: formicids (насекомые) и vine stalkers (паразитирующее на людях растение).
  • Нижняя часть подземелья преобразована в новую ветку, «глубины» (the Depths) длиной в 5 уровне. В них находится вход в Realm of Zot.
  • Новые монстры. Среди прочего, появились три новых уника: Наташа (потерянный фамильяр могущественного волшебника), Астерион (король-минотавр) и Вашниа (командир элитного отряда стрелков нага).
  • Бог Dithmenos the Shadowed даёт последователям ауру тене и другие способности. Zin и Okawaru больше не беспокоиться о смерти союзников.
  • Большое количество новых заклинаний и предметов.

 roguelike, stone-soup

Афоризм дня по итогам голосования за 23 апреля 2014


Если вы очень долго не можете раскрутить свою девушку на секс, значит у неё на вас планы.

История дня по итогам голосования за 23 апреля 2014


Стою в очереди в супермаркете. Передо мной - трое. Мужик с несколькими бутылками пива и классической закуской, и мама с ребенком, берущая очень много разной еды и товаров в дом.
В момент когда мама находится в процессе выкладывания продуктов на ленту перед кассой, ребенок - мальчик лет 8-9 спрашивает что-то про вчерашний футбольный матч. И тут мама... мама, продолжая как ни в чем не бывало выкладывать продукты на полку, начинает абсолютно профессионально объяснять ребенку суть вчерашней игры, начиная с состава команд, тренеров, руководства клубов и тд. Лицо мужика пердо мной представляло собой незабываемое зрелище - сначала он резко напрягся, затем стал полон удивления, сменившегося недоумением (продуктов было ну очень много у мамы с ребенком, и рассказывала она минут 5-7), а затем оно постепенно начало приобретать задумчивый оттенок с заметной грустью и печалью. Когда мама с сыном ушли, мужик завис. Он явно о чем-то думал, или вспоминал, глядя на расположенные над кассой сигареты. Продавщица, не добившись от него реакции и решив что он не может выбрать, спросила: Мужчина вам какую? (имея в виду пачку) - Мужик, отвиснув, с глубокой грустью выдал: "Да нет. Нахрен. Мне бы ТАКУЮ ЖЕНУ......."

Анекдот дня по итогам голосования за 23 апреля 2014


- Почему вы много успеваете и относитесь ко всему оптимистично?
- А я просто ни с кем не спорю.
- Но это же невозможно!
- Ну невозможно, так невозможно.

Encrypted and incremental MySQL backups with Percona XtraBackup



We’ve recently received a number of questions on how to implement incremental MySQL backups alongside encryption with Percona XtraBackup. Some users thought it was not initially possible because with the default

options with XtraBackup, all files will be encrypted, but alas, that is not the case. This is where the option
becomes useful, because it allows you to save LSN (Log Sequence Number) information to another directory and exclude it from encryption, allowing you to use the same information needed by incremental backups. Enough talk, let me show you.

Because you would want to usually script your backup and restore procedure, I’d use variables here as well to make you more familiar. First, I’d create 3 folders, where my backups will be stored, ‘full’ for full backups, ‘incr’ for incremental backups, and ‘lsns’ to store an extra copy of my

file with

mkdir -p /ssd/msb/msb_5_5_360/bkp/full
mkdir -p /ssd/msb/msb_5_5_360/bkp/incr
mkdir -p /ssd/msb/msb_5_5_360/bkp/lsns

Second, to have better control of where my backups would go, I prefer assigning timestamped folders instead and use the –no-timestamp option to innobackupex.

CURDATE=$(date +%Y-%m-%d_%H_%M_%S)

Then manually create the specific directory where the backup’s xtrabackup_checkpoints file would be saved:

mkdir -p /ssd/msb/msb_5_5_360/bkp/lsns/$CURDATE

Of course, I need an encryption key for my encrypted backups, in this case, taking the example from the manual, I used openssl to generate a random key. You can use your own key string as long as its size conforms to the size required by the

algorithm you chose.

echo -n $(
   openssl enc -aes-256-cbc -pass pass:Password -P -md sha1 \
   | grep iv | cut -d'=' -f2
) > /ssd/msb/msb_5_5_360/bkp/backups.key

Next, I would run my full backup:

innobackupex --defaults-file=/ssd/msb/msb_5_5_360/my.sandbox.cnf \
   --extra-lsndir=/ssd/msb/msb_5_5_360/bkp/lsns/$CURDATE \
   --encrypt=AES256 --encrypt-key-file=/ssd/msb/msb_5_5_360/bkp/backups.key \
   --no-timestamp /ssd/msb/msb_5_5_360/bkp/full/$CURDATE

The output says my full backup is saved to:

innobackupex: Backup created in directory '/ssd/msb/msb_5_5_360/bkp/full/2014-04-23_01_20_46'
140423 01:20:55  innobackupex: Connection to database server closed
140423 01:20:55  innobackupex: completed OK!

Now here’s the trick, because the full backup is encrypted, we will use the xtrabackup_checkpoints file separately saved by xtrabackup to the

path we specified above to get the LSN and use that for our next incremental backup.

   cat /ssd/msb/msb_5_5_360/bkp/lsns/$CURDATE/xtrabackup_checkpoints \
   | grep to_lsn | cut -d'=' -f2
CURDATE=$(date +%Y-%m-%d_%H_%M_%S)
mkdir /ssd/msb/msb_5_5_360/bkp/lsns/$CURDATE

Above, we get the LSN value and assign it to a variable. Similarly, we created a new CURDATE string for our incremental backup to use and created a new directory for the xtrabackup_checkpoints file. If you plan to create another incremental backup based off of what we are about to take now, you will use this next xtrabackup_checkpoints file to get LAST_LSN.

With the up and coming Percona XtraBackup 2.2.1, you will not need

anymore nor parse the
file anymore for this purpose. A new feature that will allow the user to save backup metadata to an InnoDB table will be available.

So, now that we got our

value, we execute our incremental backup with the command:

innobackupex --defaults-file=/ssd/msb/msb_5_5_360/my.sandbox.cnf \
   --extra-lsndir=/ssd/msb/msb_5_5_360/bkp/lsns/$CURDATE \
   --encrypt=AES256 --encrypt-key-file=/ssd/msb/msb_5_5_360/bkp/backups.key \
   --no-timestamp --incremental --incremental-lsn $LAST_LSN \

Again, based on the output, my backup was created at:

innobackupex: Backup created in directory '/ssd/msb/msb_5_5_360/bkp/incr/2014-04-23_01_21_00'
140423 01:21:47  innobackupex: Connection to database server closed
140423 01:21:47  innobackupex: completed OK!

No we have a full backup and an incremental backup, of course to make sure our backups are usable, we’d like to validate them. To do that, our first step is to decrypt both full and incremental backups. innobackupex has another handy

option for that, you can even use
to make it faster.

innobackupex --decrypt=AES256 \
   --encrypt-key-file=/ssd/msb/msb_5_5_360/bkp/backups.key \
innobackupex --decrypt=AES256 \
   --encrypt-key-file=/ssd/msb/msb_5_5_360/bkp/backups.key \

Once the backups are decrypted, we can go through the usual process of preparing a full and incremental backups as described on the manual.

innobackupex --defaults-file=/ssd/msb/msb_5_5_360/my.sandbox.cnf \
   --apply-log --redo-only /ssd/msb/msb_5_5_360/bkp/full/2014-04-23_01_20_46
innobackupex --defaults-file=/ssd/msb/msb_5_5_360/my.sandbox.cnf \
   --apply-log --redo-only /ssd/msb/msb_5_5_360/bkp/full/2014-04-23_01_20_46 \
innobackupex --defaults-file=/ssd/msb/msb_5_5_360/my.sandbox.cnf \
   --apply-log /ssd/msb/msb_5_5_360/bkp/full/2014-04-23_01_20_46

The post Encrypted and incremental MySQL backups with Percona XtraBackup appeared first on MySQL Performance Blog.

Анекдот дня по итогам голосования за 22 апреля 2014


Во время выступления Путина в Кремле три депутата "Единой России" были госпитализированы со сломанными ладонями.

Утверждено кодовое имя Ubuntu 14.10



Марк Шаттлворт объявил о присвоении следующему выпуску Ubuntu (14.10) имени «Utopic Unicorn» (Утопический Единорог).


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



Percona Live 2014 behind; MySQL ahead



I started using MySQL 11 years ago.  That’s not too long compared to other people in the industry, but nonetheless here’s my perspective on the state of the MySQL industry after attending Percona Live MySQL Conference & Expo 2104.

In short, the attitude around MySQL has changed from “Does it work?” to “Is it fast and reliable?” to “How do we manage it?” To further generalize, these periods correspond roughly to the original MySQL AB team, Percona and Oracle, and the last period is the current period so key players are emerging, like WebScaleSQL.

Does it work?

Peter Zaitsev said in one of his keynote talks that MySQL used to be considered a toy.  Today that assessment is wrong, or at least very difficult to defend.  The proof is that nearly all of the largest and most successful web companies today use it (Facebook, Twitter, Google, Tumblr, Box, etc.), and myriad other web and traditional companies use it too.  MySQL works, but it’s not a panacea and successful companies realize this.  I’ll talk more about this at this later.

Is it fast and reliable?

The have been rough spots, like MySQL 5.0 and the MySQL-Sun-Oracle transition, but MySQL is past these.  The history is, of course, more nuanced but generally speaking those rough spots gave rise to Percona.  Fast and reliable has been at the heart of Percona Server even before it was Percona Server (i.e. when it was still a collection of patches).  Other projects and companies were created during this time, but in my biased opinion Percona held the fort.  When MySQL became an Oracle product, the collective MySQL conscience waited to see if they would kill or revive it.  They have revived it.  MySQL 5.6 is great, and 5.7 is looking good so far too.  The work Percona did and still does combined with Oracle’s work has made MySQL a product you can bet the business on.  In other words: MySQL won’t fail you.  Moreover, the work at companies like Fusion-io proves that the state of the art apropos performance is alive and well, as highlighted by Nisha Talagala’s excellent keynote “The Evolution of MySQL in the All-Flash Datacenter.”

How do we manage it?

MySQL has become business.  Let me put it another way that’s difficult to say because I consider myself a hacker but I think it’s true nonetheless (and I’ve heard others say it too): MySQL isn’t cool any more.  “Cool” is the context of technology a weird euphemism for “new and unstable but useful and promising”.  MySQL was all these in past years, but now it’s mature, proven to be stable and useful, and it has delivered on the promise of being a free, open-source RDBMS that’s stable and useful.  As a business product, the concern is manageability: deploying, scaling, monitoring, maintaining, etc.  These are not new concerns; the difference today is focus: in the past these mattered less because we still had core usability and performance issues, but today MySQL usability and performance are solved problems.  Mark Callaghan’s PLMCE 2012 keynote was aptly titled: “What Comes Next?”  In 2012 he saw that MySQL at core was stable, so he turned his attention to things around it which can be pain points, like migrating shards and row compression.  In other words, his message was not “here’s what we still need to fix in MySQL”, it was “here’s what we need to manage MySQL sanely.”  He reiterated this message in a recent blog post, “Modern databases“:

“We have much needed work on write-optimized database algorithms – Tokutek, LevelDB, RocksDB, HBase, Cassandra. We also get reports of amazing performance. I think there is too much focus on peak performance and not enough on predictable performance and manageability.”

In my humble opinion, this is the current state of the MySQL industry: learning, developing, and establishing how to manage MySQL.  Although the new WebScaleSQL collaboration is focused prima facie on performance at scale, as Mark said in his blog post, “Predictable performance is part of manageability.”  There are many other companies and projects for managing various aspects of MySQL, like ClusterControl for MySQL Galera by Severalnines and Propagator by Outbrain (both were are PLMCE this year).

Earlier I said “MySQL works, but it’s not a panacea and successful companies realize this.”  Successful companies like Dyn (who presented this year) use MySQL and other technologies.  It’s important to realize that MySQL is one part of a business.  The other parts are Hadoop, Redis, memcached, etc.  OpenStack and other cloud platforms are increasingly mentioned, too.  Therefore, managing MySQL is only half the story.  The other half is understanding MySQL’s place in and interaction with other business technologies.

In summary, for me Percona Live MySQL Conference & Expo 2014 highlighted how MySQL has become one castle in the kingdom whereas 10 years ago it was an outpost on the frontier.  People no longer ask “is MySQL fast and reliable?” Instead they ask, “how can we manage 100 MySQL instances and a handful of other technologies with 2 full-time DBAs?”  The MySQL industry will continue to add features and improve performance, but we have shifted from doing that in the service of making a stable product to making a manageable product.

The post Percona Live 2014 behind; MySQL ahead appeared first on MySQL Performance Blog.

Релиз Audacious 3.5



Вышла очередная версия популярного проигрывателя Audacious с интерфейсом на GTK+.

Основные изменения:

  • возможность удалять файлы с диска или перемещать их в корзину;
  • перемотка списков с помощью колеса мыши;
  • отображения числа песен в названии вкладки;
  • поддержка списков в формате ASXv3;
  • автоскрытие заголовка вкладки при одном списке;
  • доступ к будильнику через меню сервисов;
  • обновлены настройки плагина JACK;
  • использование ID3v2.3 вместо APEv2;
  • поддержка элемента COVERART в тегах Ogg Vorbis;
  • удалена поддержка MPRIS 1.0, libaudclient и аппаратного MIDI.




 audacious, gtk

Афоризм дня по итогам голосования за 22 апреля 2014


Хорошо, когда всё плохо. Любое изменение ситуации наверняка будет в лучшую сторону.

История дня по итогам голосования за 22 апреля 2014


Работаю в техподдержке. Разговор с абонентом в Пасхальный день:
Оператор: - Здравствуйте. Чем могу помочь?
Абонент: - Здравствуйте, Христос воскрес, а интернет нет...

Анекдот дня по итогам голосования за 22 апреля 2014


Одесса. Привоз. Колбасный ряд.
- Мужчина! Шо вы ото целый час ходите, пробуете и ничего не берёте?! Вам шо, таки ничего не нравится?
- Нравится!
- Шо, денег нет?!
- Есть!
- Ну так покупайте!
- Зачем?
- Шобы кушать!
- А я шо делаю?

Релиз Runtu LITE 14.04



Runtu — российский дистрибутив Linux, базирующийся на Ubuntu, использует в качестве графической среды GNOME и приложения на GTK+2. Также существуют сборки с более легковесной средой рабочего стола LXDE и Openbox. Идея Runtu — простота и лёгкость Ubuntu, соединённая с качественной русской локализацией и набором необходимого программного обеспечения, готового к использованию сразу после установки. Дистрибутив использует репозиторий Ubuntu и Launchpad PPA.

  • Основные элементы системы:
    • Менеджер дисплея: LightDM
    • Оконный менеджер: Openbox
    • Файловый менеджер: Nemo
    • Панель рабочего стола: LXPanel
    • Менеджер сети: NetworkManager
    • Версия ядра: Linux 3.12.0-4-generic
  • Минимальные системные требования:
    • RAM - 256Mb
    • CPU - с поддержкой PAE
    • HDD - 2Gb

>>> Скачать

>>> Официальный сайт

>>> Скриншот: [1]

 runtu, ubuntu

OpenBSD производит массовый аудит и переработку OpenSSL -- libreSSL



В свете недавней очень серьёзной уязвимости Heartbleed протокола Heartbeat в сторонней библиотеке OpenSSL, разработчики OpenBSD решили окончательно и бесповоротно переписать всю библиотеку SSL, удалив груду разных кодов совместимости и поддержки несуществующих архитектур (например, big-endian i386/amd64), сохранив лишь API-совместимость с upstream OpenSSL.

Данное начинание некоторые временно называли OpenOpenSSL (т.к. оригинальный OpenSSL разрабатывается вне OpenBSD), но OpenBSD Foundation теперь объявило официальное название — «LibreSSL (the OpenBSD fork of OpenSSL)». Название также можно воспринимать как «lib-re-ssl» — переработка библиотеки ssl.

Что именно принудило проект OpenBSD отказаться от какого-либо сотрудничества с OpenSSL в будущем? Разработчик tedu@openbsd решил описать историю нового libressl на свежую память:

  • Протокол Heartbeat никто до сих пор не использует, однако он был всегда включён с момента поддержки в OpenSSL пару лет назад, и его нельзя было выключить без перекомпиляции с OPENSSL_NO_HEARTBEATS. (Поддержка теперь была полностью удалена из OpenBSD libressl.)
  • Предполагалось, что для избежания Heartbleed на OpenBSD достаточно будет установить опцию J в malloc.conf. Однако разработчики OpenSSL специально позаботились и сделали это невозможным, и поэтому даже на OpenBSD необходимо пересобирать всю библиотеку для устранения серьёзной уязвимости Heartbleed (в 5.3, 5.4 и 5.5, OpenSSL 1.0.0f в 5.2 и ранее не уязвим).
  • В процессе тестирования опции J с OpenSSL была обнаружена старинная ошибка в OpenSSL, о которой уже несколько лет было известно разработчикам OpenSSL, и даже имелось очень простое исправление. Однако разработчики OpenSSL до сих пор не приняли это к сведению. Командам OpenBSD, FreeBSD и Debian пришлось исправлять ошибку без какой-либо помощи от OpenSSL. Пару недель спустя, в upstream CVE-2010-5298 до сих пор исправить не удосужились.

Так как сотрудничество с таким upstream нереально и в дальнейшем не предполагается, было принято решение улучшить читаемость всего кода в соответствии с style(9) — KNF, а также удалить весь неиспользуемый код для упрощения аудита. В будущем планируется выпуск портативной версии, после периода стабилизации.

 heartbeat, libressl, openbsd, openssl, безопасность

GCC 4.9.0 вышел!



Спустя один год и один месяц с предыдущего значительного релиза объявлен выпуск новой версии набора компиляторов GNU Compiler Collection 4.9.0.

Список новшеств:

  • Local Register Allocator, представленный в версии 4.8.0 для архитектур ia32 и x86-64, теперь используется также для Aarch64, ARM, S/390 и ARC по умолчанию, а для PowerPC и RX опционально.
  • Существенные улучшения девиртуализации C++, исправлены различные ограничения масштабируемости межпроцедурных оптимизаций и LTO.
  • Во фронтенд C++ была добавлена поддержка различных возможностей будущего стандарта C++14. Наиболее значительное изменение в стандартной библиотеке C++ — поддержка регулярных выражений C++11.
  • GCC 4.9.0 поддерживает стандарт OpenMP 4.0 для C и C++, а также частично реализовано расширение Cilk Plus для параллелизма данных и задач.
  • Различные виды неопределенного поведения (undefined behavior) теперь могут быть диагностированы во время выполнения с помощью Undefined Behavior Sanitizer.
  • Добавлена поддержка новой аппаратной платформы little-endian powerpc64le-linux, по умолчанию для нее используется новый ABI PowerPC ELFV2.
  • Добавлена поддержка набора инструкций AVX-512 на x86-64 и ia32.

 gcc, gnu

Audacious переходит на Qt и C++



John Lindgren, ведущий разработчик плеера Audacious, сообщил о начале разработки интерфейса, базирующегося на Qt. В настоящее время в git проведена работа по удалению зависимости ядра плеера от GTK+. Кроме того, рассматривается возможность перевода всей кодовой базы плеера на язык программирования C++ вместо использования разных языков программирования для ядра и пользовательского интерфейса.

Поводом для столь радикального решения послужили последние изменения в GTK+, приводящие к проблемам интеграции GTK-приложений в окружения, отличные от GNOME3.

Напомним, что из-за спорного подхода к разработке GTK+, решение о переходе на Qt приняли разработчики LXDE.

Следует также отметить, что в предыдущей версии GTK+ 3.10 также были внесены спорные изменения, связанные с удалением иконок в меню и акселераторов.

 audacious, gtk, qt

Maynard -- новая графическая оболочка на основе Wayland для Raspberry Pi



Компания Collabora и организация Raspberry Pi Foundation представили первые результаты совместной работы по подготовке нового рабочего окружения Maynard, построенного на технологиях Wayland. Оболочка основана на наработках Weston gtk-shell и уже достигла состояния пригодного для тестирования рабочего прототипа.

 raspberry pi, wayland

Выложен первый сезон подкаста EaxCast, создана кампания по сбору средств на запись второго сезона



Стал полностью доступен первый сезон подкаста о программировании на русском языке EaxCast, состоящий из 7-и выпусков. В этих выпусках делался особый акцент на NewSQL базах данных, распределенных системах и функциональном программировании. Однако в целом подкаст не ограничивается исключительно этими темами. В выпусках часто принимают учатие гости, программисты, имеющие опыт в самых различных областях. Размер аудитории подкаста на данный момент оценен примерно в 1000 человек. Выпуски сопровождается текстовой расшифровкой. Изначально планировалось делать короткие выпуски примерно по 20 минут, но в итоге их продолжительность была увеличена до 40-45 минут.

Первое время ведущие делали текстовую расшифровку своими силами, но из-за того, что выпуски стали длиннее, пришлось переложить ее на профессиональных копирайтеров. Поскольку услуги хороших копирайтеров стоят немалых денег, была создана кампания на BoomStarter, в рамках которой планируется собрать деньги на текстовую расшифровку второго сезона (~24 выпуска). На данный момент собрана уже треть от требуемой суммы, кампанию поддержало более 40 человек. Заканчивается кампания 12 мая.

Если собрать требуемую сумму не удастся, подкаст, вероятнее всего, будет заброшен. Ведущие объясняют это тем, что без текстовой расшифровки они будут работать «на корзину», а выпуски будут лежать «мертвым грузом» сразу после прослушивания. То есть, их нельзя будет найти через поисковые системы и так далее. Для спонсоров, сделавших взнос размером более 500 или более 3000 рублей предусмотрены специальные вознаграждения. В случае успешности кампании планируется не только записать второй сезон, но и собрать бесплатную электронную книгу, в которую войдет полная текстовая расшифровка первого и второго сезона.

 подкаст, программирование

Wasteland 2 теперь доступна и пользователям Linux



Ранний доступ к Wasteland 2 в Steam теперь поддерживает Linux, как и было обещано фандерам в Kickstarter-кампании игры в дополнении к PC и Mac. Поддержка была введена в крупном патче, который также добавил в RPG массу нового контента.

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

Как пишет inXile, данный патч – признак финишной прямой. Разработка вступает в свою финальную стадию. Ожидается, что игра появится в продаже в ближайшие месяцы. Геймеры участвующие в программе раннего доступа на данный момент могут насладиться приблизительно 40% от всего контента, или 20-25 часов геймплея.

Справка: Wasteland 2 — постапокалиптическая ролевая игра от Брайана Фарго и InXile Entertainment. Она будет продолжением игры 1988 года Wasteland (игра Fallout является её духовным преемником) и идейным продолжением серии Fallout. Финансирование игры на 100 % обеспечено фанатами серии и будущими игроками с помощью сервисов Kickstarter и Paypal. Wasteland 2 будет компьютерной игрой, не планируется переносить её на другие игровые платформы, кроме персонального компьютера.

Wasteland 2 в Steam

 games, steam, wasteland

Важное обновление drupal 7.27



Drupal — система управления содержимым, используемая также как каркас для веб-приложений (CMF), написанная на языке PHP и использующая в качестве хранилища данных реляционную базу данных (поддерживаются MySQL, PostgreSQL и другие). Drupal является свободным программным обеспечением, защищённым лицензией GPL, и развивается усилиями энтузиастов со всего мира.

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

Прочитать подробнее об ошибке можно здесь.

 drupal, drupal7, безопасность, быстро

Релиз doxygen 1.8.7



Doxygen — это кроссплатформенная система документирования исходных текстов, которая поддерживает C++, Си, Objective-C, Python, Java, IDL, PHP, C#, Fortran, VHDL и, частично, D.

Doxygen генерирует документацию на основе набора исходных текстов и также может быть настроен для извлечения структуры программы из недокументированных исходных кодов. Возможно составление графов зависимостей программных объектов, диаграмм классов и исходных кодов с гиперссылками.

Doxygen имеет встроенную поддержку генерации документации в формате HTML, man, RTF и XML. Также вывод может быть легко сконвертирован в CHM, PostScript, PDF.

Для html-представления документации, размещаемого на web-серверах, существует удобный способ организации поиска (при помощи создаваемого Doxygen'ом PHP-модуля) и ссылок на внешнюю документацию.

Doxygen используется многими проектами, в том числе KDE, Pidgin, Torque Game Engine, AbiWord, Mozilla, FOX toolkit, Crystal Space, Drupal. Есть встроенная поддержка в KDevelop.

Неполный список изменений в версии 1.8.7:

  • Улучшения в sqlite3.
  • Улучшения в поддержке python3.
  • Улучшения в поддержке Fortran.
  • Улучшения в поддержке HTML4.
  • Улучшения в поддержке Latex.
  • Улучшения в поддержке Objective-C.
  • Огромное множество других улучшений и исправленных ошибок.

>>> Скачать

 doxygen, дождались

Virtual ANS 2.2



Virtual ANS — программный симулятор легендарного советского фотоэлектронного синтезатора АНС, созданного инженером Евгением Мурзиным в период с 1938 по 1958 г. Вы можете услышать звуки АНСа в фильмах Андрея Тарковского «Солярис», «Зеркало», «Сталкер», или, например, в сцене ночного кошмара из комедии Леонида Гайдая «Бриллиантовая рука».

( читать дальше... )

 audio, sunvox, synth, virtual ans

Афоризм дня по итогам голосования за 21 апреля 2014


Цени того, кто на твои вопросы спросит "Чем помочь?"

История дня по итогам голосования за 21 апреля 2014


Катюшка, соседка наша по участку на даче очень любит огроменных собак. Последние два года ее страсть и пламенная любовь – это сенбернары. На даче она живет постоянно, у нее даже есть выстроенные специальные вольеры, которые оборудованы всякими прибамбасами для проживаниями таких собаченций во дворе.

Ну а мы только с весны по осень на даче поселяемся.
На прошлые выходные, узрев наш приезд, Катюха безо всякого здрасте вам, сразу заявила, что мы на ближайшие семь дней становимся опекунами ее сембернарихи Люсьен (в простонародье - Люськи-черт-побери-убери-жопу-корова).
- Да какие проблемы, соседка, покормим мы твою псину - благо через забор проживаем, - сначала согласилась я.
- Хм.., - замешкалась она. – Понимаешь, когда я уезжаю надолго, она одна на участке ночами такие представления устраивает, что соседи милицию вызывают, говорят что с кладбища, расположенного за пару километров от поселка, все мертвяки на ее концерт собираются. Так что придется вам ее на ночь у себя в прихожей укладывать. Иначе – никак!!!

На мои отнекивания по поводу уважительной причины в виде появления у нас подрастающего кота, она сразу отрезала.
- Ты же Люсьен со щенячества знаешь. Она сама как котенок, только гавкает, а не мяучит, - и немного подумав, добавила. – Только спать по разным комнатам разгоняйте, а то моя корова ненароком просто во сне задавить может.

На этом консультации по содержанию коровы-Люсьен были исчерпаны, и на следующую ночь нам пришлось принимать нового временного постояльца. Она после прогулки с моим мужем по центральному проспекту поселка и сытного ужина у себя в вольере, флегматично зашла в дом, а так как у нас она бывала не единожды, то просто понюхав постеленную ей её-же подстилку, блаженно растянулась во всю прихожую, захватив еще немного и холла.

Вроде бы и все.
Чищу я картошку на кухне, и боковым зрением наблюдаю, как ползет какая-то склизкая рыжая крыса по паркету, причем крыса-мутант. Нет, в обморок я не упала, а машинально запулила в нее хооорошую такую картофелину. Нормальная крыса чтобы сделала? Сделала бы лапы. А этот мутант только удивленно мявкнул и ушел в бессознательное состояние.
Тут же на кухню вползает на карачках мой муженек и, икая от смеха, начинает приводить в чувства крысу-мутанта-нашего-кота.
Отсмеявшись, он мне поведал преобразование нашего героя в крысу, так как сам все это наблюдал.

Знакомство рыжего и наглого котенка Льва началось с его агрессии на чудовище, которое только лишь запахом напоминало собаку. Он со свойственной ему манерой "Царя всея Руси", подошел и обнюхал ЭТО что-то, захватившее его владения. Сначала осторожно обследовал выступающие в холл конечности, то-бишь – лапы. Потом подкравшись к морде Люсьен, он потрогал ее нос (размером почти с его дурную головушку). Потрогал аккуратно, ну, как и все кошачьи, сначала не выпуская когти. От прикосновения «святая-святых» - носа, Люська тут-же открыла ГЛАЗА.
То, что наш Лева такого не видел, муж понял, когда котенок с испугу выпустил свои коготочки в носяру собаченчии, и попытался обороняться. Ну а что такое 0,5 см "молочных" коготков против задубевшей кожи носа сенбернара? Тут Люська приподняла голову, и нашла себе ДРУГА!!!

Все что проделывал далее в кошачьей истерике Лева, Люська восприняла как игру. Когда Левка желая скрыться от того видения – (где был рыжий нахал?) с пробуксовкой на новом паркете и пытался от чудовища стартовать по далее, то собака просто подвинула его лапищей к пасти, и не жалея слюней, которых у нее всегда в избытке, облизала. Облизала славненько так, от кончиков лап – до кончиков его рыжих ушей. Дружить – так дружить!!!
Наш Лев тут-же позорно попытался скрыться от места поражения, где к его стыду и оставил лужу. Ну не каждый же день тебя так любят!!!
Вот и пополз он ко мне на кухню за сочувствием, а я его так нехорошо, в лобешник картофелем встретила...
Два дня уже прощения у него выпрашиваем вместе с Люськой...