SlideShare una empresa de Scribd logo
1 de 53
Descargar para leer sin conexión
Elephant Roads


               17 Years of Postgres Forks and Variants




Josh Berkus
October 2009
JDCon West
NULL = ?
E.F. Codd
Relational Theory




 The First Day
    (1970)
Michael Stonebraker




INteractive Graphics REtrieval
            System
Michael Stonebraker




     INGRES
  The Second Day
      (1974)
Michael Stonebraker




    POSTGRES
   The Third Day
      (1986)
Stonebraker Marches On ...
             ●   Fourth Day: Cohera
             ●   Fifth Day: Streambase
             ●   Sixth Day: Vertica
             ●   Seventh Day: SciDB
             ●   Eighth Day: VoltDB
             ●   …?
Illustra: The First Fork
●   Stonebraker and a team from UC Berkeley
    forked POSTGRES in 1992
    ●   added SQL support
    ●   added new object-relational features
●   Started a new company called Miró
    ●   Miró became Montage
    ●   Montage became Illustra
Informix Swallows Illustra
●   1997: Informix buys Illustra
●   Illustra features added to Informix OnLine
    ●   and DataBlades ran Illustra
●   2000: Informix Universal Server 9

●   2001: IBM Eats Informix
PostgreSQL: The Second Fork
●   1995: a rag-tag band of POSTGRES users and
    students decided to save the DBMS by taking it
    off-campus.
●   It became: Postgres95
●   1996: they put it on a public CVS server
    ●   ported it to SQL
●   It became: PostgreSQL
    ●   you know the rest from here ...
Postgres Begat Many More Forks
●   Because of the      ●   Because our code is
    license                 clean and easy to
●   Because there's a       modify
    history of forks    ●   Because Postgres is
                            modular and easy to
                            break up or add to
                        ●   Because the
                            community is OK with
                            forks and variants
Why Change PostgreSQL?
●   To experiment with new DB technology
●   To commercialize it
●   To bundle it with useful tools
●   To specialize it for specific tasks
●   To add features the community doesn't want
    ●   or that aren't ready for OSS yet
●   Because you can!
But Aren't Forks Bad?



       No.
Forks Are Good
●   Open source means freedom to fork
    ●   If nobody forks a project, then it's not
        widely used or actively developed.
●   Most forks and their owners
    contribute to core PostgreSQL
    ●   money, code, ideas
●   Some forks develop code to be
    integrated into main Postgres
    ●   best way to try out really challenging
        ideas
4 Types of Postgres Variants
●   Forks: incompatible or proprietary major
    changes to the core code.
●   Patches: compatible, open source major
    changes to the core code.
●   Add-Ons: major middleware or plugins which
    greatly enhance or change Postgres's
    functionality
●   Redistributions: repackaging Postgres under a
    different name and/or license
Expired Forks
Great Bridge PostgreSQL
●   What: PostgreSQL plus some advance patches
    and support.
●   Type: Redistribution
●   Licensing: BSD
●   Versions: Forked from 7.0, merged to 7.1
●   R.I.P.: Great Bridge LLC died in 2001
●   Contributed: lots of code in 1999-2001
    ●   most of Core worked for Great Bridge
Red Hat Database
●   What: PostgreSQL redistribution with
    management tools by Red Hat Inc.
●   Type: Re-distribution
●   Licensing: BSD & GPL
●   Versions: 7.2 to 7.3
●   R.I.P.: Abandoned by Red Hat in 2003
●   Contributed: Tom Lane's salary
    ●   plus visual query analyzer to pgAdmin
NuSphere UltraSQL
●   What: Native Windows Port of PostgreSQL
●   Type: Fork
●   Licensing: Proprietary
●   Versions: 7.2 and 7.3
●   R.I.P.: Lost relevance with release of
    PostgreSQL 8.0
    ●   still technically available
●   Contributed: code to PostgreSQL 8.0
PowerGres & PowerGres Plus
●   What: Native Windows Port of PostgreSQL by
    SRA Inc., with optional custom storage
●   Type: Fork
●   Licensing: Proprietary
●   Versions: 7.3, maybe 7.4
●   R.I.P.: Lost relevance with release of
    PostgreSQL 8.0, HA version still around
●   Contributed: code to PostgreSQL 8.0
Pervasive Postgres
●   What: Regular PostgreSQL with support.
●   Type: Re-distribution
●   Licensing: BSD
●   Versions: 8.0
●   R.I.P.: Pervasive dropped Postgres in 2006
●   Contributed: money to the community, mainly
    for events
Bizgres
●   What: PostgreSQL plus BI and large database
    features.
●   Type: Fork
●   Licensing: BSD
●   Versions: 8.1, 8.2
●   R.I.P.: Project died out in 2008
    ●   Greenplum stopped merging code
