postgre sql в веб приложениях иван золотухин
TRANSCRIPT
PostgreSQL в PostgreSQL в веб-приложенияхвеб-приложениях
Отказоусточивость Отказоусточивость
Балансировка нагрузки Балансировка нагрузки
Репликация Репликация
МасштабированиеМасштабирование
Иван Иван ЗолотухинЗолотухин[email protected]@postgresmen.ru
www.rit2007.ru
PostgreSQL - это...PostgreSQL - это...
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
Самая продвинутая из открытых СУБД в мире
www.rit2007.ru
PostgreSQL - это...PostgreSQL - это...
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
Надежность и устойчивость на любых нагрузках
Превосходная поддержка от community
КроссплатформенностьFreeBSDLinuxSolarisWindows
www.rit2007.ru
PostgreSQL - это...PostgreSQL - это...
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
Высокий уровень соответствия ANSI SQL 92, ANSI SQL 99 и ANSI SQL 2003
Интерфейсы для Tcl, Perl, C, C++, PHP, ODBC, JDBC, Embedded SQL in C, Python, Ruby, ...
Развитые административные утилиты (pgAdmin, phpPgAdmin, ...)
www.rit2007.ru
PostgreSQL - это...PostgreSQL - это...
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
Views, sequences, inheritance, outer joins, subselects, referential integrity, rules, triggers, user-defined functions, stored procedures, PL/SQL, PL/PgSQL, PL/Perl, PL/PHP, PL/Tcl, PL/sh, PL/Ruby, PL/Rails, PL/Python, PL/Django, extensible datatypes, hot backup, ACID, functional and partial indexes, i18n, unicode, full-text search, XML, SSL, ...
www.rit2007.ru
PostgreSQL in the WebPostgreSQL in the Web
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
ЯндексРамблерРБКРабота.руВебальтаSkype+ другие крупные анонимные проекты
www.rit2007.ru
ОтказоустойчивостьОтказоустойчивость(failover)(failover)
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
www.rit2007.ru
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
Балансировка нагрузкиБалансировка нагрузки
Load balancer
www.rit2007.ru
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
МасштабированиеМасштабирование(scale-out, а не scale-up)(scale-out, а не scale-up)
www.rit2007.ru
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
РепликацияРепликацияMaster/Slave - asynchronousMaster/Slave - asynchronous
async
www.rit2007.ru
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
РепликацияРепликацияMaster/Slave - synchronousMaster/Slave - synchronous
sync
www.rit2007.ru
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
РепликацияРепликацияMulti-Master - synchronousMulti-Master - synchronous
sync
www.rit2007.ru
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
РепликацияРепликацияMulti-Master - asynchronousMulti-Master - asynchronous
async
With conflicts resolution!
www.rit2007.ru
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
Pgpool-IIPgpool-II
pgpool
INSERT, UPDATE, DELETEна все узлы
SELECT на один узел
www.rit2007.ru
Pgpool-IIPgpool-II
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
Менеджер соединений (connection pooling + кеш)
Failover (обнаружение отказа и переключение на резервный сервер)
Репликация (синхронная, мульти-мастер)
www.rit2007.ru
Pgpool-IIPgpool-II
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
Балансировка нагрузки
Master/Slave режим -- работа вместе с другой системой репликации: Slony-I, WAL, ...)
Параллельное выполнение запросов
Нет ограничений на число узлов кластера (как было в pgpool-I)
www.rit2007.ru
Pgpool-IIPgpool-II
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
www.rit2007.ru
Pgpool-IIPgpool-II
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
www.rit2007.ru
Pgpool-IIPgpool-II
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
www.rit2007.ru
Slony-ISlony-I
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
Master to multiple slaves
Самая известная репликация для PostgreSQL
Асинхронная система
Простота настройки (4 часа Максима Богука)
Десятки слейвов
Каскады реплицируемых серверов
www.rit2007.ru
Slony-ISlony-I
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
www.rit2007.ru
PgClusterPgCluster
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
Синхронный мультимастер
Балансировка нагрузки
Высокодоступная (HA) система
Cluster DBs, Load Balancer, Replicator
Для ленивых: решение от Cybertec, Austria
www.rit2007.ru
Трансфер логовТрансфер логов(WAL shipping)(WAL shipping)
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
Асинхронная система
Встроена в PostgreSQL
Hot backup
Нельзя читать со слейвов
www.rit2007.ru
SkypeSkype
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
PL/Proxy: проксирование запросов
PgBouncer: легкий менеджер соединений
SkyTools: управление кластером
www.rit2007.ru
Skype: SkyToolsSkype: SkyTools
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
PgQ: generic queue implementation
WAL Manager: WAL setup + hot failover
Londiste: replication tool
www.rit2007.ru
SkypeSkype
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
www.rit2007.ru
SkypeSkype
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
www.rit2007.ru
SkypeSkype
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
www.rit2007.ru
Счастье естьСчастье есть
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007
Смотрите в CVS этим летом блокбастер 2007 года: простая асинхронная master-slave репликация на трансфере логов (WAL shipping), встроенная в PostgreSQL
www.rit2007.ru
Спасибо!Спасибо!
Иван Золотухин postgresmen.ru
РИТ-2007, Москва, 17 апреля 2007