30
PostgreSQL в PostgreSQL в веб-приложениях веб-приложениях Отказоусточивость Отказоусточивость Балансировка нагрузки Балансировка нагрузки Репликация Репликация Масштабирование Масштабирование Иван Иван Золотухин Золотухин postgresmen.ru postgresmen.ru [email protected] [email protected]

Postgre Sql в веб приложениях иван золотухин

Embed Size (px)

Citation preview

Page 1: Postgre Sql в веб приложениях   иван золотухин

PostgreSQL в PostgreSQL в веб-приложенияхвеб-приложениях

Отказоусточивость Отказоусточивость

Балансировка нагрузки Балансировка нагрузки

Репликация Репликация

МасштабированиеМасштабирование

Иван Иван ЗолотухинЗолотухин[email protected]@postgresmen.ru

Page 2: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

PostgreSQL - это...PostgreSQL - это...

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Самая продвинутая из открытых СУБД в мире

Page 3: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

PostgreSQL - это...PostgreSQL - это...

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Надежность и устойчивость на любых нагрузках

Превосходная поддержка от community

КроссплатформенностьFreeBSDLinuxSolarisWindows

Page 4: Postgre Sql в веб приложениях   иван золотухин

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, ...)

Page 5: Postgre Sql в веб приложениях   иван золотухин

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, ...

Page 6: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

PostgreSQL in the WebPostgreSQL in the Web

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

ЯндексРамблерРБКРабота.руВебальтаSkype+ другие крупные анонимные проекты

Page 7: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

ОтказоустойчивостьОтказоустойчивость(failover)(failover)

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Page 8: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Балансировка нагрузкиБалансировка нагрузки

Load balancer

Page 9: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

МасштабированиеМасштабирование(scale-out, а не scale-up)(scale-out, а не scale-up)

Page 10: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

РепликацияРепликацияMaster/Slave - asynchronousMaster/Slave - asynchronous

async

Page 11: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

РепликацияРепликацияMaster/Slave - synchronousMaster/Slave - synchronous

sync

Page 12: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

РепликацияРепликацияMulti-Master - synchronousMulti-Master - synchronous

sync

Page 13: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

РепликацияРепликацияMulti-Master - asynchronousMulti-Master - asynchronous

async

With conflicts resolution!

Page 14: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Pgpool-IIPgpool-II

pgpool

INSERT, UPDATE, DELETEна все узлы

SELECT на один узел

Page 15: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Pgpool-IIPgpool-II

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Менеджер соединений (connection pooling + кеш)

Failover (обнаружение отказа и переключение на резервный сервер)

Репликация (синхронная, мульти-мастер)

Page 16: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Pgpool-IIPgpool-II

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Балансировка нагрузки

Master/Slave режим -- работа вместе с другой системой репликации: Slony-I, WAL, ...)

Параллельное выполнение запросов

Нет ограничений на число узлов кластера (как было в pgpool-I)

Page 17: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Pgpool-IIPgpool-II

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Page 18: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Pgpool-IIPgpool-II

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Page 19: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Pgpool-IIPgpool-II

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Page 20: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Slony-ISlony-I

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Master to multiple slaves

Самая известная репликация для PostgreSQL

Асинхронная система

Простота настройки (4 часа Максима Богука)

Десятки слейвов

Каскады реплицируемых серверов

Page 21: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Slony-ISlony-I

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Page 22: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

PgClusterPgCluster

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Синхронный мультимастер

Балансировка нагрузки

Высокодоступная (HA) система

Cluster DBs, Load Balancer, Replicator

Для ленивых: решение от Cybertec, Austria

Page 23: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Трансфер логовТрансфер логов(WAL shipping)(WAL shipping)

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Асинхронная система

Встроена в PostgreSQL

Hot backup

Нельзя читать со слейвов

Page 24: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

SkypeSkype

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

PL/Proxy: проксирование запросов

PgBouncer: легкий менеджер соединений

SkyTools: управление кластером

Page 25: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Skype: SkyToolsSkype: SkyTools

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

PgQ: generic queue implementation

WAL Manager: WAL setup + hot failover

Londiste: replication tool

Page 26: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

SkypeSkype

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Page 27: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

SkypeSkype

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Page 28: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

SkypeSkype

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Page 29: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Счастье естьСчастье есть

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007

Смотрите в CVS этим летом блокбастер 2007 года: простая асинхронная master-slave репликация на трансфере логов (WAL shipping), встроенная в PostgreSQL

Page 30: Postgre Sql в веб приложениях   иван золотухин

www.rit2007.ru

Спасибо!Спасибо!

Иван Золотухин postgresmen.ru

РИТ-2007, Москва, 17 апреля 2007