SlideShare a Scribd company logo
1 of 22
Download to read offline
1EnterpriseDB, Postgres Plus and Dynatune are trademarks
of EnterpriseDB Corporation. Other names may be
trademarks of their respective owners. © 2010. All rights
reserved.
Postgres-XC
Write-scalable, Synchronous Multi-master,
Transparent PostgreSQL Cluster with Shared
Nothing Approach
Presented by Ashutosh Bapat
November 22, 2011
@ OSI Days 2011
Agenda
● High-lights
● Architecture overview
● Performance
● Release and development processes
● Your contributions
Postgres-XC - in short
● Write scalable
● Scalability by adding multiple servers
● Each server capable of handling writes
● Synchronous multi-master
● Multiple database servers that client can connect to
● A single, consistent cluster-wide view of the database
● Writes from any server are immediately visible to transactions on other
servers
● Transparent
● The applications do not have to worry about where data is stored
● Shared nothing cluster
● Servers do not share any resources
● Loosely coupled to large extent
● Ease of deployment and scaling out by addition of commodity hardware
Postgres-XC - high-lights
● Based on world's most advance open source database –
PostgreSQL
● Same client APIs as PostgreSQL
● Ease of application migration from existing
PostgreSQL deployment
● Licensing – same as PostgreSQL license
● Free to use, modify and redistribute for commercial
purposes
Postgres-XC - history
● Started through a collaboration between EnterpriseDB
and NTT Open Source Software Center in 2009
● Mandate to build a PostgreSQL based clustering solution
which can serve as an alternative to Oracle RAC
● Very well represented by NTT in terms of engineers,
hardware and funding
● EnterpriseDB provides key technical resources and
PostgreSQL expertise to the project
● Licensing terms changed from GPL to BSD (or
PostgreSQL) this year
Architecture Overview
Postgres-XC architecture
Applications
Coordinators
Add coordinators
Datanodes
Add datanodes
SQL + libpq
interface
Postgres-XC cluster
SQL statements from
applicationsTransactioninfo
GTM
Global Transaction Manager (GTM)
● Gather and manage information about transaction
activities in the cluster
● Issue global transaction identifiers to transactions and
MVCC snapshots for a consistent view on all nodes.
● Help guarantee ACID properties
● Provide support for other global data such as sequences
and time-stamps
● Store no data
– Except some control information
● Separate binary from coordinator and datanodes
Postgres-XC node - Coordinator
● Point of contact for the application/client
● Parse and partially plan the statements
● Determine the data to be fetched from the datanodes and also
location of the data
● Fetch the required data by issuing queries to the datanodes
● Combine and process the data to evaluate the results of the query
(if needed)
● Pass the results to the applications
● Manage two-phase commit
● Store catalog data
● Need space for materializing results from datanodes
● Binary same as the datanode, based on the latest PostgreSQL
release
Postgres-XC node type - Datanode
● Stores tables and catalogs
● Executes the queries from the coordinator and return
results to the coordinator
● Data nodes can be made fault tolerant by Hot-Standby
and Synchronous Replication technologies available with
standard PostgreSQL
● Binary same as coordinator, based on latest PostgreSQL
release
Data management
● A table is stored on datanode/s as
● Replicated table
● Each row in the table is replicated to the datanodes
● Statement based replication
● Distributed table
● Each row of the table is stored on one datanode,
decided by one of following strategies
– Hash
– Round Robin
– Modulo
– Range and user defined function – TBD
Postgres-XC - Replicated tables
Writes
write write write
val val2
1 2
2 10
3 4
val val2
1 2
2 10
3 4
val val2
1 2
2 10
3 4
Reads
read
val val2
1 2
2 10
3 4
val val2
1 2
2 10
3 4
val val2
1 2
2 10
3 4
Postgres-XC - Distributed tables
Combiner
Read
read read read
val val2
1 2
2 10
3 4
val val2
11 21
21 101
31 41
val val2
10 20
20 100
30 40
Write
write
val val2
1 2
2 10
3 4
val val2
11 21
21 101
31 41
val val2
10 20
20 100
30 40
parallel
Evaluation
● Conducted by NTT
Intellilink
● DBT-1 (TPC-W)
benchmark with some
minor modification to the
schema
● 1 server = 1 coordinator
+ 1 datanode on same
machine
● Coordinator is CPU bound
● Datanode is I/O bound
Release management
Postgres-XC - Development and Release process
● Primary contribution from NTT/EnterpriseDB with at least
4 full time engineers and 2 part time engineers working
on the project
● Open source model where many issues are discussed on
the public mailing lists
● Increased interests from other community developers
● One release almost every 3-4 months to get new PGXC
features to the users as soon as possible
● Keep pace with the PostgreSQL development to benefit
from the new features in PostgreSQL
● GIT repository ensures a clean and quick merge process
Upto V 0.9.6
● Based on PostgreSQL 9.1
● SQL support
● Major DDL/DML (TABLE, ROLE, VIEW...)
● PREPAREd statements
● SELECT queries: support extension aggregates,
HAVING, GROUP BY, ORDER BY, LIMIT, OFFSET...
– No CTAS, INSERT SELECT, SELECT INTO (Being
worked on)
● Cursors
– no backward, no CURRENT OF
● Session parameters
● Temporary objects
Expectations from V 1.0
● SQL support
● Subqueries (WITH)
● CREATE AS/SELECT INTO
● Trigger, rules
● CURRENT OF
● TABLESPACE extension (case of multiple Datanodes
on same server...)
● Concurrent index creation
● Changing distribution strategy
– Distribution column, nodes or type
After V 1.0
● Global constraints
● Unique/Reference integrity among partition
● Exclusion constraint among partition
● Global deadlock detection (wait-for-graph mechanism)
● Online server removal/addition
● SQL/MED mechanisms, FDW integration
● Connection balancing between master and slave
Datanodes for read transactions
● SAVEPOINT
Project resources and contacts
● Project home
– http://postgres-xc.sourceforge.net
● Developer mailing list
– postgres-xc-developers@lists.sourceforge.net
– postgres-xc-general@lists.sourceforge.net
● Contact me
– ashutosh.bapat@enterprisedb.com
– EnterpriseDB, the PostgreSQL company
Resources needed for
● Writing Code
– Backend - New distributed/parallel query
handling/optimization, HA capabilities, Utilities, Bug fixes
– Installers, building binaries, distribution packages
● Test
– Performance evaluation with various benchmarks
– Finding bugs
– New feature proposals
● Deployment
– Running practical applications against Postgres-XC
Thank you

