SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
PostgreSQL Replication
T
o
r
o
n
t
o
P
U
G   Steven Singer
    ssinger_pg@sympatico.ca
    FreeNode: stevenSn

                              July 28 2008
Who am I
T   SELECT * FROM pg_user where name='Steve'
o
r   ●   PostgreSQL user since 6.5
o   ●   Author of contrib/dbmirror
n       included with 7.x
t   ●   Software developer for a local
o       consulting company
P
U
    ●   Occasional contributor to side
        projects
G
The Golden Rule
T
o
r   ●   You can't have everything
o   ●   What you want != what you
n       need
t   ●   Determine need from
o       requirements
P
U
    ●   Be prepared to accept trade-
        offs
G
    ●   If you've already been sold on
        Oracle RAC, go and buy RAC
The Choices
T
o                         pgcluster
                                         pl/proxy
r               slony
                          pgcluster-II
                                         Mammoth
o          dbmirror                       RepDB
n       longdist                          Bucardo
t   pgpool
                                          Cybercluster

o   pgpool-II
                                              erserve
                                               rserv
P   Sequioa                        NTT WAL shipping
U   PITR
                             pg_dump/pg_restore
G     postgres-r      pyReplica    EDB Replicator
Why Replication?
T
o
r   ●   Because it is fun?
o   ●   So you can buy twice the
n       number of licenses?
t   ●   To distribute your data?
o
P
    ●   So you can be buzzword
U       compliant?
G
Fail-Over
T
o
r   ●   Goal: To have additional
o       database servers standing by in
n       case of:
t       –   Hardware Failure
o       –   DBA/Application mistakes
P       –   Maintenance
U   ●   Turning on a standby means
G       failing the master
Automatic or manual
T
o
r   ●   Who makes the decision to
o       promote a slave to a master?
n   ●   Computer or human?
t   ●   Look at your possible failures,
o       how can you detect them?
P
U
    ●    When will the wrong decision
        be made?
G
Load Balancing
T
o
r   ●   Goal: Improve performance by
o       adding more servers
n   ●   Master slave or multi-master?
t   ●   You can only do queries on
o       slaves
P
U
    ●   Multi-Master is really hard
G
Load Balancing : slaves
T
o
r   ●   Send queries to slaves
o   ●   Run query parts on machines
n       and combine results
t   ●   Partition some data across
o       servers (sharding)
P
U
    ●   Topic on its own
G   Question: How stale will you allow your slaves to be?
Trigger based
T            Replication
o
r   ●   Slony, Longdiste, Bucardo
o   ●   Uses ON INSERT,ON
n       UPDATE,ON DELETE triggers
t   ●   Slaves jump between consistent
o       snapsnots of master
P
U
    ●   Asynchronous
G   ●   Performance impact on master
    ●   No triggers will fires on DDL
Slony
T
o
r   ●   www.slony.info
o   ●   Developed by Afillias
n   ●   Async trigger based,
t       master/slave
o
P
    ●   Most widely deployed Postgreql
U       replication solution
G   ●   Very flexible
    ●   Allows for complicated setups
    ●   Some rough edges
Longdiste
T
o
r   ●   https://developer.skype.com/Sk
o       ypeGarage/DbProjects/SkyTools
n   ●   Async trigger based, master
t       slave
o   ●   Part of SkyTools from Skype
P
U
    ●   Based on experience with Slony
        but simpler; less features
G
    ●   Can't cascade slaves
    ●   No switchover support (Today)
Bucardo
T
o
r   ●   http://bucardo.org
o   ●   Async trigger based
n   ●   Developed by backcountry.com
t
o   ●   Allows multi-master writes with
P       user specified conflict
U       resolution
G
Middleware based
T       statement replication
o
r   ●   pgpool-II, pgcluster, Continuent,
o       GridSQL
n   ●   Sits in-between your application
t       and PostgreSQL
o   ●   Redirects SQL to one or more of
P       your databases
U   ●   How do you know all databases
G       contain the same data?
Middleware - Issues
T
o   ●   INSERT INTO x VALUES (rand())
r   ●   Functions/Stored Procedures, or
o       timestamps are a bad idea
n   ●   How do you ensure things
t       happen in the same order on all
o       nodes?
P   ●   What if a COMMIT on the
U       second node fails?
G
    ●   Limitations fine for some
        applications
Sequoia
T
o
r   ●   http://sequoia.continuent.org/Hom
o   ●   Middleware
n   ●   Supports multiple RDBMS
t
o   ●   Has its own journaling
P   ●   Ensure all SQL writers
U       understand how it works
G
PITR
T
o
r   ●   Point-In Time Recovery
o   ●   WAL segments are sent to the
n       slaves
t   ●   Aysnc (today)
o
P
    ●   Can't query slaves (today)
