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

20070407 Rit2007 Scalability Replication Zolotukhin

May 18, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 20070407 Rit2007 Scalability Replication Zolotukhin

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

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

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

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

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

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

Page 2: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

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

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

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

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

Page 3: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

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

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

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

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

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

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

Page 4: 20070407 Rit2007 Scalability Replication Zolotukhin

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: 20070407 Rit2007 Scalability Replication Zolotukhin

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: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

PostgreSQL in the WebPostgreSQL in the Web

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

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

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

Page 7: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

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

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

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

Page 8: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

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

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

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

Load balancer

Page 9: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

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

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

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

Page 10: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

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

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

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

async

Page 11: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

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

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

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

sync

Page 12: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

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

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

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

sync

Page 13: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

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

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

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

async

With conflicts resolution!

Page 14: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

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

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

Pgpool-IIPgpool-II

pgpool

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

SELECT на один узел

Page 15: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

Pgpool-IIPgpool-II

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

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

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

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

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

Page 16: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

Pgpool-IIPgpool-II

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

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

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

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

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

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

Page 17: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

Pgpool-IIPgpool-II

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

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

Page 18: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

Pgpool-IIPgpool-II

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

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

Page 19: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

Pgpool-IIPgpool-II

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

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

Page 20: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

Slony-ISlony-I

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

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

Master to multiple slaves

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

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

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

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

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

Page 21: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

Slony-ISlony-I

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

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

Page 22: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

PgClusterPgCluster

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

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

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

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

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

Cluster DBs, Load Balancer, Replicator

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

Page 23: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

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

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

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

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

Встроена в PostgreSQL

Hot backup

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

Page 24: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

SkypeSkype

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

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

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

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

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

Page 25: 20070407 Rit2007 Scalability Replication Zolotukhin

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: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

SkypeSkype

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

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

Page 27: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

SkypeSkype

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

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

Page 28: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

SkypeSkype

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

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

Page 29: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

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

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

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

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

Page 30: 20070407 Rit2007 Scalability Replication Zolotukhin

www.rit2007.ru

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

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

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