More Related Content

What's hot

Overview of some popular distributed databases
Overview of some popular distributed databasesOverview of some popular distributed databases
Overview of some popular distributed databasessagar chaturvedi
 
Tiering barcelona
Tiering barcelonaTiering barcelona
Tiering barcelonaGluster.org
 
Gluster.community.day.2013
Gluster.community.day.2013Gluster.community.day.2013
Gluster.community.day.2013Udo Seidel
 
Storage as a Service with Gluster
Storage as a Service with GlusterStorage as a Service with Gluster
Storage as a Service with GlusterVijay Bellur
 
Sdc challenges-2012
Sdc challenges-2012Sdc challenges-2012
Sdc challenges-2012Gluster.org
 
Disperse xlator ramon_datalab
Disperse xlator ramon_datalabDisperse xlator ramon_datalab
Disperse xlator ramon_datalabGluster.org
 
Gluster overview & future directions vault 2015
Gluster overview & future directions vault 2015Gluster overview & future directions vault 2015
Gluster overview & future directions vault 2015Vijay Bellur
 
Gluster Storage
Gluster StorageGluster Storage
Gluster StorageRaz Tamir
 
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous AvailabilityRamp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous AvailabilityPythian
 
Red Hat Gluster Storage - Direction, Roadmap and Use-Cases
Red Hat Gluster Storage - Direction, Roadmap and Use-CasesRed Hat Gluster Storage - Direction, Roadmap and Use-Cases
Red Hat Gluster Storage - Direction, Roadmap and Use-CasesRed_Hat_Storage
 
Dustin Black - Red Hat Storage Server Administration Deep Dive
Dustin Black - Red Hat Storage Server Administration Deep DiveDustin Black - Red Hat Storage Server Administration Deep Dive
Dustin Black - Red Hat Storage Server Administration Deep DiveGluster.org
 
