0
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
             ●   Six...
Illustra: The First Fork
●   Stonebraker and a team from UC Berkeley
    forked POSTGRES in 1992
    ●   added SQL support...
Informix Swallows Illustra
●   1997: Informix buys Illustra
●   Illustra features added to Informix OnLine
    ●   and Dat...
PostgreSQL: The Second Fork
●   1995: a rag-tag band of POSTGRES users and
    students decided to save the DBMS by taking...
Postgres Begat Many More Forks
●   Because of the      ●   Because our code is
    license                 clean and easy ...
Why Change PostgreSQL?
●   To experiment with new DB technology
●   To commercialize it
●   To bundle it with useful tools...
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 ...
4 Types of Postgres Variants
●   Forks: incompatible or proprietary major
    changes to the core code.
●   Patches: compa...
Expired Forks
Great Bridge PostgreSQL
●   What: PostgreSQL plus some advance patches
    and support.
●   Type: Redistribution
●   Licen...
Red Hat Database
●   What: PostgreSQL redistribution with
    management tools by Red Hat Inc.
●   Type: Re-distribution
●...
NuSphere UltraSQL
●   What: Native Windows Port of PostgreSQL
●   Type: Fork
●   Licensing: Proprietary
●   Versions: 7.2 ...
PowerGres & PowerGres Plus
●   What: Native Windows Port of PostgreSQL by
    SRA Inc., with optional custom storage
●   T...
Pervasive Postgres
●   What: Regular PostgreSQL with support.
●   Type: Re-distribution
●   Licensing: BSD
●   Versions: 8...
Bizgres
●   What: PostgreSQL plus BI and large database
    features.
●   Type: Fork
●   Licensing: BSD
●   Versions: 8.1,...
Core Forks & Redistributions
Mammoth PostgreSQL
●   What: PostgreSQL with Mammoth Replicator
●   Owner: CommandPrompt Inc.
●   Type: Fork
●   Licensing...
Postgres Plus
●   What: PostgreSQL with open source add-ons
●   Owner: EnterpriseDB
●   Type: Redistribution
●   Licensing...
Postgres Plus Advanced Server
●   What: PostgreSQL with Oracle Compatibility
    and proprietary tools
●   Owner: Enterpri...
Fujitsu Supported PostgreSQL
●   What: PostgreSQL with custom storage engine
●   Owner: Fujitsu Australia
●   Type: Fork
●...
PostgreSQL for Solaris
●   What: PostgreSQL packaged for Solaris with
    tools and support
●   Owner: Sun Microsystems
● ...
Exotic Features
PostGIS
●   What: PostgreSQL plus Geographic support
    ●   #1 open source geo database
●   Type: Add-On
●   Licensing: B...
Fork: Truviso
●   2000: TelegraphCQ Project started at UC
    Berkeley
    ●   “Continuous Query” processing for PostgreSQ...
Truviso
●   What: PostgreSQL plus Streaming Database
    ●   good for high-volume data streams where you don't
        car...
SEPostgres
●   What: PostgreSQL integrated with SELinux
    label-based access control
●   Type: Patch
●   Owner: SEPostgr...
Clustering Forks & Add-Ons
Postgres-R
●   What: PostgreSQL with Group Communication
    support for clustering.
●   Owner: Postgres-R project
●   Typ...
pgCluster (and CyberCluster)
●   What: PostgreSQL with Statement Replication
    and controller support for clustering.
● ...
pgCluster-II
●   What: PostgreSQL with shared memory &
    storage support for clustering ala RAC
●   Owner: pgCluster pro...
PostgresForest
●   What: PostgreSQL with middleware-based
    statement replication clustering
●   Owner: NTT (I think)
● ...
pgPool-II
●   What: statement-replication and partitioning
    middleware for PostgreSQL
●   Owner: pgPool project, SRA
● ...
Continuent
●   What: statement-replication, mangagement and
    partitioning middleware for PostgreSQL