●   Contributed: code, money (Greenplum's)
Core Forks & Redistributions
Mammoth PostgreSQL
●   What: PostgreSQL with Mammoth Replicator
●   Owner: CommandPrompt Inc.
●   Type: Fork
●   Licensing: open source
●   Compatibility: High, merges with main code
●   Status: current production & development
    ●   Contributes: money & code
    ●   Used to be a proprietary fork
Postgres Plus
●   What: PostgreSQL with open source add-ons
●   Owner: EnterpriseDB
●   Type: Redistribution
●   Licensing: open source (varies)
●   Compatibility: High, merges with main code
●   Status: current production & development
    ●   Contributes: money & code
Postgres Plus Advanced Server
●   What: PostgreSQL with Oracle Compatibility
    and proprietary tools
●   Owner: EnterpriseDB
●   Type: Fork
●   Licensing: Proprietary
●   Compatibility: High, merges with main code
●   Status: current production & development
    ●   Contributes: money & code
    ●   Formerly EnterpriseDB Advanced Server
Fujitsu Supported PostgreSQL
●   What: PostgreSQL with custom storage engine
●   Owner: Fujitsu Australia
●   Type: Fork
●   Licensing: Proprietary
●   Compatibility: High with 8.2
●   Status: current production
    ●   Contributes: money, occasionally
PostgreSQL for Solaris
●   What: PostgreSQL packaged for Solaris with
    tools and support
●   Owner: Sun Microsystems
●   Type: Redistribution
●   Licensing: open source (varies)
●   Compatibility: High, 8.3
●   Status: current production
    ●   Contributes: code
    ●   Likely to be terminated when Oracle deal completes
Exotic Features
PostGIS
●   What: PostgreSQL plus Geographic support
    ●   #1 open source geo database
●   Type: Add-On
●   Licensing: BSD & GPL
●   Compatibility: High, 8.4
●   Status: current production & development
    ●   Contributes: code, users
    ●   Used to be a package under GPL, now an add-on
Fork: Truviso
●   2000: TelegraphCQ Project started at UC
    Berkeley
    ●   “Continuous Query” processing for PostgreSQL
●   2006: UCB Profs. launch startup Amalgamated
    Insight
    ●   commercialize TelegraphCQ
    ●   re-merged with current PostgreSQL code
●   2008: Amalgamated Insight renamed Truviso
    ●   first commercial releases
Truviso
●   What: PostgreSQL plus Streaming Database
    ●   good for high-volume data streams where you don't
        care about old data
●   Type: Fork
●   Licensing: Proprietary
●   Compatibility: High
    ●   Version: Forked from 7.1, merged to 8.4
●   Status: current production & development
    ●   Contributes: money & code
SEPostgres
●   What: PostgreSQL integrated with SELinux
    label-based access control
●   Type: Patch
●   Owner: SEPostgres project / NEC
●   Licensing: BSD
●   Compatibility: High, 8.4
●   Status: production, working on merge with core
●   Contributes: code
Clustering Forks & Add-Ons
Postgres-R
●   What: PostgreSQL with Group Communication
    support for clustering.
●   Owner: Postgres-R project
●   Type: Patch
●   Licensing: open source (BSD)
●   Compatibility: High, merges
●   Status: alpha, current development
    ●   Contributes: code
pgCluster (and CyberCluster)
●   What: PostgreSQL with Statement Replication
    and controller support for clustering.
●   Owner: pgCluster project, Cybertech.AT
●   Type: Fork
●   Licensing: open source (BSD)
●   Compatibility: High, 8.0
●   Status: beta, development halted
    ●   Contributes: not anymore
pgCluster-II
●   What: PostgreSQL with shared memory &
    storage support for clustering ala RAC
●   Owner: pgCluster project, NTT
●   Type: Fork
●   Licensing: open source (BSD)
●   Compatibility: High, 8.3
●   Status: alpha
    ●   Contributes: code
PostgresForest
●   What: PostgreSQL with middleware-based
    statement replication clustering
●   Owner: NTT (I think)
●   Type: Add-On
●   Licensing: open source
●   Compatibility: Not sure
●   Status: beta, development halted
    ●   Contributes: code
pgPool-II
●   What: statement-replication and partitioning
    middleware for PostgreSQL
●   Owner: pgPool project, SRA
●   Type: Add-On
●   Licensing: open source
●   Compatibility: High, 8.4
●   Status: beta, active development
    ●   Contributes: code, money (SRA)
Continuent
●   What: statement-replication, mangagement and
    partitioning middleware for PostgreSQL
●   Owner: Continuent corporation
●   Type: Add-On
●   Licensing: part open source, part proprietary
●   Compatibility: High, 8.4
●   Status: old version production, Tungsten RSN
    ●   Contributes: code, money
GridSQL
●   What: statement-replication, mangagement and
    partitioning middleware for PostgreSQL
●   Owner: EnterpriseDB
●   Type: Add-On
●   Licensing: GPL
●   Compatibility: High, 8.4
●   Status: production, active development
    ●   Contributes: code, money
    ●   Used to be “ExtenDB”, integrated into Postgres Plus
Data Warehousing / BI
Netezza
●   What: Some PostgreSQL code (30-50%) plus
    proprietary code and hardware package
●   Type: Fork
●   Owner: Netezza Co.
●   Licensing: Proprietary
●   Compatibility: Low
    ●   Forked from 7.2, no longer compatible
●   Status: current production
●   Contributes: nothing
Greenplum
●   What: Mostly PostgreSQL with proprietary MPP
    plus BI and VLDB tools
    ●   great for huge data mining
●   Owner: Greenplum
●   Type: Fork
●   Licensing: Proprietary
●   Compatibility: Medium, 8.2
●   Status: production, active development
    ●   Contributes: code, money
    ●   used to be “Bizgres MPP”
Vertica
●   What: Proprietary code with a few PostgreSQL
    libraries for multi-TB column store database
    ●   great for OLAP
●   Owner: Vertica Co.
●   Type: Fork (sort of)
●   Licensing: Proprietary
●   Compatibility: Low
●   Status: production, active development
    ●   Stonebraker project (no contributions)
Paraccel
●   What: Part-Postgres, part-proprietary in-
    memory clustered pseudo-column store.
    ●   made for “online data analysis”
●   Owner: Paraccel Co.
●   Type: Fork
●   Licensing: Proprietary
●   Compatibility: Medium
●   Status: production, active development
    ●   Contributions: none to date
AsterDB
●   What: Patches and proprietary middleware for
    map/reduce queries on many Postgres servers.
●   Owner: Aster Data Co.
    ●   including former Continuent developer
●   Type: Patch, Add-On
●   Licensing: Proprietary
●   Compatibility: High, 8.4
●   Status: production, active development
    ●   Contributions: code, money
Everest
●   What: PostgreSQL with proprietary storage,
    MPP and column store
    ●   scales to 10's of petabytes
●   Owner: Yahoo!
●   Type: Fork
●   Licensing: Not available to public
●   Compatibility: N/A
●   Status: production
    ●   Contributions: threw a nice party for us
HadoopDB
●   What: Middleware for running map/reduce
    queries over many Postgres instances.
    ●   brand-new
●   Owner: Yale University
●   Type: Add-On
●   Licensing: unclear
●   Compatibility: High, 8.4
●   Status: alpha, active development
    ●   Contributions: none yet
List of Variants
●   Exotic                       ●   Clustering           ●   BI/DW
                                     ●   Postgres-R
    ●   Truviso                                               ●   Netezza
                                     ●   pgCluster
    ●   PostGIS                      ●   pgCluster-II         ●   Greenplum
                                     ●   PostgresForest
    ●   SEPostgres                   ●   pgPool-II
                                                              ●   Vertica
                                         Continuent
    Core Variants                                                 Paraccel
                                     ●
                                                              ●
●
                                     ●   GridSQL
                                                              ●   AsterDB
    ●   Mammoth
                                                              ●   HadoopDB
    ●   Postgres Plus
                                                              ●   Everest
    ●   P.P. Advanced Server
    ●   Fujistu Supported PG
    ●   PostgreSQL for Solaris
So, what are you waiting for?




  Go make your own fork!
Contact
●   Josh Berkus: josh@pgexperts.com
    ●   blog: it.toolbox.com/blogs/database-soup
    ●   www.pgexperts.com/presentations.html
●   PostgreSQL: www.postgresql.org

●   PostgreSQL Experts Inc.:
    www.pgexperts.com


              This talk is copyright 2009 Josh Berkus, and is licensed under the Creative Commons Attribution License.
              Most images are the property of their respective copyright holders. All images are used here for
              purposes of satire or reference to trademarked products.

Más contenido relacionado

La actualidad más candente

Linux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performanceLinux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performancePostgreSQL-Consulting
 
2021 10-13 i ox query processing
2021 10-13 i ox query processing2021 10-13 i ox query processing
2021 10-13 i ox query processingAndrew Lamb
 
The Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization OpportunitiesThe Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization OpportunitiesDatabricks
 
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, Adjust
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, AdjustShipping Data from Postgres to Clickhouse, by Murat Kabilov, Adjust
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, AdjustAltinity Ltd
 
Hadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
Hadoop World 2011: Advanced HBase Schema Design - Lars George, ClouderaHadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
Hadoop World 2011: Advanced HBase Schema Design - Lars George, ClouderaCloudera, Inc.
 
Hive + Tez: A Performance Deep Dive
Hive + Tez: A Performance Deep DiveHive + Tez: A Performance Deep Dive
Hive + Tez: A Performance Deep DiveDataWorks Summit
 
Troubleshooting PostgreSQL Streaming Replication
Troubleshooting PostgreSQL Streaming ReplicationTroubleshooting PostgreSQL Streaming Replication
Troubleshooting PostgreSQL Streaming ReplicationAlexey Lesovsky
 
[Meetup] a successful migration from elastic search to clickhouse
[Meetup] a successful migration from elastic search to clickhouse[Meetup] a successful migration from elastic search to clickhouse
[Meetup] a successful migration from elastic search to clickhouseVianney FOUCAULT
 
Inside Parquet Format
Inside Parquet FormatInside Parquet Format
Inside Parquet FormatYue Chen
 
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...Databricks
 
PostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFSPostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFSTomas Vondra
 
Spark shuffle introduction
Spark shuffle introductionSpark shuffle introduction
Spark shuffle introductioncolorant
 
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/AvroThe Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/AvroDatabricks
 
ClickHouse Monitoring 101: What to monitor and how
ClickHouse Monitoring 101: What to monitor and howClickHouse Monitoring 101: What to monitor and how
ClickHouse Monitoring 101: What to monitor and howAltinity Ltd
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageKernel TLV
 
Connection Pooling in PostgreSQL using pgbouncer
Connection Pooling in PostgreSQL using pgbouncer Connection Pooling in PostgreSQL using pgbouncer
Connection Pooling in PostgreSQL using pgbouncer Sameer Kumar
 
JSON improvements in MySQL 8.0
JSON improvements in MySQL 8.0JSON improvements in MySQL 8.0
JSON improvements in MySQL 8.0Mydbops
 
Millions of Regions in HBase: Size Matters
Millions of Regions in HBase: Size MattersMillions of Regions in HBase: Size Matters
Millions of Regions in HBase: Size MattersDataWorks Summit
 
Dongwon Kim – A Comparative Performance Evaluation of Flink
Dongwon Kim – A Comparative Performance Evaluation of FlinkDongwon Kim – A Comparative Performance Evaluation of Flink
Dongwon Kim – A Comparative Performance Evaluation of FlinkFlink Forward
 
Building Reliable Lakehouses with Apache Flink and Delta Lake
Building Reliable Lakehouses with Apache Flink and Delta LakeBuilding Reliable Lakehouses with Apache Flink and Delta Lake
Building Reliable Lakehouses with Apache Flink and Delta LakeFlink Forward
 

La actualidad más candente (20)

Linux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performanceLinux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performance
 
2021 10-13 i ox query processing
2021 10-13 i ox query processing2021 10-13 i ox query processing
2021 10-13 i ox query processing
 
The Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization OpportunitiesThe Parquet Format and Performance Optimization Opportunities
The Parquet Format and Performance Optimization Opportunities
 
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, Adjust
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, AdjustShipping Data from Postgres to Clickhouse, by Murat Kabilov, Adjust
Shipping Data from Postgres to Clickhouse, by Murat Kabilov, Adjust
 
Hadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
Hadoop World 2011: Advanced HBase Schema Design - Lars George, ClouderaHadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
Hadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
 
Hive + Tez: A Performance Deep Dive
Hive + Tez: A Performance Deep DiveHive + Tez: A Performance Deep Dive
Hive + Tez: A Performance Deep Dive
 
Troubleshooting PostgreSQL Streaming Replication
Troubleshooting PostgreSQL Streaming ReplicationTroubleshooting PostgreSQL Streaming Replication
Troubleshooting PostgreSQL Streaming Replication
 
[Meetup] a successful migration from elastic search to clickhouse
[Meetup] a successful migration from elastic search to clickhouse[Meetup] a successful migration from elastic search to clickhouse
[Meetup] a successful migration from elastic search to clickhouse
 
Inside Parquet Format
Inside Parquet FormatInside Parquet Format
Inside Parquet Format
 
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
 
PostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFSPostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFS
 
Spark shuffle introduction
Spark shuffle introductionSpark shuffle introduction
Spark shuffle introduction
 
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/AvroThe Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
 
ClickHouse Monitoring 101: What to monitor and how
ClickHouse Monitoring 101: What to monitor and howClickHouse Monitoring 101: What to monitor and how
ClickHouse Monitoring 101: What to monitor and how
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast Storage
 
Connection Pooling in PostgreSQL using pgbouncer
Connection Pooling in PostgreSQL using pgbouncer Connection Pooling in PostgreSQL using pgbouncer
Connection Pooling in PostgreSQL using pgbouncer
 
JSON improvements in MySQL 8.0
JSON improvements in MySQL 8.0JSON improvements in MySQL 8.0
JSON improvements in MySQL 8.0
 
Millions of Regions in HBase: Size Matters
Millions of Regions in HBase: Size MattersMillions of Regions in HBase: Size Matters
Millions of Regions in HBase: Size Matters
 
Dongwon Kim – A Comparative Performance Evaluation of Flink
Dongwon Kim – A Comparative Performance Evaluation of FlinkDongwon Kim – A Comparative Performance Evaluation of Flink
Dongwon Kim – A Comparative Performance Evaluation of Flink
 
Building Reliable Lakehouses with Apache Flink and Delta Lake
Building Reliable Lakehouses with Apache Flink and Delta LakeBuilding Reliable Lakehouses with Apache Flink and Delta Lake
Building Reliable Lakehouses with Apache Flink and Delta Lake
 

Destacado

The moroccan ethnic groups of Morocco
The moroccan ethnic groups of MoroccoThe moroccan ethnic groups of Morocco
The moroccan ethnic groups of MoroccoMohsine Mahraj
 
Pater Gjergj Fishta (1871-1940)
Pater Gjergj Fishta (1871-1940)Pater Gjergj Fishta (1871-1940)
Pater Gjergj Fishta (1871-1940)Marjan DODAJ
 
Doing More with Postgres - Yesterday's Vision Becomes Today's Reality
Doing More with Postgres - Yesterday's Vision Becomes Today's RealityDoing More with Postgres - Yesterday's Vision Becomes Today's Reality
Doing More with Postgres - Yesterday's Vision Becomes Today's RealityEDB
 
Cloudera Impala + PostgreSQL
Cloudera Impala + PostgreSQLCloudera Impala + PostgreSQL
Cloudera Impala + PostgreSQLliuknag
 
Streaming huge databases using logical decoding
Streaming huge databases using logical decodingStreaming huge databases using logical decoding
Streaming huge databases using logical decodingAlexander Shulgin
 
Drive DBMS Transformation with EDB Postgres
Drive DBMS Transformation with EDB PostgresDrive DBMS Transformation with EDB Postgres
Drive DBMS Transformation with EDB PostgresEDB
 
Владимир Бородин - PostgreSQL
Владимир Бородин - PostgreSQLВладимир Бородин - PostgreSQL
Владимир Бородин - PostgreSQLYandex
 
PostgreSQL, Extensible to the Nth Degree: Functions, Languages, Types, Rules,...
PostgreSQL, Extensible to the Nth Degree: Functions, Languages, Types, Rules,...PostgreSQL, Extensible to the Nth Degree: Functions, Languages, Types, Rules,...
PostgreSQL, Extensible to the Nth Degree: Functions, Languages, Types, Rules,...Command Prompt., Inc
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLCommand Prompt., Inc
 
Not Just UNIQUE: Generalized Index Constraints
Not Just UNIQUE: Generalized Index ConstraintsNot Just UNIQUE: Generalized Index Constraints
Not Just UNIQUE: Generalized Index ConstraintsCommand Prompt., Inc
 
PostgresOpen 2013 A Comparison of PostgreSQL Encryption Options
PostgresOpen 2013 A Comparison of PostgreSQL Encryption OptionsPostgresOpen 2013 A Comparison of PostgreSQL Encryption Options
PostgresOpen 2013 A Comparison of PostgreSQL Encryption OptionsFaisal Akber
 
Londiste Replication system for PostgreSQL
Londiste Replication system for PostgreSQLLondiste Replication system for PostgreSQL
Londiste Replication system for PostgreSQLelliando dias
 
2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ru2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ruNikolay Samokhvalov
 
Scaling PostgreSQL with Skytools
Scaling PostgreSQL with SkytoolsScaling PostgreSQL with Skytools
Scaling PostgreSQL with SkytoolsGavin Roy
 
Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011Lennin Caro
 
Mastering PostgreSQL Administration
Mastering PostgreSQL AdministrationMastering PostgreSQL Administration
Mastering PostgreSQL AdministrationCommand Prompt., Inc
 
PostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidadPostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidadSantiago Zarate
 

Destacado (20)

The moroccan ethnic groups of Morocco
The moroccan ethnic groups of MoroccoThe moroccan ethnic groups of Morocco
The moroccan ethnic groups of Morocco
 
Pater Gjergj Fishta (1871-1940)
Pater Gjergj Fishta (1871-1940)Pater Gjergj Fishta (1871-1940)
Pater Gjergj Fishta (1871-1940)
 
Doing More with Postgres - Yesterday's Vision Becomes Today's Reality
Doing More with Postgres - Yesterday's Vision Becomes Today's RealityDoing More with Postgres - Yesterday's Vision Becomes Today's Reality
Doing More with Postgres - Yesterday's Vision Becomes Today's Reality
 
Cloudera Impala + PostgreSQL
Cloudera Impala + PostgreSQLCloudera Impala + PostgreSQL
Cloudera Impala + PostgreSQL
 
Streaming huge databases using logical decoding
Streaming huge databases using logical decodingStreaming huge databases using logical decoding
Streaming huge databases using logical decoding
 
Drive DBMS Transformation with EDB Postgres
Drive DBMS Transformation with EDB PostgresDrive DBMS Transformation with EDB Postgres
Drive DBMS Transformation with EDB Postgres
 
Владимир Бородин - PostgreSQL
Владимир Бородин - PostgreSQLВладимир Бородин - PostgreSQL
Владимир Бородин - PostgreSQL
 
PostgreSQL, Extensible to the Nth Degree: Functions, Languages, Types, Rules,...
PostgreSQL, Extensible to the Nth Degree: Functions, Languages, Types, Rules,...PostgreSQL, Extensible to the Nth Degree: Functions, Languages, Types, Rules,...
PostgreSQL, Extensible to the Nth Degree: Functions, Languages, Types, Rules,...
 
Bucardo
BucardoBucardo
Bucardo
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQL
 
Basic Query Tuning Primer
Basic Query Tuning PrimerBasic Query Tuning Primer
Basic Query Tuning Primer
 
Not Just UNIQUE: Generalized Index Constraints
Not Just UNIQUE: Generalized Index ConstraintsNot Just UNIQUE: Generalized Index Constraints
Not Just UNIQUE: Generalized Index Constraints
 
The PostgreSQL Query Planner
The PostgreSQL Query PlannerThe PostgreSQL Query Planner
The PostgreSQL Query Planner
 
PostgresOpen 2013 A Comparison of PostgreSQL Encryption Options
PostgresOpen 2013 A Comparison of PostgreSQL Encryption OptionsPostgresOpen 2013 A Comparison of PostgreSQL Encryption Options
PostgresOpen 2013 A Comparison of PostgreSQL Encryption Options
 
Londiste Replication system for PostgreSQL
Londiste Replication system for PostgreSQLLondiste Replication system for PostgreSQL
Londiste Replication system for PostgreSQL
 
2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ru2014.10.15 Сергей Бурладян, Avito.ru
2014.10.15 Сергей Бурладян, Avito.ru
 
Scaling PostgreSQL with Skytools
Scaling PostgreSQL with SkytoolsScaling PostgreSQL with Skytools
Scaling PostgreSQL with Skytools
 
Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011
 
Mastering PostgreSQL Administration
Mastering PostgreSQL AdministrationMastering PostgreSQL Administration
Mastering PostgreSQL Administration
 
PostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidadPostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidad
 

Similar a Elephant Roads: a tour of Postgres forks

Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Chandan Kumar
 
Deep Postgres Extensions in Rust | PGCon 2019 | Jeff Davis
Deep Postgres Extensions in Rust | PGCon 2019 | Jeff DavisDeep Postgres Extensions in Rust | PGCon 2019 | Jeff Davis
Deep Postgres Extensions in Rust | PGCon 2019 | Jeff DavisCitus Data
 
Beyond Postgres: Interesting Projects, Tools and forks
Beyond Postgres: Interesting Projects, Tools and forksBeyond Postgres: Interesting Projects, Tools and forks
Beyond Postgres: Interesting Projects, Tools and forksSameer Kumar
 
An evening with Postgresql
An evening with PostgresqlAn evening with Postgresql
An evening with PostgresqlJoshua Drake
 
GitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by ScalaGitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by Scalatakezoe
 
High performance json- postgre sql vs. mongodb
High performance json- postgre sql vs. mongodbHigh performance json- postgre sql vs. mongodb
High performance json- postgre sql vs. mongodbWei Shan Ang
 
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...Igalia
 
Upcoming features in Airflow 2
Upcoming features in Airflow 2Upcoming features in Airflow 2
Upcoming features in Airflow 2Kaxil Naik
 
When it all GOes right
When it all GOes rightWhen it all GOes right
When it all GOes rightPavlo Golub
 
Why run Postgres in Kubernetes?
Why run Postgres in Kubernetes?Why run Postgres in Kubernetes?
Why run Postgres in Kubernetes?DoKC
 
Why run Postgres in Kubernetes?
Why run Postgres in Kubernetes?Why run Postgres in Kubernetes?
Why run Postgres in Kubernetes?DoKC
 
CON6423: Scalable JavaScript applications with Project Nashorn
CON6423: Scalable JavaScript applications with Project NashornCON6423: Scalable JavaScript applications with Project Nashorn
CON6423: Scalable JavaScript applications with Project NashornMichel Graciano
 
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...DoKC
 
Scalable Clusters On Demand
Scalable Clusters On DemandScalable Clusters On Demand
Scalable Clusters On DemandBogdan Kyryliuk
 
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)Gabriele Bartolini
 
Benchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetesBenchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetesDoKC
 

Similar a Elephant Roads: a tour of Postgres forks (20)

Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO
 
Deep Postgres Extensions in Rust | PGCon 2019 | Jeff Davis
Deep Postgres Extensions in Rust | PGCon 2019 | Jeff DavisDeep Postgres Extensions in Rust | PGCon 2019 | Jeff Davis
Deep Postgres Extensions in Rust | PGCon 2019 | Jeff Davis
 
Go at Skroutz
Go at SkroutzGo at Skroutz
Go at Skroutz
 
Beyond Postgres: Interesting Projects, Tools and forks
Beyond Postgres: Interesting Projects, Tools and forksBeyond Postgres: Interesting Projects, Tools and forks
Beyond Postgres: Interesting Projects, Tools and forks
 
Go at uber
Go at uberGo at uber
Go at uber
 
An evening with Postgresql
An evening with PostgresqlAn evening with Postgresql
An evening with Postgresql
 
GitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by ScalaGitBucket: Open source self-hosting Git server built by Scala
GitBucket: Open source self-hosting Git server built by Scala
 
High performance json- postgre sql vs. mongodb
High performance json- postgre sql vs. mongodbHigh performance json- postgre sql vs. mongodb
High performance json- postgre sql vs. mongodb
 
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
Multimedia support in WebKitGTK and WPE, current status and plans (GStreamer ...
 
Upcoming features in Airflow 2
Upcoming features in Airflow 2Upcoming features in Airflow 2
Upcoming features in Airflow 2
 
When it all GOes right
When it all GOes rightWhen it all GOes right
When it all GOes right
 
Why run Postgres in Kubernetes?
Why run Postgres in Kubernetes?Why run Postgres in Kubernetes?
Why run Postgres in Kubernetes?
 
Why run Postgres in Kubernetes?
Why run Postgres in Kubernetes?Why run Postgres in Kubernetes?
Why run Postgres in Kubernetes?
 
PostgreSQL Development Today: 9.0
PostgreSQL Development Today: 9.0PostgreSQL Development Today: 9.0
PostgreSQL Development Today: 9.0
 
CON6423: Scalable JavaScript applications with Project Nashorn
CON6423: Scalable JavaScript applications with Project NashornCON6423: Scalable JavaScript applications with Project Nashorn
CON6423: Scalable JavaScript applications with Project Nashorn
 
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...
 
Grafana 7.0
Grafana 7.0Grafana 7.0
Grafana 7.0
 
Scalable Clusters On Demand
Scalable Clusters On DemandScalable Clusters On Demand
Scalable Clusters On Demand
 
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
 
Benchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetesBenchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetes
 

Más de Command Prompt., Inc

Howdah - An Application using Pylons, PostgreSQL, Simpycity and Exceptable
Howdah - An Application using Pylons, PostgreSQL, Simpycity and ExceptableHowdah - An Application using Pylons, PostgreSQL, Simpycity and Exceptable
Howdah - An Application using Pylons, PostgreSQL, Simpycity and ExceptableCommand Prompt., Inc
 
Replication using PostgreSQL Replicator
Replication using PostgreSQL ReplicatorReplication using PostgreSQL Replicator
Replication using PostgreSQL ReplicatorCommand Prompt., Inc
 
Python utilities for data presentation
Python utilities for data presentationPython utilities for data presentation
Python utilities for data presentationCommand Prompt., Inc
 
Implementing the Future of PostgreSQL Clustering with Tungsten
Implementing the Future of PostgreSQL Clustering with TungstenImplementing the Future of PostgreSQL Clustering with Tungsten
Implementing the Future of PostgreSQL Clustering with TungstenCommand Prompt., Inc
 
configuring a warm standby, the easy way
configuring a warm standby, the easy wayconfiguring a warm standby, the easy way
configuring a warm standby, the easy wayCommand Prompt., Inc
 
Normalization: A Workshop for Everybody Pt. 2
Normalization: A Workshop for Everybody Pt. 2Normalization: A Workshop for Everybody Pt. 2
Normalization: A Workshop for Everybody Pt. 2Command Prompt., Inc
 
Normalization: A Workshop for Everybody Pt. 1
Normalization: A Workshop for Everybody Pt. 1Normalization: A Workshop for Everybody Pt. 1
Normalization: A Workshop for Everybody Pt. 1Command Prompt., Inc
 
Integrating PostGIS in Web Applications
Integrating PostGIS in Web ApplicationsIntegrating PostGIS in Web Applications
Integrating PostGIS in Web ApplicationsCommand Prompt., Inc
 
PostgreSQL High Availability via SLONY and PG POOL II
PostgreSQL High Availability via SLONY and PG POOL IIPostgreSQL High Availability via SLONY and PG POOL II
PostgreSQL High Availability via SLONY and PG POOL IICommand Prompt., Inc
 
Postgres for MySQL (and other database) people
Postgres for MySQL (and other database) peoplePostgres for MySQL (and other database) people
Postgres for MySQL (and other database) peopleCommand Prompt., Inc
 
Building Grails applications with PostgreSQL
Building Grails applications with PostgreSQLBuilding Grails applications with PostgreSQL
Building Grails applications with PostgreSQLCommand Prompt., Inc
 
Not Just UNIQUE: Exclusion Constraints
Not Just UNIQUE: Exclusion ConstraintsNot Just UNIQUE: Exclusion Constraints
Not Just UNIQUE: Exclusion ConstraintsCommand Prompt., Inc
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLCommand Prompt., Inc
 

Más de Command Prompt., Inc (20)

Howdah - An Application using Pylons, PostgreSQL, Simpycity and Exceptable
Howdah - An Application using Pylons, PostgreSQL, Simpycity and ExceptableHowdah - An Application using Pylons, PostgreSQL, Simpycity and Exceptable
Howdah - An Application using Pylons, PostgreSQL, Simpycity and Exceptable
 
Backup and-recovery2
Backup and-recovery2Backup and-recovery2
Backup and-recovery2
 
Temporal Data
Temporal DataTemporal Data
Temporal Data
 
Replication using PostgreSQL Replicator
Replication using PostgreSQL ReplicatorReplication using PostgreSQL Replicator
Replication using PostgreSQL Replicator
 
Go replicator
Go replicatorGo replicator
Go replicator
 
Pg migrator
Pg migratorPg migrator
Pg migrator
 
Python utilities for data presentation
Python utilities for data presentationPython utilities for data presentation
Python utilities for data presentation
 
Implementing the Future of PostgreSQL Clustering with Tungsten
Implementing the Future of PostgreSQL Clustering with TungstenImplementing the Future of PostgreSQL Clustering with Tungsten
Implementing the Future of PostgreSQL Clustering with Tungsten
 
configuring a warm standby, the easy way
configuring a warm standby, the easy wayconfiguring a warm standby, the easy way
configuring a warm standby, the easy way
 
A Practical Multi-Tenant Cluster
A Practical Multi-Tenant ClusterA Practical Multi-Tenant Cluster
A Practical Multi-Tenant Cluster
 
5 Steps to PostgreSQL Performance
5 Steps to PostgreSQL Performance5 Steps to PostgreSQL Performance
5 Steps to PostgreSQL Performance
 
Normalization: A Workshop for Everybody Pt. 2
Normalization: A Workshop for Everybody Pt. 2Normalization: A Workshop for Everybody Pt. 2
Normalization: A Workshop for Everybody Pt. 2
 
Normalization: A Workshop for Everybody Pt. 1
Normalization: A Workshop for Everybody Pt. 1Normalization: A Workshop for Everybody Pt. 1
Normalization: A Workshop for Everybody Pt. 1
 
Integrating PostGIS in Web Applications
Integrating PostGIS in Web ApplicationsIntegrating PostGIS in Web Applications
Integrating PostGIS in Web Applications
 
PostgreSQL High Availability via SLONY and PG POOL II
PostgreSQL High Availability via SLONY and PG POOL IIPostgreSQL High Availability via SLONY and PG POOL II
PostgreSQL High Availability via SLONY and PG POOL II
 
Postgres for MySQL (and other database) people
Postgres for MySQL (and other database) peoplePostgres for MySQL (and other database) people
Postgres for MySQL (and other database) people
 
Building Grails applications with PostgreSQL
Building Grails applications with PostgreSQLBuilding Grails applications with PostgreSQL
Building Grails applications with PostgreSQL
 
Pg amqp
Pg amqpPg amqp
Pg amqp
 
Not Just UNIQUE: Exclusion Constraints
Not Just UNIQUE: Exclusion ConstraintsNot Just UNIQUE: Exclusion Constraints
Not Just UNIQUE: Exclusion Constraints
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQL
 

Elephant Roads: a tour of Postgres forks

  • 1. Elephant Roads 17 Years of Postgres Forks and Variants Josh Berkus October 2009 JDCon West
  • 3.
  • 4. E.F. Codd Relational Theory The First Day (1970)
  • 6. Michael Stonebraker INGRES The Second Day (1974)
  • 7. Michael Stonebraker POSTGRES The Third Day (1986)
  • 8. Stonebraker Marches On ... ● Fourth Day: Cohera ● Fifth Day: Streambase ● Sixth Day: Vertica ● Seventh Day: SciDB ● Eighth Day: VoltDB ● …?
  • 9. Illustra: The First Fork ● Stonebraker and a team from UC Berkeley forked POSTGRES in 1992 ● added SQL support ● added new object-relational features ● Started a new company called Miró ● Miró became Montage ● Montage became Illustra
  • 10. Informix Swallows Illustra ● 1997: Informix buys Illustra ● Illustra features added to Informix OnLine ● and DataBlades ran Illustra ● 2000: Informix Universal Server 9 ● 2001: IBM Eats Informix
  • 11. PostgreSQL: The Second Fork ● 1995: a rag-tag band of POSTGRES users and students decided to save the DBMS by taking it off-campus. ● It became: Postgres95 ● 1996: they put it on a public CVS server ● ported it to SQL ● It became: PostgreSQL ● you know the rest from here ...
  • 12. Postgres Begat Many More Forks ● Because of the ● Because our code is license clean and easy to ● Because there's a modify history of forks ● Because Postgres is modular and easy to break up or add to ● Because the community is OK with forks and variants
  • 13. Why Change PostgreSQL? ● To experiment with new DB technology ● To commercialize it ● To bundle it with useful tools ● To specialize it for specific tasks ● To add features the community doesn't want ● or that aren't ready for OSS yet ● Because you can!
  • 14. But Aren't Forks Bad? No.
  • 15. Forks Are Good ● Open source means freedom to fork ● If nobody forks a project, then it's not widely used or actively developed. ● Most forks and their owners contribute to core PostgreSQL ● money, code, ideas ● Some forks develop code to be integrated into main Postgres ● best way to try out really challenging ideas
  • 16. 4 Types of Postgres Variants ● Forks: incompatible or proprietary major changes to the core code. ● Patches: compatible, open source major changes to the core code. ● Add-Ons: major middleware or plugins which greatly enhance or change Postgres's functionality ● Redistributions: repackaging Postgres under a different name and/or license
  • 18. Great Bridge PostgreSQL ● What: PostgreSQL plus some advance patches and support. ● Type: Redistribution ● Licensing: BSD ● Versions: Forked from 7.0, merged to 7.1 ● R.I.P.: Great Bridge LLC died in 2001 ● Contributed: lots of code in 1999-2001 ● most of Core worked for Great Bridge
  • 19. Red Hat Database ● What: PostgreSQL redistribution with management tools by Red Hat Inc. ● Type: Re-distribution ● Licensing: BSD & GPL ● Versions: 7.2 to 7.3 ● R.I.P.: Abandoned by Red Hat in 2003 ● Contributed: Tom Lane's salary ● plus visual query analyzer to pgAdmin
  • 20. NuSphere UltraSQL ● What: Native Windows Port of PostgreSQL ● Type: Fork ● Licensing: Proprietary ● Versions: 7.2 and 7.3 ● R.I.P.: Lost relevance with release of PostgreSQL 8.0 ● still technically available ● Contributed: code to PostgreSQL 8.0
  • 21. PowerGres & PowerGres Plus ● What: Native Windows Port of PostgreSQL by SRA Inc., with optional custom storage ● Type: Fork ● Licensing: Proprietary ● Versions: 7.3, maybe 7.4 ● R.I.P.: Lost relevance with release of PostgreSQL 8.0, HA version still around ● Contributed: code to PostgreSQL 8.0
  • 22. Pervasive Postgres ● What: Regular PostgreSQL with support. ● Type: Re-distribution ● Licensing: BSD ● Versions: 8.0 ● R.I.P.: Pervasive dropped Postgres in 2006 ● Contributed: money to the community, mainly for events
  • 23. Bizgres ● What: PostgreSQL plus BI and large database features. ● Type: Fork ● Licensing: BSD ● Versions: 8.1, 8.2 ● R.I.P.: Project died out in 2008 ● Greenplum stopped merging code ● Contributed: code, money (Greenplum's)
  • 24. Core Forks & Redistributions
  • 25. Mammoth PostgreSQL ● What: PostgreSQL with Mammoth Replicator ● Owner: CommandPrompt Inc. ● Type: Fork ● Licensing: open source ● Compatibility: High, merges with main code ● Status: current production & development ● Contributes: money & code ● Used to be a proprietary fork
  • 26. Postgres Plus ● What: PostgreSQL with open source add-ons ● Owner: EnterpriseDB ● Type: Redistribution ● Licensing: open source (varies) ● Compatibility: High, merges with main code ● Status: current production & development ● Contributes: money & code
  • 27. Postgres Plus Advanced Server ● What: PostgreSQL with Oracle Compatibility and proprietary tools ● Owner: EnterpriseDB ● Type: Fork ● Licensing: Proprietary ● Compatibility: High, merges with main code ● Status: current production & development ● Contributes: money & code ● Formerly EnterpriseDB Advanced Server
  • 28. Fujitsu Supported PostgreSQL ● What: PostgreSQL with custom storage engine ● Owner: Fujitsu Australia ● Type: Fork ● Licensing: Proprietary ● Compatibility: High with 8.2 ● Status: current production ● Contributes: money, occasionally
  • 29. PostgreSQL for Solaris ● What: PostgreSQL packaged for Solaris with tools and support ● Owner: Sun Microsystems ● Type: Redistribution ● Licensing: open source (varies) ● Compatibility: High, 8.3 ● Status: current production ● Contributes: code ● Likely to be terminated when Oracle deal completes
  • 31. PostGIS ● What: PostgreSQL plus Geographic support ● #1 open source geo database ● Type: Add-On ● Licensing: BSD & GPL ● Compatibility: High, 8.4 ● Status: current production & development ● Contributes: code, users ● Used to be a package under GPL, now an add-on
  • 32. Fork: Truviso ● 2000: TelegraphCQ Project started at UC Berkeley ● “Continuous Query” processing for PostgreSQL ● 2006: UCB Profs. launch startup Amalgamated Insight ● commercialize TelegraphCQ ● re-merged with current PostgreSQL code ● 2008: Amalgamated Insight renamed Truviso ● first commercial releases
  • 33. Truviso ● What: PostgreSQL plus Streaming Database ● good for high-volume data streams where you don't care about old data ● Type: Fork ● Licensing: Proprietary ● Compatibility: High ● Version: Forked from 7.1, merged to 8.4 ● Status: current production & development ● Contributes: money & code
  • 34. SEPostgres ● What: PostgreSQL integrated with SELinux label-based access control ● Type: Patch ● Owner: SEPostgres project / NEC ● Licensing: BSD ● Compatibility: High, 8.4 ● Status: production, working on merge with core ● Contributes: code
  • 36. Postgres-R ● What: PostgreSQL with Group Communication support for clustering. ● Owner: Postgres-R project ● Type: Patch ● Licensing: open source (BSD) ● Compatibility: High, merges ● Status: alpha, current development ● Contributes: code
  • 37. pgCluster (and CyberCluster) ● What: PostgreSQL with Statement Replication and controller support for clustering. ● Owner: pgCluster project, Cybertech.AT ● Type: Fork ● Licensing: open source (BSD) ● Compatibility: High, 8.0 ● Status: beta, development halted ● Contributes: not anymore
  • 38. pgCluster-II ● What: PostgreSQL with shared memory & storage support for clustering ala RAC ● Owner: pgCluster project, NTT ● Type: Fork ● Licensing: open source (BSD) ● Compatibility: High, 8.3 ● Status: alpha ● Contributes: code
  • 39. PostgresForest ● What: PostgreSQL with middleware-based statement replication clustering ● Owner: NTT (I think) ● Type: Add-On ● Licensing: open source ● Compatibility: Not sure ● Status: beta, development halted ● Contributes: code
  • 40. pgPool-II ● What: statement-replication and partitioning middleware for PostgreSQL ● Owner: pgPool project, SRA ● Type: Add-On ● Licensing: open source ● Compatibility: High, 8.4 ● Status: beta, active development ● Contributes: code, money (SRA)
  • 41. Continuent ● What: statement-replication, mangagement and partitioning middleware for PostgreSQL ● Owner: Continuent corporation ● Type: Add-On ● Licensing: part open source, part proprietary ● Compatibility: High, 8.4 ● Status: old version production, Tungsten RSN ● Contributes: code, money
  • 42. GridSQL ● What: statement-replication, mangagement and partitioning middleware for PostgreSQL ● Owner: EnterpriseDB ● Type: Add-On ● Licensing: GPL ● Compatibility: High, 8.4 ● Status: production, active development ● Contributes: code, money ● Used to be “ExtenDB”, integrated into Postgres Plus
  • 44. Netezza ● What: Some PostgreSQL code (30-50%) plus proprietary code and hardware package ● Type: Fork ● Owner: Netezza Co. ● Licensing: Proprietary ● Compatibility: Low ● Forked from 7.2, no longer compatible ● Status: current production ● Contributes: nothing
  • 45. Greenplum ● What: Mostly PostgreSQL with proprietary MPP plus BI and VLDB tools ● great for huge data mining ● Owner: Greenplum ● Type: Fork ● Licensing: Proprietary ● Compatibility: Medium, 8.2 ● Status: production, active development ● Contributes: code, money ● used to be “Bizgres MPP”
  • 46. Vertica ● What: Proprietary code with a few PostgreSQL libraries for multi-TB column store database ● great for OLAP ● Owner: Vertica Co. ● Type: Fork (sort of) ● Licensing: Proprietary ● Compatibility: Low ● Status: production, active development ● Stonebraker project (no contributions)
  • 47. Paraccel ● What: Part-Postgres, part-proprietary in- memory clustered pseudo-column store. ● made for “online data analysis” ● Owner: Paraccel Co. ● Type: Fork ● Licensing: Proprietary ● Compatibility: Medium ● Status: production, active development ● Contributions: none to date
  • 48. AsterDB ● What: Patches and proprietary middleware for map/reduce queries on many Postgres servers. ● Owner: Aster Data Co. ● including former Continuent developer ● Type: Patch, Add-On ● Licensing: Proprietary ● Compatibility: High, 8.4 ● Status: production, active development ● Contributions: code, money
  • 49. Everest ● What: PostgreSQL with proprietary storage, MPP and column store ● scales to 10's of petabytes ● Owner: Yahoo! ● Type: Fork ● Licensing: Not available to public ● Compatibility: N/A ● Status: production ● Contributions: threw a nice party for us
  • 50. HadoopDB ● What: Middleware for running map/reduce queries over many Postgres instances. ● brand-new ● Owner: Yale University ● Type: Add-On ● Licensing: unclear ● Compatibility: High, 8.4 ● Status: alpha, active development ● Contributions: none yet
  • 51. List of Variants ● Exotic ● Clustering ● BI/DW ● Postgres-R ● Truviso ● Netezza ● pgCluster ● PostGIS ● pgCluster-II ● Greenplum ● PostgresForest ● SEPostgres ● pgPool-II ● Vertica Continuent Core Variants Paraccel ● ● ● ● GridSQL ● AsterDB ● Mammoth ● HadoopDB ● Postgres Plus ● Everest ● P.P. Advanced Server ● Fujistu Supported PG ● PostgreSQL for Solaris
  • 52. So, what are you waiting for? Go make your own fork!
  • 53. Contact ● Josh Berkus: josh@pgexperts.com ● blog: it.toolbox.com/blogs/database-soup ● www.pgexperts.com/presentations.html ● PostgreSQL: www.postgresql.org ● PostgreSQL Experts Inc.: www.pgexperts.com This talk is copyright 2009 Josh Berkus, and is licensed under the Creative Commons Attribution License. Most images are the property of their respective copyright holders. All images are used here for purposes of satire or reference to trademarked products.