U       unless you bring them up
G   ●   Rolling slaves with ZFS?
    ●   Only good for failover (today)
Multi-Master
T
o
r   ●   If the same row is changed on
o       two servers around the same
n       time?
t   ●   Solving this in the general
o       sense is really hard.
P   ●   Don't go here unless you
U       need to
G
Works in progress
T
o
r   ●   Not Production Ready
o   ●   Serious technical problems to
n       be worked out
t   ●   If your up for a challenge
o
P
    ●   Good place to spend your RAC
U       budget
G
postgres-r
T
o
r   ●   Multi Master based on a group
o       communication system
n   ●   All nodes process all
t       statements in the same order
o       (total order)
P   ●   Depends on a GCS like Spread
U   ●   Recently open-sourced
G
pgcluster-II
T
o
r   ●   Multi Master
o   ●   Shared disc
n   ●   Presented at pgconn 07 not
t       released
o
P
    ●   Status unknown
U
G
Rules of Thumb
T
o
r   ●   PITR if it will meet your needs
o   ●   Slony or Longdiste if you need
n       to query your slaves
t   ●   Find a way around multi-master
o
P
    ●   Avoid statement based
U       solutions if consistency is
        important
G
Questions?
T
o
r
o
n
t
o
P
U   Steven Singer
G   ssinger_pg@sympatico.ca
    FreeNode: stevenSn

Weitere ähnliche Inhalte

Ähnlich wie PostgreSQL Replication

Challenges and patterns for semantics at scale
Challenges and patterns for semantics at scaleChallenges and patterns for semantics at scale
Challenges and patterns for semantics at scaleRob Vesse
 
Scaling with apache spark (a lesson in unintended consequences) strange loo...
Scaling with apache spark (a lesson in unintended consequences)   strange loo...Scaling with apache spark (a lesson in unintended consequences)   strange loo...
Scaling with apache spark (a lesson in unintended consequences) strange loo...Holden Karau
 
Creating a mature puppet system
Creating a mature puppet systemCreating a mature puppet system
Creating a mature puppet systemrkhatibi
 
Creating a Mature Puppet System
Creating a Mature Puppet SystemCreating a Mature Puppet System
Creating a Mature Puppet SystemPuppet
 
Amazon DynamoDB Lessen's Learned by Beginner
Amazon DynamoDB Lessen's Learned by BeginnerAmazon DynamoDB Lessen's Learned by Beginner
Amazon DynamoDB Lessen's Learned by BeginnerHirokazu Tokuno
 
Harry Potter and the Daemons of Berkeley
Harry Potter and the Daemons of BerkeleyHarry Potter and the Daemons of Berkeley
Harry Potter and the Daemons of BerkeleyAlex Chistyakov
 
Screaming Fast Wpmu
Screaming Fast WpmuScreaming Fast Wpmu
Screaming Fast Wpmudjcp
 
Building real time Data Pipeline using Spark Streaming
Building real time Data Pipeline using Spark StreamingBuilding real time Data Pipeline using Spark Streaming
Building real time Data Pipeline using Spark Streamingdatamantra
 
PGConf.ASIA 2019 - The Future of TDEforPG - Taiki Kondo
PGConf.ASIA 2019 - The Future of TDEforPG - Taiki KondoPGConf.ASIA 2019 - The Future of TDEforPG - Taiki Kondo
PGConf.ASIA 2019 - The Future of TDEforPG - Taiki KondoEqunix Business Solutions
 
PostgreSQL HA
PostgreSQL   HAPostgreSQL   HA
PostgreSQL HAharoonm
 
Efficient Buffer Management
Efficient Buffer ManagementEfficient Buffer Management
Efficient Buffer Managementbasisspace
 
PostgreSQL Sharding and HA: Theory and Practice (PGConf.ASIA 2017)
PostgreSQL Sharding and HA: Theory and Practice (PGConf.ASIA 2017)PostgreSQL Sharding and HA: Theory and Practice (PGConf.ASIA 2017)
PostgreSQL Sharding and HA: Theory and Practice (PGConf.ASIA 2017)Aleksander Alekseev
 
Cephalocon apac china
Cephalocon apac chinaCephalocon apac china
Cephalocon apac chinaVikhyat Umrao
 
Common Support Issues And How To Troubleshoot Them - Michael Hackett, Vikhyat...
Common Support Issues And How To Troubleshoot Them - Michael Hackett, Vikhyat...Common Support Issues And How To Troubleshoot Them - Michael Hackett, Vikhyat...
Common Support Issues And How To Troubleshoot Them - Michael Hackett, Vikhyat...Ceph Community
 
Introduction to plotting in Python
Introduction to plotting in Python Introduction to plotting in Python
Introduction to plotting in Python bzamecnik
 
