Daily Archives: July 14, 2010

PHP for Android

Анонсирован проект “PHP for Android” в рамках которого представлена система для выполнения на платформе Android приложений, написанных на языке PHP. В настоящий момент для телефонов на базе платформы Android подготовлен установочный APK-файл, интегрирующий поддержку PHP 5.3 в созданную разработчиками Google подсистему Android Scripting Environment (ASE). Исходные тексты разработки распространяются в рамках лицензии Apache.

PHP-скрипты могут выполняться в окружении Android из командной строки, функционировать как фоновые процессы или выступать в роли обычных GUI приложений.

Работа с MySQL кластером в Doctrine

В этой статье я хочу рассказать, как настроить Doctrine таким образом, чтобы использовать master-сервера для записи, а slave-сервера для чтения данных. Эта стратегия позволит добиться распределения нагрузки между серверами БД. Речь идет именно о нескольких серверах, на которых реплицируются базы, а не о ndbcluster, как некоторые могли бы подумать.

Итак, сначала мы должны сконфигурировать все дсотупные соединения в Doctrine.

Теперь, когда у нас есть один master-сервер, и 4 slave-сервера мы можем переписать классы Doctrine_Record и Doctrine_Query для добавления логики по разделению запросов для чтения и для записи.

Тормоза при коннектах к MySQL на другом сервере

У сайта вдруг начали появляться тормоза. Скрипт отарбатывал больше 10 секунд. Начали с коллегами копать и выяснили, что очень большое время занимает коннект к серверу БД. По 5 секунд на коннект, два коннекта = 10 секунд.

Оказывается, это виноват резолв имен. Чтобы решить проблему прописали хосты с которых идут коннекты в /etc/hosts сервера БД, и стали запускать mysqld с параметром –skip-name-resolve

После этого время работы сократилось на порядок.

Подробнее о резолве в MySQL можно прочитать здесь:

http://dev.mysql.com/doc/refman/5.0/en/dns.html