Gluster for sysadmins
Gluster for sysadminsGluster for sysadmins
Gluster for sysadminsGluster.org
 
Erasure codes and storage tiers on gluster
Erasure codes and storage tiers on glusterErasure codes and storage tiers on gluster
Erasure codes and storage tiers on glusterRed_Hat_Storage
 
Gluster.next feb-2016
Gluster.next feb-2016Gluster.next feb-2016
Gluster.next feb-2016Vijay Bellur
 

What's hot (20)

Postgres clusters
Postgres clustersPostgres clusters
Postgres clusters
 
Overview of some popular distributed databases
Overview of some popular distributed databasesOverview of some popular distributed databases
Overview of some popular distributed databases
 
Tiering barcelona
Tiering barcelonaTiering barcelona
Tiering barcelona
 
Gluster.community.day.2013
Gluster.community.day.2013Gluster.community.day.2013
Gluster.community.day.2013
 
Storage as a Service with Gluster
Storage as a Service with GlusterStorage as a Service with Gluster
Storage as a Service with Gluster
 
Sdc challenges-2012
Sdc challenges-2012Sdc challenges-2012
Sdc challenges-2012
 
Disperse xlator ramon_datalab
Disperse xlator ramon_datalabDisperse xlator ramon_datalab
Disperse xlator ramon_datalab
 
Gluster Data Tiering
Gluster Data TieringGluster Data Tiering
Gluster Data Tiering
 
Gluster overview & future directions vault 2015
Gluster overview & future directions vault 2015Gluster overview & future directions vault 2015
Gluster overview & future directions vault 2015
 
Gluster Storage
Gluster StorageGluster Storage
Gluster Storage
 
YDAL Barcelona
YDAL BarcelonaYDAL Barcelona
YDAL Barcelona
 
Gluster d2
Gluster d2Gluster d2
Gluster d2
 
GlusterFS And Big Data
GlusterFS And Big DataGlusterFS And Big Data
GlusterFS And Big Data
 
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous AvailabilityRamp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
Ramp-Tutorial for MYSQL Cluster - Scaling with Continuous Availability
 
Red Hat Gluster Storage - Direction, Roadmap and Use-Cases
Red Hat Gluster Storage - Direction, Roadmap and Use-CasesRed Hat Gluster Storage - Direction, Roadmap and Use-Cases
Red Hat Gluster Storage - Direction, Roadmap and Use-Cases
 
Dustin Black - Red Hat Storage Server Administration Deep Dive
Dustin Black - Red Hat Storage Server Administration Deep DiveDustin Black - Red Hat Storage Server Administration Deep Dive
Dustin Black - Red Hat Storage Server Administration Deep Dive
 
Gluster for sysadmins
Gluster for sysadminsGluster for sysadmins
Gluster for sysadmins
 
Erasure codes and storage tiers on gluster
Erasure codes and storage tiers on glusterErasure codes and storage tiers on gluster
Erasure codes and storage tiers on gluster
 
Glusterfs and Hadoop
Glusterfs and HadoopGlusterfs and Hadoop
Glusterfs and Hadoop
 
Gluster.next feb-2016
Gluster.next feb-2016Gluster.next feb-2016
Gluster.next feb-2016
 

Similar to Introduction to Postrges-XC

Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresqlbotsplash.com
 
Gluster dev session #6 understanding gluster's network communication layer
Gluster dev session #6  understanding gluster's network   communication layerGluster dev session #6  understanding gluster's network   communication layer
Gluster dev session #6 understanding gluster's network communication layerPranith Karampuri
 
Spark Concepts - Spark SQL, Graphx, Streaming
Spark Concepts - Spark SQL, Graphx, StreamingSpark Concepts - Spark SQL, Graphx, Streaming
Spark Concepts - Spark SQL, Graphx, StreamingPetr Zapletal
 
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...javier ramirez
 
2021.02 new in Ceph Pacific Dashboard
2021.02 new in Ceph Pacific Dashboard2021.02 new in Ceph Pacific Dashboard
2021.02 new in Ceph Pacific DashboardCeph Community
 
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSPostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSVMware Tanzu
 
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSPostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSCarlos Andrés García
 