Introduction To Apache Pig at WHUG
Introduction To Apache Pig at WHUGIntroduction To Apache Pig at WHUG
Introduction To Apache Pig at WHUGAdam Kawa
 
Swapping Pacemaker Corosync with repmgr
Swapping Pacemaker Corosync with repmgrSwapping Pacemaker Corosync with repmgr
Swapping Pacemaker Corosync with repmgrPGConf APAC
 
pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)
pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)
pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)Wei Shan Ang
 
ceph openstack dream team
ceph openstack dream teamceph openstack dream team
ceph openstack dream teamUdo Seidel
 

Ähnlich wie PostgreSQL Replication (20)

Challenges and patterns for semantics at scale
Challenges and patterns for semantics at scaleChallenges and patterns for semantics at scale
Challenges and patterns for semantics at scale
 
Scaling with apache spark (a lesson in unintended consequences) strange loo...
Scaling with apache spark (a lesson in unintended consequences)   strange loo...Scaling with apache spark (a lesson in unintended consequences)   strange loo...
Scaling with apache spark (a lesson in unintended consequences) strange loo...
 
Creating a mature puppet system
Creating a mature puppet systemCreating a mature puppet system
Creating a mature puppet system
 
Creating a Mature Puppet System
Creating a Mature Puppet SystemCreating a Mature Puppet System
Creating a Mature Puppet System
 
Amazon DynamoDB Lessen's Learned by Beginner
Amazon DynamoDB Lessen's Learned by BeginnerAmazon DynamoDB Lessen's Learned by Beginner
Amazon DynamoDB Lessen's Learned by Beginner
 
Harry Potter and the Daemons of Berkeley
Harry Potter and the Daemons of BerkeleyHarry Potter and the Daemons of Berkeley
Harry Potter and the Daemons of Berkeley
 
Screaming Fast Wpmu
Screaming Fast WpmuScreaming Fast Wpmu
Screaming Fast Wpmu
 
Building real time Data Pipeline using Spark Streaming
Building real time Data Pipeline using Spark StreamingBuilding real time Data Pipeline using Spark Streaming
Building real time Data Pipeline using Spark Streaming
 
PGConf.ASIA 2019 - The Future of TDEforPG - Taiki Kondo
PGConf.ASIA 2019 - The Future of TDEforPG - Taiki KondoPGConf.ASIA 2019 - The Future of TDEforPG - Taiki Kondo
PGConf.ASIA 2019 - The Future of TDEforPG - Taiki Kondo
 
PostgreSQL HA
PostgreSQL   HAPostgreSQL   HA
PostgreSQL HA
 
Efficient Buffer Management
Efficient Buffer ManagementEfficient Buffer Management
Efficient Buffer Management
 
PostgreSQL Sharding and HA: Theory and Practice (PGConf.ASIA 2017)
PostgreSQL Sharding and HA: Theory and Practice (PGConf.ASIA 2017)PostgreSQL Sharding and HA: Theory and Practice (PGConf.ASIA 2017)
PostgreSQL Sharding and HA: Theory and Practice (PGConf.ASIA 2017)
 
Cephalocon apac china
Cephalocon apac chinaCephalocon apac china
Cephalocon apac china
 
Common Support Issues And How To Troubleshoot Them - Michael Hackett, Vikhyat...
Common Support Issues And How To Troubleshoot Them - Michael Hackett, Vikhyat...Common Support Issues And How To Troubleshoot Them - Michael Hackett, Vikhyat...
Common Support Issues And How To Troubleshoot Them - Michael Hackett, Vikhyat...
 
Kick my mouse away
Kick my mouse awayKick my mouse away
Kick my mouse away
 
Introduction to plotting in Python
Introduction to plotting in Python Introduction to plotting in Python
Introduction to plotting in Python
 
Introduction To Apache Pig at WHUG
Introduction To Apache Pig at WHUGIntroduction To Apache Pig at WHUG
Introduction To Apache Pig at WHUG
 
Swapping Pacemaker Corosync with repmgr
Swapping Pacemaker Corosync with repmgrSwapping Pacemaker Corosync with repmgr
Swapping Pacemaker Corosync with repmgr
 
pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)
pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)
pgDay Asia 2016 - Swapping Pacemaker-Corosync for repmgr (1)
 
ceph openstack dream team
ceph openstack dream teamceph openstack dream team
ceph openstack dream team
 

Mehr von elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

