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.
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!
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)
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
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.