replication db

Upload: ardian88

Post on 02-Jun-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/10/2019 Replication DB

    1/18

    PostgreSQL

    Replication Solutions

    BRUCEMOMJIAN

    May, 2014

    Replication is a complex feature. POSTGRESQL supports a varietyof replication options.Creative Commons Attribution License http://momjian.us/presentations

    1/ 18

  • 8/10/2019 Replication DB

    2/18

    Uses for Replication

    Theolotech.com

    PostgreSQL, Replication Solutions 2 / 18

  • 8/10/2019 Replication DB

    3/18

    Fail Over

    0 0 0 0 0 0

    0 0 0 0 0 0

    0 0 0 0 0 0

    1 1 1 1 1 1

    1 1 1 1 1 1

    1 1 1 1 1 1

    0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 01 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 00 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 11 1 1 1 1 0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 01 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1

    0 0 0 0 0 0

    0 0 0 0 0 0

    0 0 0 0 0 0

    1 1 1 1 1 1

    1 1 1 1 1 1

    1 1 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 00 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 11 1 1 1 1

    0

    0

    0

    0

    0

    0

    0000000000

    0

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1111111111

    1

    1

    1

    1

    1

    0

    0

    0

    0

    0

    0

    0000000000

    0

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1111111111

    1

    1

    1

    1

    1

    0

    0

    0

    0

    0

    0

    0000000000

    0

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1111111111

    1

    1

    1

    1

    1

    0

    0

    0

    0

    0

    0

    0000000000

    0

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1111111111

    1

    1

    1

    1

    1

    PostgreSQL, Replication Solutions 3 / 18

  • 8/10/2019 Replication DB

    4/18

    Data Warehousing

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 10 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 01 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1

    0 0 0 0 0 0

    0 0 0 0 0 0

    0 0 0 0 0 0

    1 1 1 1 1 1

    1 1 1 1 1 1

    1 1 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 10 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 01 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1

    0 0 0 0 0 0

    0 0 0 0 0 0

    0 0 0 0 0 0

    1 1 1 1 1 1

    1 1 1 1 1 1

    1 1 1 1 1 1

    0

    0

    0

    0

    0

    0

    0

    0

    000000000

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1

    1

    111111111

    1

    1

    1

    1

    0

    0

    0

    0

    0

    0

    0

    0

    000000000

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1

    1

    111111111

    1

    1

    1

    1

    0

    0

    0

    0

    0

    0

    0

    0

    000000000

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1

    1

    111111111

    1

    1

    1

    1

    0

    0

    0

    0

    0

    0

    0

    0

    000000000

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1

    1

    111111111

    1

    1

    1

    1

    PostgreSQL, Replication Solutions 4 / 18

  • 8/10/2019 Replication DB

    5/18

    Load Balancing

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 01 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1 0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 01 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0

    0

    0

    0

    0

    0

    0

    0000000000

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1

    1111111111

    1

    1

    1

    1

    0

    0

    0

    0

    0

    0

    0

    0000000000

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1

    1111111111

    1

    1

    1

    1

    0

    0

    0

    0

    0

    0

    0

    0000000000

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1

    1111111111

    1

    1

    1

    1

    0

    0

    0

    0

    0

    0

    0

    0000000000

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1

    1111111111

    1

    1

    1

    1

    PostgreSQL, Replication Solutions 5 / 18

  • 8/10/2019 Replication DB

    6/18

    Remote Servers

    0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 01 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 01 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 00 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 11 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 00 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 11 1 1 1 1

    0

    0

    0

    0

    0

    0

    0000000000

    0

    0

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1111111111

    1

    1

    1

    1

    1

    1

    0

    0

    0

    0

    0

    0

    0000000000

    0

    0

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1111111111

    1

    1

    1

    1

    1

    1

    0

    0

    0

    0

    0

    0

    0000000000

    0

    0

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1111111111

    1

    1

    1

    1

    1

    1

    0

    0

    0

    0

    0

    0

    0000000000

    0

    0

    0

    0

    0

    0

    1

    1

    1

    1

    1

    1

    1111111111

    1

    1

    1

    1

    1

    1

    PostgreSQL, Replication Solutions 6 / 18

  • 8/10/2019 Replication DB

    7/18

    Mobile Servers

    0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 01 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 10 0 0 0 0 00 0 0 0 0 0

    0 0 0 0 0 0

    0 0 0 0 0 0

    1 1 1 1 1 11 1 1 1 1 1

    1 1 1 1 1 1

    1 1 1 1 1 1

    0

    0

    000000000000

    0

    0

    00000

    1

    1

    111111111111

    1

    1

    11111

    0

    0

    000000000000

    0

    0

    00000

    1

    1

    111111111111

    1

    1

    11111

    PostgreSQL, Replication Solutions 7 / 18

    R l S l

  • 8/10/2019 Replication DB

    8/18

    Replication Solutions

    Taotaomona Computing

    PostgreSQL, Replication Solutions 8 / 18

  • 8/10/2019 Replication DB

    9/18

    Shared Storage

    NetworkAttachedStorage (NAS)

    0 0 0 0 0

    0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0

    1 1 1 1 1

    1 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 10 0 0 0

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    1 1 1 1

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    0 0 0 0 0

    0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0

    1 1 1 1 1

    1 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 10 0 0 0

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    1 1 1 1

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    0

    00000000

    0

    0

    0

    0

    0

    1

    11111111

    1

    1

    1

    1

    1

    0

    00000000

    0

    0

    0

    0

    0

    1

    11111111

    1

    1

    1

    1

    1

    0

    00000000

    0

    0

    0

    0

    0

    1

    11111111

    1

    1

    1

    1

    1

    0

    00000000

    0

    0

    0

    0

    0

    1

    11111111

    1

    1

    1

    1

    1

    No overhead

    No data loss on fail-over

    Slave cannot executequeries

    PostgreSQL, Replication Solutions 9 / 18

  • 8/10/2019 Replication DB

    10/18

    Storage Mirroring

    DRBD

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 00 0 0 00 0 0 01 1 1 11 1 1 11 1 1 10 0 0 00 0 0 01 1 1 11 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 00 0 0 00 0 0 01 1 1 11 1 1 11 1 1 10 0 0 00 0 0 01 1 1 11 1 1 1

    0

    0

    0

    0

    0

    0

    00000000

    1

    1

    1

    1

    1

    1

    11111111

    0

    0

    0

    0

    0

    0

    00000000

    1

    1

    1

    1

    1

    1

    11111111

    0

    0

    0

    0

    0

    0

    00000000

    1

    1

    1

    1

    1

    1

    11111111

    0

    0

    0

    0

    0

    0

    00000000

    1

    1

    1

    1

    1

    1

    11111111

    No overhead on master

    Synchronous orasynchronous

    Possible data loss on

    fail-over when usingasynchronous

    Slave cannot executequeries

    PostgreSQL, Replication Solutions 10 / 18

  • 8/10/2019 Replication DB

    11/18

    Streaming Replication

    Write

    AheadLog

    (WAL)0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 00 0 0 00 0 0 00 0 0 01 1 1 11 1 1 11 1 1 11 1 1 10 0 0 00 0 0 01 1 1 11 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 00 0 0 00 0 0 00 0 0 01 1 1 11 1 1 11 1 1 11 1 1 10 0 0 00 0 0 01 1 1 11 1 1 1

    0

    0

    0

    0

    0

    0

    0

    0

    000000

    1

    1

    1

    1

    1

    1

    1

    1

    111111

    0

    0

    0

    0

    0

    0

    0

    0

    000000

    1

    1

    1

    1

    1

    1

    1

    1

    111111

    0

    0

    0

    0

    0

    0

    0

    0

    000000

    1

    1

    1

    1

    1

    1

    1

    1

    111111

    0

    0

    0

    0

    0

    0

    0

    0

    000000

    1

    1

    1

    1

    1

    1

    1

    1

    111111

    No overhead on master

    Slaves can execute queries

    Possible data loss onfail-over when using

    asynchronous mode Synchronous option

    available (Postgres 9.1)

    PostgreSQL, Replication Solutions 11 / 18

  • 8/10/2019 Replication DB

    12/18

    Slony

    Asynchronous

    0 0 0 0 0 0

    0 0 0 0 0 0

    0 0 0 0 0 0

    0 0 0 0 0 0

    1 1 1 1 1 1

    1 1 1 1 1 1

    1 1 1 1 1 1

    1 1 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 0 0 0

    0 0 0 0 0 0

    0 0 0 0 0 0

    0 0 0 0 0 0

    1 1 1 1 1 1

    1 1 1 1 1 1

    1 1 1 1 1 1

    1 1 1 1 1 1

    0 0 0 0 00 0 0 0 00 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 11 1 1 1 11 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 0 00 0 0 0 00 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 11 1 1 1 11 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0000

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1111

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    0000

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1111

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    0000

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1111

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    0000

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1111

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    Triggers add overhead tothe master

    Possible data loss onfail-over

    Replication possible evenover slow links

    Slave can executeread-only queries

    Table-level granularityallows complex datapartitioning configurations

    PostgreSQL, Replication Solutions 12 / 18

  • 8/10/2019 Replication DB

    13/18

    Slony Internals

    Subscribers

    Other

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    Slonik

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 1

    ...

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    CREATE

    TABLE

    0 0

    0 00 00 00 00 00 0

    0 0

    1 1

    1 11 11 11 11 11 1

    1 1

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 00 0 00 0 00 0 0

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 11 1 11 1 11 1 1

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    0 0

    0 0

    0 0

    0 0

    0 0

    0 0

    0 0

    0 0

    0 0

    1 1

    1 1

    1 1

    1 1

    1 1

    1 1

    1 1

    1 1

    1 1

    0 0

    0 0

    0 0

    0 0

    0 0

    0 00 00 00 0

    1 1

    1 1

    1 1

    1 1

    1 1

    1 11 11 11 1

    0 0 0

    0 0 00 0 00 0 00 0 00 0 00 0 0

    0 0 0

    1 1 1

    1 1 11 1 11 1 11 1 11 1 11 1 1

    1 1 1

    modifications

    SubscriberOriginUser User

    sl_log sl_log

    CREATETRIGGER

    fills sl_logTRIGGER

    CREATE

    prevents

    PostgreSQL, Replication Solutions 13 / 18

  • 8/10/2019 Replication DB

    14/18

    Slony Master Switching

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 00 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 11 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 00 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 11 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1

    0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    1 1 1 1 1 1 1 1 1

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    0 0 00 0 00 0 00 0 00 0 0

    0 0 0

    0 0 0

    0 0 0

    1 1 11 1 11 1 11 1 11 1 1

    1 1 1

    1 1 1

    1 1 1

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    0 0 00 0 00 0 00 0 00 0 0

    0 0 0

    0 0 0

    0 0 0

    1 1 11 1 11 1 11 1 11 1 1

    1 1 1

    1 1 1

    1 1 1

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    0 0 00 0 00 0 00 0 00 0 0

    0 0 0

    0 0 0

    0 0 0

    1 1 11 1 11 1 11 1 11 1 1

    1 1 1

    1 1 1

    1 1 1

    0 0 00 0 00 0 00 0 00 0 0

    0 0 0

    0 0 0

    0 0 0

    1 1 11 1 11 1 11 1 11 1 1

    1 1 1

    1 1 1

    1 1 1

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    0 0 0

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    1 1 1

    User

    sl_log sl_log

    Subscriber OriginUser User

    sl_log sl_log

    SubscriberOrigin User

    PostgreSQL, Replication Solutions 14 / 18

  • 8/10/2019 Replication DB

    15/18

    Bucardo

    with Conflict Resolution

    Asynchronous

    0 0 0 0 00 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 11 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 0 0 0

    0 0 0 0 0 0

    0 0 0 0 0 0

    0 0 0 0 0 0

    1 1 1 1 1 1

    1 1 1 1 1 1

    1 1 1 1 1 1

    1 1 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 0 00 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 11 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 0 0 0

    0 0 0 0 0 0

    0 0 0 0 0 0

    0 0 0 0 0 0

    1 1 1 1 1 1

    1 1 1 1 1 1

    1 1 1 1 1 1

    1 1 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    00

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    11

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    00

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    11

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    00

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    11

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    00

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    11

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    Similar to Slony, exceptmulti-master with conflictresolution

    Conflict resolution rules

    are user-configurable

    PostgreSQL, Replication Solutions 15 / 18

    P l II

  • 8/10/2019 Replication DB

    16/18

    Pgpool II

    SELECTINSERT, UPDATE,

    DELETE to all

    hosts

    pgpool

    to any host0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 01 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 1

    0 0 0 0

    0 0 0 0

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    1 1 1 1

    1 1 1 1

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0

    0 0 0 0 0

    1 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 1

    1 1 1 1 1

    0 0 0 0

    0 0 0 0

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    1 1 1 1

    1 1 1 1

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0

    0 0 0 0 0

    1 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 1

    1 1 1 1 1

    0 0 0 0

    0 0 0 0

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    1 1 1 1

    1 1 1 1

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0

    0 0 0 0 0

    1 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 1

    1 1 1 1 1

    0 0 0 0

    0 0 0 0

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    1 1 1 1

    1 1 1 1

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    0

    00000

    0

    0

    0

    0

    0

    0

    0

    0

    1

    11111

    1

    1

    1

    1

    1

    1

    1

    1

    0

    00000

    0

    0

    0

    0

    0

    0

    0

    0

    1

    11111

    1

    1

    1

    1

    1

    1

    1

    1

    00000

    0

    0

    0

    0

    0

    0

    0

    0

    0

    11111

    1

    1

    1

    1

    1

    1

    1

    1

    1

    00000

    0

    0

    0

    0

    0

    0

    0

    0

    0

    11111

    1

    1

    1

    1

    1

    1

    1

    1

    1

    00000

    0

    0

    0

    0

    0

    0

    0

    0

    0

    11111

    1

    1

    1

    1

    1

    1

    1

    1

    1

    00000

    0

    0

    0

    0

    0

    0

    0

    0

    0

    11111

    1

    1

    1

    1

    1

    1

    1

    1

    1

    00000

    0

    0

    0

    0

    0

    0

    0

    0

    0

    11111

    1

    1

    1

    1

    1

    1

    1

    1

    1

    00000

    0

    0

    0

    0

    0

    0

    0

    0

    0

    11111

    1

    1

    1

    1

    1

    1

    1

    1

    1

    Automaticallyload-balances read queries

    Queries with

    non-deterministic behaviorcan cause inconsistency

    Allows parallel queryexecution on all nodes

    Also does connectionpooling and query caching

    PostgreSQL, Replication Solutions 16 / 18

    P l II Wi h S i R li i

  • 8/10/2019 Replication DB

    17/18

    Pgpool II With Streaming Replication

    SELECTINSERT, UPDATE,

    DELETE to master

    host

    Slave SlaveMaster

    replication

    replication

    to any host

    pgpool

    streaming

    0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 0

    0 0 0 0

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    1 1 1 1

    1 1 1 1

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    0 0 0 0 00 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 11 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 0

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    1 1 1 1

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    0 0 0 0 00 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 11 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 0

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    1 1 1 1

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    0 0 0 0 00 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    1 1 1 1 11 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    0 0 0 0

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    1 1 1 1

    0 0 0 0

    0 0 0 0

    1 1 1 1

    1 1 1 1

    000

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    111

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    000

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    111

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    00

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    11

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    00

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    11

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    00

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    11

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    00

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    11

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    00

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    11

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    00

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    11

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    1

    Streaming replication avoidsthe problem ofnon-deterministic queriesproducing different results on

    different hosts.

    PostgreSQL, Replication Solutions 17 / 18

  • 8/10/2019 Replication DB

    18/18