PostgreSQL as an Alternative to MSSQL
PostgreSQL as an Alternative to MSSQLPostgreSQL as an Alternative to MSSQL
PostgreSQL as an Alternative to MSSQLAlexei Krasner
 
ClustrixDB: how distributed databases scale out
ClustrixDB: how distributed databases scale outClustrixDB: how distributed databases scale out
ClustrixDB: how distributed databases scale outMariaDB plc
 
Introduction to ClustrixDB
Introduction to ClustrixDBIntroduction to ClustrixDB
Introduction to ClustrixDBI Goo Lee
 
Argus Production Monitoring at Salesforce
Argus Production Monitoring at SalesforceArgus Production Monitoring at Salesforce
Argus Production Monitoring at SalesforceHBaseCon
 
Argus Production Monitoring at Salesforce
Argus Production Monitoring at Salesforce Argus Production Monitoring at Salesforce
Argus Production Monitoring at Salesforce HBaseCon
 
PostgreSQL - Object Relational Database
PostgreSQL - Object Relational DatabasePostgreSQL - Object Relational Database
PostgreSQL - Object Relational DatabaseMubashar Iqbal
 
No sql bigdata and postgresql
No sql bigdata and postgresqlNo sql bigdata and postgresql
No sql bigdata and postgresqlZaid Shabbir
 
MongoDB 4.0 새로운 기능 소개
MongoDB 4.0 새로운 기능 소개MongoDB 4.0 새로운 기능 소개
MongoDB 4.0 새로운 기능 소개Ha-Yang(White) Moon
 
GlusterD 2.0 - Managing Distributed File System Using a Centralized Store
GlusterD 2.0 - Managing Distributed File System Using a Centralized StoreGlusterD 2.0 - Managing Distributed File System Using a Centralized Store
GlusterD 2.0 - Managing Distributed File System Using a Centralized StoreAtin Mukherjee
 
IBM Internet-of-Things architecture and capabilities
IBM Internet-of-Things architecture and capabilitiesIBM Internet-of-Things architecture and capabilities
IBM Internet-of-Things architecture and capabilitiesIBM_Info_Management
 
19. Cloud Native Computing - Kubernetes - Bratislava - Databases in K8s world
19. Cloud Native Computing - Kubernetes - Bratislava - Databases in K8s world19. Cloud Native Computing - Kubernetes - Bratislava - Databases in K8s world
19. Cloud Native Computing - Kubernetes - Bratislava - Databases in K8s worldDávid Kőszeghy
 

Similar to Introduction to Postrges-XC (20)

Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresql
 
Gluster dev session #6 understanding gluster's network communication layer
Gluster dev session #6  understanding gluster's network   communication layerGluster dev session #6  understanding gluster's network   communication layer
Gluster dev session #6 understanding gluster's network communication layer
 
Spark Concepts - Spark SQL, Graphx, Streaming
Spark Concepts - Spark SQL, Graphx, StreamingSpark Concepts - Spark SQL, Graphx, Streaming
Spark Concepts - Spark SQL, Graphx, Streaming
 
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
Como creamos QuestDB Cloud, un SaaS basado en Kubernetes alrededor de QuestDB...
 
2021.02 new in Ceph Pacific Dashboard
2021.02 new in Ceph Pacific Dashboard2021.02 new in Ceph Pacific Dashboard
2021.02 new in Ceph Pacific Dashboard
 
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSPostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
 
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSPostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
 
PostgreSQL as an Alternative to MSSQL
PostgreSQL as an Alternative to MSSQLPostgreSQL as an Alternative to MSSQL
PostgreSQL as an Alternative to MSSQL
 
ClustrixDB: how distributed databases scale out
ClustrixDB: how distributed databases scale outClustrixDB: how distributed databases scale out
ClustrixDB: how distributed databases scale out
 
Towards Data Operations
Towards Data OperationsTowards Data Operations
Towards Data Operations
 
Introduction to ClustrixDB
Introduction to ClustrixDBIntroduction to ClustrixDB
Introduction to ClustrixDB
 