●   Owner: Continue...
GridSQL
●   What: statement-replication, mangagement and
    partitioning middleware for PostgreSQL
●   Owner: EnterpriseD...
Data Warehousing / BI
Netezza
●   What: Some PostgreSQL code (30-50%) plus
    proprietary code and hardware package
●   Type: Fork
●   Owner: N...
Greenplum
●   What: Mostly PostgreSQL with proprietary MPP
    plus BI and VLDB tools
    ●   great for huge data mining
●...
Vertica
●   What: Proprietary code with a few PostgreSQL
    libraries for multi-TB column store database
    ●   great fo...
Paraccel
●   What: Part-Postgres, part-proprietary in-
    memory clustered pseudo-column store.
    ●   made for “online ...
AsterDB
●   What: Patches and proprietary middleware for
    map/reduce queries on many Postgres servers.
●   Owner: Aster...
Everest
●   What: PostgreSQL with proprietary storage,
    MPP and column store
    ●   scales to 10's of petabytes
●   Ow...
HadoopDB
●   What: Middleware for running map/reduce
    queries over many Postgres instances.
    ●   brand-new
●   Owner...
List of Variants
●   Exotic                       ●   Clustering           ●   BI/DW
                                     ...
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/pre...
Elephant Roads: a tour of Postgres forks
Nächste SlideShare
Wird geladen in ...5
×

Elephant Roads: a tour of Postgres forks

3,015

Published on

Josh Berkus

Most users know that PostgreSQL has a 23-year development history. But did you know that Postgres code is used for over a dozen other database systems? Thanks to our liberal licensing, many companies and open source projects over the years have taken the Postgres or PostgreSQL code, changed it, added things to it, and/or merged it into something else. Illustra, Truviso, Aster, Greenplum, and others have seen the value of Postgres not just as a database but as some darned good code they could use. We'll explore the lineage of these forks, and go into the details of some of the more interesting ones.

1 Comment
7 Gefällt mir
Statistiken
Notizen
Keine Downloads
Views
Gesamtviews
3,015
Bei Slideshare
0
Aus Einbettungen
0
Anzahl an Einbettungen
0
Aktionen
Geteilt
0
Downloads
60
Kommentare
1
Gefällt mir
7
Einbettungen 0
No embeds

No notes for slide

Transcript of "Elephant Roads: a tour of Postgres forks"

  1. 1. Elephant Roads 17 Years of Postgres Forks and Variants Josh Berkus October 2009 JDCon West
  2. 2. NULL = ?
  3. 3. E.F. Codd Relational Theory The First Day (1970)
  4. 4. Michael Stonebraker INteractive Graphics REtrieval System
  5. 5. Michael Stonebraker INGRES The Second Day (1974)
  6. 6. Michael Stonebraker POSTGRES The Third Day (1986)
  7. 7. Stonebraker Marches On ... ● Fourth Day: Cohera ● Fifth Day: Streambase ● Sixth Day: Vertica ● Seventh Day: SciDB ● Eighth Day: VoltDB ● …?
  8. 8. 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
  9. 9. 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
  10. 10. 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 ...
  11. 11. 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
  12. 12. 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!
  13. 13. But Aren't Forks Bad? No.
  14. 14. 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
  15. 15. 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
  16. 16. Expired Forks
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. 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)
  23. 23. Core Forks & Redistributions
  24. 24. 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
  25. 25. 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
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. Exotic Features
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. Clustering Forks & Add-Ons
  35. 35. 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
  36. 36. 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
  37. 37. 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
  38. 38. 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
  39. 39. 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)
  40. 40. 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
  41. 41. 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
  42. 42. Data Warehousing / BI
  43. 43. 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
  44. 44. 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”
  45. 45. 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)
  46. 46. 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
  47. 47. 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
  48. 48. 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
  49. 49. 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
  50. 50. 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
  51. 51. So, what are you waiting for? Go make your own fork!
  52. 52. 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.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×