Sie sind auf Seite 1von 53

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 Mir became Montage Montage became Illustra

Started a new company called Mir


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 you know the rest from here ...

It became: PostgreSQL

Postgres Begat Many More Forks

Because of the license Because there's a history of forks

Because our code is clean and easy to modify 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 first commercial releases

2008: Amalgamated Insight renamed Truviso

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 Contributes: money & code

Status: current production & development

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 inmemory 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

Truviso PostGIS SEPostgres

Core Variants

Postgres-R pgCluster pgCluster-II PostgresForest pgPool-II Continuent GridSQL

Netezza Greenplum Vertica Paraccel AsterDB HadoopDB Everest

Mammoth Postgres Plus 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.

Das könnte Ihnen auch gefallen