Argus Production Monitoring at Salesforce
Argus Production Monitoring at SalesforceArgus Production Monitoring at Salesforce
Argus Production Monitoring at Salesforce
 
Argus Production Monitoring at Salesforce
Argus Production Monitoring at Salesforce Argus Production Monitoring at Salesforce
Argus Production Monitoring at Salesforce
 
PostgreSQL - Object Relational Database
PostgreSQL - Object Relational DatabasePostgreSQL - Object Relational Database
PostgreSQL - Object Relational Database
 
No sql bigdata and postgresql
No sql bigdata and postgresqlNo sql bigdata and postgresql
No sql bigdata and postgresql
 
MongoDB 4.0 새로운 기능 소개
MongoDB 4.0 새로운 기능 소개MongoDB 4.0 새로운 기능 소개
MongoDB 4.0 새로운 기능 소개
 
GlusterD 2.0 - Managing Distributed File System Using a Centralized Store
GlusterD 2.0 - Managing Distributed File System Using a Centralized StoreGlusterD 2.0 - Managing Distributed File System Using a Centralized Store
GlusterD 2.0 - Managing Distributed File System Using a Centralized Store
 
Gluster d2
Gluster d2Gluster d2
Gluster d2
 
IBM Internet-of-Things architecture and capabilities
IBM Internet-of-Things architecture and capabilitiesIBM Internet-of-Things architecture and capabilities
IBM Internet-of-Things architecture and capabilities
 
19. Cloud Native Computing - Kubernetes - Bratislava - Databases in K8s world
19. Cloud Native Computing - Kubernetes - Bratislava - Databases in K8s world19. Cloud Native Computing - Kubernetes - Bratislava - Databases in K8s world
19. Cloud Native Computing - Kubernetes - Bratislava - Databases in K8s world
 

Recently uploaded

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 

