Elephant Roads: a tour of Postgres forks
-
Upload
command-prompt-inc -
Category
Documents
-
view
2.939 -
download
2
description
Transcript of Elephant Roads: a tour of Postgres forks
![Page 1: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/1.jpg)
Elephant Roads
17 Years of Postgres Forks and Variants
Josh BerkusOctober 2009JDCon West
![Page 2: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/2.jpg)
NULL = ?
![Page 3: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/3.jpg)
![Page 4: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/4.jpg)
E.F. CoddRelational Theory
The First Day(1970)
![Page 5: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/5.jpg)
Michael Stonebraker
INteractive Graphics REtrieval System
![Page 6: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/6.jpg)
Michael Stonebraker
INGRESThe Second Day
(1974)
![Page 7: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/7.jpg)
Michael Stonebraker
POSTGRESThe Third Day
(1986)
![Page 8: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/8.jpg)
Stonebraker Marches On ...
● Fourth Day: Cohera● Fifth Day: Streambase● Sixth Day: Vertica● Seventh Day: SciDB● Eighth Day: VoltDB● … ?
![Page 9: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/9.jpg)
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
![Page 10: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/10.jpg)
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
![Page 11: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/11.jpg)
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 ...
![Page 12: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/12.jpg)
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
![Page 13: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/13.jpg)
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!
![Page 14: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/14.jpg)
But Aren't Forks Bad?
No.
![Page 15: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/15.jpg)
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
![Page 16: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/16.jpg)
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
![Page 17: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/17.jpg)
Expired Forks
![Page 18: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/18.jpg)
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
![Page 19: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/19.jpg)
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
![Page 20: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/20.jpg)
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
![Page 21: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/21.jpg)
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
![Page 22: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/22.jpg)
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
![Page 23: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/23.jpg)
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)
![Page 24: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/24.jpg)
Core Forks & Redistributions
![Page 25: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/25.jpg)
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
![Page 26: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/26.jpg)
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
![Page 27: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/27.jpg)
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
![Page 28: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/28.jpg)
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
![Page 29: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/29.jpg)
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
![Page 30: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/30.jpg)
Exotic Features
![Page 31: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/31.jpg)
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
![Page 32: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/32.jpg)
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
![Page 33: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/33.jpg)
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
![Page 34: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/34.jpg)
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
![Page 35: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/35.jpg)
Clustering Forks & Add-Ons
![Page 36: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/36.jpg)
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
![Page 37: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/37.jpg)
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
![Page 38: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/38.jpg)
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
![Page 39: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/39.jpg)
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
![Page 40: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/40.jpg)
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)
![Page 41: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/41.jpg)
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
![Page 42: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/42.jpg)
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
![Page 43: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/43.jpg)
Data Warehousing / BI
![Page 44: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/44.jpg)
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
![Page 45: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/45.jpg)
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”
![Page 46: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/46.jpg)
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)
![Page 47: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/47.jpg)
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
![Page 48: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/48.jpg)
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
![Page 49: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/49.jpg)
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
![Page 50: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/50.jpg)
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
![Page 51: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/51.jpg)
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
![Page 52: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/52.jpg)
So, what are you waiting for?
Go make your own fork!
![Page 53: Elephant Roads: a tour of Postgres forks](https://reader033.fdocuments.in/reader033/viewer/2022052505/554d8965b4c90567188b4fdf/html5/thumbnails/53.jpg)
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 for purposes of satire or reference to trademarked products.