Elephant Roads

Embed Size (px)

Citation preview

  • 7/31/2019 Elephant Roads

    1/53

  • 7/31/2019 Elephant Roads

    2/53

  • 7/31/2019 Elephant Roads

    3/53

  • 7/31/2019 Elephant Roads

    4/53

    E.F. CoddRelational Theory

    The First Day(1970)

  • 7/31/2019 Elephant Roads

    5/53

    Michael Stonebraker

    INteractive Graphics REtrievalSystem

  • 7/31/2019 Elephant Roads

    6/53

    Michael Stonebraker

    INGRESThe Second Day

    (1974)

  • 7/31/2019 Elephant Roads

    7/53

  • 7/31/2019 Elephant Roads

    8/53

    Stonebraker Marches On ...

    Fourth Day: Cohera

    Fifth Day: Streambase

    Sixth Day: Vertica

    Seventh Day: SciDB

    Eighth Day: VoltDB

    ?

  • 7/31/2019 Elephant Roads

    9/53

    Illustra: The First Fork

    Stonebraker and a team from UC Berkeleyforked POSTGRES in 1992

    added SQL support

    added new object-relational features Started a new company called Mir

    Mir became Montage

    Montage became Illustra

  • 7/31/2019 Elephant Roads

    10/53

    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

  • 7/31/2019 Elephant Roads

    11/53

    PostgreSQL: The Second Fork

    1995: a rag-tag band of POSTGRES users andstudents decided to save the DBMS by taking itoff-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 ...

  • 7/31/2019 Elephant Roads

    12/53

    Postgres Begat Many More Forks

    Because of thelicense

    Because there's a

    history of forks

    Because our code isclean and easy tomodify

    Because Postgres ismodular and easy tobreak up or add to

    Because thecommunity is OK withforks and variants

  • 7/31/2019 Elephant Roads

    13/53

    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!

  • 7/31/2019 Elephant Roads

    14/53

    But Aren't Forks Bad?

    No.

  • 7/31/2019 Elephant Roads

    15/53

    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 ownerscontribute to core PostgreSQL

    money, code, ideas

    Some forks develop code to beintegrated into main Postgres

    best way to try out really challengingideas

  • 7/31/2019 Elephant Roads

    16/53

    4 Types of Postgres Variants

    Forks: incompatible or proprietary majorchanges 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'sfunctionality

    Redistributions: repackaging Postgres under adifferent name and/or license

  • 7/31/2019 Elephant Roads

    17/53

    Expired Forks

  • 7/31/2019 Elephant Roads

    18/53

    Great Bridge PostgreSQL

    What: PostgreSQL plus some advance patchesand 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

  • 7/31/2019 Elephant Roads

    19/53

    Red Hat Database

    What: PostgreSQL redistribution withmanagement 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

  • 7/31/2019 Elephant Roads

    20/53

    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 ofPostgreSQL 8.0

    still technically available

    Contributed: code to PostgreSQL 8.0

  • 7/31/2019 Elephant Roads

    21/53

    PowerGres & PowerGres Plus

    What: Native Windows Port of PostgreSQL bySRA 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

  • 7/31/2019 Elephant Roads

    22/53

    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, mainlyfor events

  • 7/31/2019 Elephant Roads

    23/53

    Bizgres

    What: PostgreSQL plus BI and large databasefeatures.

    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)

  • 7/31/2019 Elephant Roads

    24/53

    Core Forks & Redistributions

  • 7/31/2019 Elephant Roads

    25/53

    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

  • 7/31/2019 Elephant Roads

    26/53

    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

  • 7/31/2019 Elephant Roads

    27/53

    Postgres Plus Advanced Server

    What: PostgreSQL with Oracle Compatibilityand 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

  • 7/31/2019 Elephant Roads

    28/53

    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

  • 7/31/2019 Elephant Roads

    29/53

    PostgreSQL for Solaris

    What: PostgreSQL packaged for Solaris withtools 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

  • 7/31/2019 Elephant Roads

    30/53

    Exotic Features

  • 7/31/2019 Elephant Roads

    31/53

    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

  • 7/31/2019 Elephant Roads

    32/53

    Fork: Truviso

    2000: TelegraphCQ Project started at UCBerkeley

    Continuous Query processing for PostgreSQL

    2006: UCB Profs. launch startup AmalgamatedInsight

    commercialize TelegraphCQ

    re-merged with current PostgreSQL code

    2008: Amalgamated Insight renamed Truviso

    first commercial releases

  • 7/31/2019 Elephant Roads

    33/53

    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

  • 7/31/2019 Elephant Roads

    34/53

    SEPostgres

    What: PostgreSQL integrated with SELinuxlabel-based access control

    Type: Patch

    Owner: SEPostgres project / NEC Licensing: BSD

    Compatibility: High, 8.4

    Status: production, working on merge with core

    Contributes: code

  • 7/31/2019 Elephant Roads

    35/53

    Clustering Forks & Add-Ons

  • 7/31/2019 Elephant Roads

    36/53

    Postgres-R

    What: PostgreSQL with Group Communicationsupport for clustering.

    Owner: Postgres-R project

    Type: Patch Licensing: open source (BSD)

    Compatibility: High, merges

    Status: alpha, current development

    Contributes: code

  • 7/31/2019 Elephant Roads

    37/53

    pgCluster (and CyberCluster)

    What: PostgreSQL with Statement Replicationand 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

  • 7/31/2019 Elephant Roads

    38/53

  • 7/31/2019 Elephant Roads

    39/53

    PostgresForest

    What: PostgreSQL with middleware-basedstatement replication clustering

    Owner: NTT (I think)

    Type:Add-On Licensing: open source

    Compatibility: Not sure

    Status: beta, development halted

    Contributes: code

    P l II

  • 7/31/2019 Elephant Roads

    40/53

    pgPool-II

    What: statement-replication and partitioningmiddleware for PostgreSQL

    Owner: pgPool project, SRA

    Type:Add-On Licensing: open source

    Compatibility: High, 8.4

    Status: beta, active development

    Contributes: code, money (SRA)

    C ti t

  • 7/31/2019 Elephant Roads

    41/53

    Continuent

    What: statement-replication, mangagement andpartitioning 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

    G idSQL

  • 7/31/2019 Elephant Roads

    42/53

    GridSQL

    What: statement-replication, mangagement andpartitioning 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

    D t W h i / BI

  • 7/31/2019 Elephant Roads

    43/53

    Data Warehousing / BI

    N t

  • 7/31/2019 Elephant Roads

    44/53

    Netezza

    What: Some PostgreSQL code (30-50%) plusproprietary 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

    G l

  • 7/31/2019 Elephant Roads

    45/53

    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

  • 7/31/2019 Elephant Roads

    46/53

    Vertica

    What: Proprietary code with a few PostgreSQLlibraries 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

  • 7/31/2019 Elephant Roads

    47/53

    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

  • 7/31/2019 Elephant Roads

    48/53

    AsterDB

    What: Patches and proprietary middleware formap/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

  • 7/31/2019 Elephant Roads

    49/53

    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

  • 7/31/2019 Elephant Roads

    50/53

    HadoopDB

    What: Middleware for running map/reducequeries 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

  • 7/31/2019 Elephant Roads

    51/53

    List of Variants

    Exotic Truviso

    PostGIS

    SEPostgres

    Core Variants Mammoth

    Postgres Plus

    P.P. Advanced Server

    Fujistu Supported PG

    PostgreSQL for Solaris

    BI/DW Netezza

    Greenplum

    Vertica

    Paraccel

    AsterDB

    HadoopDB

    Everest

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

    So what are you waiting for?

  • 7/31/2019 Elephant Roads

    52/53

    So, what are you waiting for?

    Go make your own fork!

    Contact

  • 7/31/2019 Elephant Roads

    53/53

    Contact

    Josh Berkus: [email protected] 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 forpurposes of satire or reference to trademarked products.