Recently uploaded (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

Introduction to Postrges-XC

  • 1. 1EnterpriseDB, Postgres Plus and Dynatune are trademarks of EnterpriseDB Corporation. Other names may be trademarks of their respective owners. © 2010. All rights reserved. Postgres-XC Write-scalable, Synchronous Multi-master, Transparent PostgreSQL Cluster with Shared Nothing Approach Presented by Ashutosh Bapat November 22, 2011 @ OSI Days 2011
  • 2. Agenda ● High-lights ● Architecture overview ● Performance ● Release and development processes ● Your contributions
  • 3. Postgres-XC - in short ● Write scalable ● Scalability by adding multiple servers ● Each server capable of handling writes ● Synchronous multi-master ● Multiple database servers that client can connect to ● A single, consistent cluster-wide view of the database ● Writes from any server are immediately visible to transactions on other servers ● Transparent ● The applications do not have to worry about where data is stored ● Shared nothing cluster ● Servers do not share any resources ● Loosely coupled to large extent ● Ease of deployment and scaling out by addition of commodity hardware
  • 4. Postgres-XC - high-lights ● Based on world's most advance open source database – PostgreSQL ● Same client APIs as PostgreSQL ● Ease of application migration from existing PostgreSQL deployment ● Licensing – same as PostgreSQL license ● Free to use, modify and redistribute for commercial purposes
  • 5. Postgres-XC - history ● Started through a collaboration between EnterpriseDB and NTT Open Source Software Center in 2009 ● Mandate to build a PostgreSQL based clustering solution which can serve as an alternative to Oracle RAC ● Very well represented by NTT in terms of engineers, hardware and funding ● EnterpriseDB provides key technical resources and PostgreSQL expertise to the project ● Licensing terms changed from GPL to BSD (or PostgreSQL) this year
  • 7. Postgres-XC architecture Applications Coordinators Add coordinators Datanodes Add datanodes SQL + libpq interface Postgres-XC cluster SQL statements from applicationsTransactioninfo GTM
  • 8. Global Transaction Manager (GTM) ● Gather and manage information about transaction activities in the cluster ● Issue global transaction identifiers to transactions and MVCC snapshots for a consistent view on all nodes. ● Help guarantee ACID properties ● Provide support for other global data such as sequences and time-stamps ● Store no data – Except some control information ● Separate binary from coordinator and datanodes
  • 9. Postgres-XC node - Coordinator ● Point of contact for the application/client ● Parse and partially plan the statements ● Determine the data to be fetched from the datanodes and also location of the data ● Fetch the required data by issuing queries to the datanodes ● Combine and process the data to evaluate the results of the query (if needed) ● Pass the results to the applications ● Manage two-phase commit ● Store catalog data ● Need space for materializing results from datanodes ● Binary same as the datanode, based on the latest PostgreSQL release
  • 10. Postgres-XC node type - Datanode ● Stores tables and catalogs ● Executes the queries from the coordinator and return results to the coordinator ● Data nodes can be made fault tolerant by Hot-Standby and Synchronous Replication technologies available with standard PostgreSQL ● Binary same as coordinator, based on latest PostgreSQL release
  • 11. Data management ● A table is stored on datanode/s as ● Replicated table ● Each row in the table is replicated to the datanodes ● Statement based replication ● Distributed table ● Each row of the table is stored on one datanode, decided by one of following strategies – Hash – Round Robin – Modulo – Range and user defined function – TBD
  • 12. Postgres-XC - Replicated tables Writes write write write val val2 1 2 2 10 3 4 val val2 1 2 2 10 3 4 val val2 1 2 2 10 3 4 Reads read val val2 1 2 2 10 3 4 val val2 1 2 2 10 3 4 val val2 1 2 2 10 3 4
  • 13. Postgres-XC - Distributed tables Combiner Read read read read val val2 1 2 2 10 3 4 val val2 11 21 21 101 31 41 val val2 10 20 20 100 30 40 Write write val val2 1 2 2 10 3 4 val val2 11 21 21 101 31 41 val val2 10 20 20 100 30 40 parallel
  • 14. Evaluation ● Conducted by NTT Intellilink ● DBT-1 (TPC-W) benchmark with some minor modification to the schema ● 1 server = 1 coordinator + 1 datanode on same machine ● Coordinator is CPU bound ● Datanode is I/O bound
  • 16. Postgres-XC - Development and Release process ● Primary contribution from NTT/EnterpriseDB with at least 4 full time engineers and 2 part time engineers working on the project ● Open source model where many issues are discussed on the public mailing lists ● Increased interests from other community developers ● One release almost every 3-4 months to get new PGXC features to the users as soon as possible ● Keep pace with the PostgreSQL development to benefit from the new features in PostgreSQL ● GIT repository ensures a clean and quick merge process
  • 17. Upto V 0.9.6 ● Based on PostgreSQL 9.1 ● SQL support ● Major DDL/DML (TABLE, ROLE, VIEW...) ● PREPAREd statements ● SELECT queries: support extension aggregates, HAVING, GROUP BY, ORDER BY, LIMIT, OFFSET... – No CTAS, INSERT SELECT, SELECT INTO (Being worked on) ● Cursors – no backward, no CURRENT OF ● Session parameters ● Temporary objects
  • 18. Expectations from V 1.0 ● SQL support ● Subqueries (WITH) ● CREATE AS/SELECT INTO ● Trigger, rules ● CURRENT OF ● TABLESPACE extension (case of multiple Datanodes on same server...) ● Concurrent index creation ● Changing distribution strategy – Distribution column, nodes or type
  • 19. After V 1.0 ● Global constraints ● Unique/Reference integrity among partition ● Exclusion constraint among partition ● Global deadlock detection (wait-for-graph mechanism) ● Online server removal/addition ● SQL/MED mechanisms, FDW integration ● Connection balancing between master and slave Datanodes for read transactions ● SAVEPOINT
  • 20. Project resources and contacts ● Project home – http://postgres-xc.sourceforge.net ● Developer mailing list – postgres-xc-developers@lists.sourceforge.net – postgres-xc-general@lists.sourceforge.net ● Contact me – ashutosh.bapat@enterprisedb.com – EnterpriseDB, the PostgreSQL company
  • 21. Resources needed for ● Writing Code – Backend - New distributed/parallel query handling/optimization, HA capabilities, Utilities, Bug fixes – Installers, building binaries, distribution packages ● Test – Performance evaluation with various benchmarks – Finding bugs – New feature proposals ● Deployment – Running practical applications against Postgres-XC