Mehr von elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Kürzlich hochgeladen

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Kürzlich hochgeladen (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

PostgreSQL Replication

  • 1. PostgreSQL Replication T o r o n t o P U G Steven Singer ssinger_pg@sympatico.ca FreeNode: stevenSn July 28 2008
  • 2. Who am I T SELECT * FROM pg_user where name='Steve' o r ● PostgreSQL user since 6.5 o ● Author of contrib/dbmirror n included with 7.x t ● Software developer for a local o consulting company P U ● Occasional contributor to side projects G
  • 3. The Golden Rule T o r ● You can't have everything o ● What you want != what you n need t ● Determine need from o requirements P U ● Be prepared to accept trade- offs G ● If you've already been sold on Oracle RAC, go and buy RAC
  • 4. The Choices T o pgcluster pl/proxy r slony pgcluster-II Mammoth o dbmirror RepDB n longdist Bucardo t pgpool Cybercluster o pgpool-II erserve rserv P Sequioa NTT WAL shipping U PITR pg_dump/pg_restore G postgres-r pyReplica EDB Replicator
  • 5. Why Replication? T o r ● Because it is fun? o ● So you can buy twice the n number of licenses? t ● To distribute your data? o P ● So you can be buzzword U compliant? G
  • 6. Fail-Over T o r ● Goal: To have additional o database servers standing by in n case of: t – Hardware Failure o – DBA/Application mistakes P – Maintenance U ● Turning on a standby means G failing the master
  • 7. Automatic or manual T o r ● Who makes the decision to o promote a slave to a master? n ● Computer or human? t ● Look at your possible failures, o how can you detect them? P U ● When will the wrong decision be made? G
  • 8. Load Balancing T o r ● Goal: Improve performance by o adding more servers n ● Master slave or multi-master? t ● You can only do queries on o slaves P U ● Multi-Master is really hard G
  • 9. Load Balancing : slaves T o r ● Send queries to slaves o ● Run query parts on machines n and combine results t ● Partition some data across o servers (sharding) P U ● Topic on its own G Question: How stale will you allow your slaves to be?
  • 10. Trigger based T Replication o r ● Slony, Longdiste, Bucardo o ● Uses ON INSERT,ON n UPDATE,ON DELETE triggers t ● Slaves jump between consistent o snapsnots of master P U ● Asynchronous G ● Performance impact on master ● No triggers will fires on DDL
  • 11. Slony T o r ● www.slony.info o ● Developed by Afillias n ● Async trigger based, t master/slave o P ● Most widely deployed Postgreql U replication solution G ● Very flexible ● Allows for complicated setups ● Some rough edges
  • 12. Longdiste T o r ● https://developer.skype.com/Sk o ypeGarage/DbProjects/SkyTools n ● Async trigger based, master t slave o ● Part of SkyTools from Skype P U ● Based on experience with Slony but simpler; less features G ● Can't cascade slaves ● No switchover support (Today)
  • 13. Bucardo T o r ● http://bucardo.org o ● Async trigger based n ● Developed by backcountry.com t o ● Allows multi-master writes with P user specified conflict U resolution G
  • 14. Middleware based T statement replication o r ● pgpool-II, pgcluster, Continuent, o GridSQL n ● Sits in-between your application t and PostgreSQL o ● Redirects SQL to one or more of P your databases U ● How do you know all databases G contain the same data?
  • 15. Middleware - Issues T o ● INSERT INTO x VALUES (rand()) r ● Functions/Stored Procedures, or o timestamps are a bad idea n ● How do you ensure things t happen in the same order on all o nodes? P ● What if a COMMIT on the U second node fails? G ● Limitations fine for some applications
  • 16. Sequoia T o r ● http://sequoia.continuent.org/Hom o ● Middleware n ● Supports multiple RDBMS t o ● Has its own journaling P ● Ensure all SQL writers U understand how it works G
  • 17. PITR T o r ● Point-In Time Recovery o ● WAL segments are sent to the n slaves t ● Aysnc (today) o P ● Can't query slaves (today) U unless you bring them up G ● Rolling slaves with ZFS? ● Only good for failover (today)
  • 18. Multi-Master T o r ● If the same row is changed on o two servers around the same n time? t ● Solving this in the general o sense is really hard. P ● Don't go here unless you U need to G
  • 19. Works in progress T o r ● Not Production Ready o ● Serious technical problems to n be worked out t ● If your up for a challenge o P ● Good place to spend your RAC U budget G
  • 20. postgres-r T o r ● Multi Master based on a group o communication system n ● All nodes process all t statements in the same order o (total order) P ● Depends on a GCS like Spread U ● Recently open-sourced G
  • 21. pgcluster-II T o r ● Multi Master o ● Shared disc n ● Presented at pgconn 07 not t released o P ● Status unknown U G
  • 22. Rules of Thumb T o r ● PITR if it will meet your needs o ● Slony or Longdiste if you need n to query your slaves t ● Find a way around multi-master o P ● Avoid statement based U solutions if consistency is important G
  • 23. Questions? T o r o n t o P U Steven Singer G ssinger_pg@sympatico.ca FreeNode: stevenSn