THE MOST COMPLETE
OPEN SOURCE DATABASE PLATFORM
© Copyright EnterpriseDB Corporation, 2018. All rights reserved.
WILL POSTGRES
LIVE FOREVER?
Bruce Momjian
Co-founder of the PostgreSQL Global Development Group
Senior Database Architect at EnterpriseDB
© Copyright EnterpriseDB Corporation, 2018. All rights reserved.2
TODAY’S PRESENTER
Bruce Momjian
Bruce Momjian is co-founder and core
team member of the PostgreSQL
Global Development Group, and has
worked on PostgreSQL since 1996. He
has been employed by EnterpriseDB
since 2006. He has spoken at many
international open-source conferences
and is the author of PostgreSQL:
Introduction and Concepts, published
by Addison-Wesley.
Will Postgres Live Forever?
BRUCE MOMJIAN
This presentation explains the long life of open source software,
and the life cycle differences between proprietary and open
source software. Title concept from Renee Deger
Creative Commons Attribution License http://momjian.us/presentations
Last updated: August, 2018
1 / 55
PostgreSQL the database…
◮ Open Source Object Relational DBMS since 1996
◮ Distributed under the PostgreSQL License
◮ Similar technical heritage as Oracle, SQL Server & DB2
◮ However, a strong adherence to standards (ANSI-SQL 2008)
◮ Highly extensible and adaptable design
◮ Languages, indexing, data types, etc.
◮ E.g. PostGIS, JSONB, SQL/MED
◮ Extensive use throughout the world for applications and
organizations of all types
◮ Bundled into Red Hat Enterprise Linux, Ubuntu, CentOS,
and most cloud providers
2 / 55
PostgreSQL the community…
◮ Independent community led by a Core Team of five
◮ Large, active and vibrant community
◮ www.postgresql.org
◮ Downloads, Mailing lists, Documentation
◮ Sponsors sampler:
◮ Red Hat, VMWare, NTT, Fujitsu, Amazon, and EnterpriseDB
◮ http://www.postgresql.org/community/
3 / 55
EnterpriseDB the company…
◮ Leading worldwide provider of Postgres software and services
◮ More than 4,000 enterprises, governments, and other
organizations worldwide
◮ EDB Postgres Platform with:
◮ PostgreSQL and EDB Postgres Advanced Server including
additional enterprise functionaility
◮ Tool Suites for Management, Integration, and Migration,
including High Availability and Disaster Recovery
◮ Professional Services, 24/7 global support, and Remote DBA
◮ Training and Certification
◮ Citizenship
◮ Contributor of key features: Materialized Views, JSON, &
more
◮ Sixteen community members on staff
4 / 55
EnterpriseDB the company…
5 / 55
EDB Recognized 5 Years In a Row
in Gartner’s Magic Quadrant
6 / 55
Outline
1. Forever
2. Software life cycle
3. Open source adoption
4. Postgres innovation
5. Community structure
6. Conclusion
7 / 55
1. Forever
https://www.flickr.com/photos/gsfc/
8 / 55
Forever Is a Long Time
◮ Age of the Universe: 13.7 billion years
◮ Age of the Earth: 4.5 billion years
◮ Age of civilization: 6,000 years
◮ Civilized era vs. Earth years: 0.00001%
◮ Digital era vs. Earth years: ~0%
9 / 55
Brief Digital History
1804: Jacquard loom
1945: ENIAC
1970: E. F. Codd Relational Theory
1974: System R
1977: Ingres
1986: University-based Postgres
1994: Postgres95
1996: Internet-based Postgres
10 / 55
2. Software Life Cycle
https://www.flickr.com/photos/tarynmarie
11 / 55
Proprietary Software Life Cycle
1. Innovation
2. Market growth
3. Market saturation
4. Maximize profit, minimize costs (development, support)
5. End-of-life
12 / 55
Open Source Software Life Cycle
1. Parity with proprietary software, low cost
2. Market growth
3. Continue innovation or decline
4. Source code is always available to continue
13 / 55
Proprietary Development Flow
Developers Users
Sales
Testing/Retesting
Release
Fix Bugs
Project Meetings
Design Meetings
Work in Isolation
Receive Software
Acceptance Tests
Resolve Problems
Install
Production
Resolve Issues
14 / 55
Open Source Development Flow
Users
Internet
Developers
Production
Discuss Feature
Release
Beta Testing
Fix Bugs
Patch Review
Apply / Testing
Resolve Issues
Propose Feature
Testing
Patch Review
Beta Testing
15 / 55
Rise of Open Source
Time
Open Source
Closed Source
Features
Performance
Reliability
16 / 55
Linux
Linux attained feature parity with:
◮ HP-UX
◮ AIX
◮ Solaris
and then went on to innovate beyond them.
17 / 55
Postgres
Postgres nearing feature parity with:
◮ Oracle
◮ DB2
◮ MS-SQL
◮ Sybase, Informix, Ingres Corp.
and then going on to innovate beyond them.
18 / 55
Many Focuses
Keith Alsheimer, EnterpriseDB
19 / 55
When Does Software Die?
◮ Proprietary software dies when the owner of the source code
can no longer profit from it.
◮ It declines long before death due to profit maximization.
◮ Open source cannot die in the same way.
◮ Open source remains active while it serves a purpose.
◮ It can always be resurrected if useful.
◮ Postgres was given new life in 1996.
20 / 55
Ideas Don’t Die
1. Ideas don’t die, as long as they are shared.
2. Ideas are shared, as long as they are useful.
3. Postgres will live, as long as it is useful.
21 / 55
3. Open Source Adoption
https://www.flickr.com/photos/99438314@N02/
22 / 55
Open Source Survey, 2016
When the first survey launched 10 years ago, hardly anyone
would have predicted that open source use would be ubiquitous
worldwide just a decade later, but for many good reasons that’s
what happened. Its value in reducing development costs, in
freeing internal developers to work on higher-order tasks, and in
accelerating time to market is undeniable. Simply put, open
source is the way applications are developed today.
Lou Shipley
President And CEO
Black Duck Software
https://www.slideshare.net/blackducksoftware/
2016-future-of-open-source-survey-results
23 / 55
Advantages of Open Source
1. Competitive features, innovation
2. Freedom from vendor lock-in
3. Quality of solutions
4. Ability to customize and fix
5. Cost
6. Speed application development
7. Reduce development costs
8. Interoperability
9. Breadth of solutions
https://www.slideshare.net/blackducksoftware/
2016-future-of-open-source-survey-results
24 / 55
Open Source Today
Open source today is unequivocally the engine of innovation;
whether that’s powering technology like operating systems,
cloud, big data or IoT, or powering a new generation of open
source companies delivering compelling solutions to the market.
Paul Santinelli
General Partner
North Bridge
https://www.slideshare.net/blackducksoftware/
2016-future-of-open-source-survey-results
25 / 55
Open Source Usage, 2016
1. Operating Systems
2. Database
3. Development tools
Database didn’t appear in the top three the previous year’s
survey (2015).
https://www.slideshare.net/blackducksoftware/
2016-future-of-open-source-survey-results
26 / 55
4. Postgres Innovation
https://www.flickr.com/photos/tomas_vondra/
27 / 55
Relational Innovation
◮ E. F. Codd introduces relational theory
◮ Row, column, table
◮ Constraints
◮ Normalization, joins
◮ Replaces key/value data storage systems
◮ Pre-Postgres
https://en.wikipedia.org/wiki/Edgar_F._Codd
28 / 55
University Postgres Innovation
◮ Michael Stonebraker creates university Postgres
◮ Allows extendability via system table contents:
◮ Data types
◮ Indexing methods
◮ Server-side languages
https://en.wikipedia.org/wiki/Michael_Stonebraker
29 / 55
Postgres Extendability
starelid
staattnum
staop
pg_statistic
oprleft
oprright
oprresult
oprcom
oprnegate
oprlsortop
oprrsortop
oprcode
oprrest
oprjoin
pg_operator
typrelid
typelem
typinput
typoutput
typbasetype
pg_type
prolang
prorettype
pg_proc
pg_rewrite
ev_class
datlastsysoid
pg_database
tgfoid
tgrelid
pg_trigger
inhrelid
pg_inherits
inhparent
pg_language
pg_namespacepg_depend pg_shadow
pg_aggregate
aggfinalfn
aggtransfn
aggfnoid
aggtranstype
castsource
casttarget
pg_cast
castfunc
pg_description
pg_constraint
contypid
pg_conversion
conproc
amopopr
amopclaid
pg_attribute
indexrelid
attnum
amopclaid
atttypid
indrelid
pg_attrdef
pg_group
adrelid
pg_index
adnum
pg_am
pg_amop
amgettuple
reltoastidxid
aminsert
reltoastrelid amcostestimate
amproc
ambeginscan
pg_amproc
amrescan
relfilenode
amendscan
relam
ammarkpos
reltype amrestrpos
pg_class
ambuild
opcdeftype
ambulkdelete
pg_opclass
attrelid
30 / 55
Postgres Extension Data Type
CREATE EXTENSION isn;
dT
List of data types
Schema | Name | Description
--------+--------+--------------------------------------------------
public | ean13 | International European Article Number (EAN13)
public | isbn | International Standard Book Number (ISBN)
public | isbn13 | International Standard Book Number 13 (ISBN13)
public | ismn | International Standard Music Number (ISMN)
public | ismn13 | International Standard Music Number 13 (ISMN13)
public | issn | International Standard Serial Number (ISSN)
public | issn13 | International Standard Serial Number 13 (ISSN13)
public | upc | Universal Product Code (UPC)
http://momjian.us/main/writings/pgsql/central.pdf
31 / 55
Postgres Server-Side Languages
◮ PL/Java
◮ PL/Perl
◮ PL/pgSQL (like PL/SQL)
◮ PL/PHP
◮ PL/Python
◮ PL/R (like SPSS)
◮ PL/Ruby
◮ PL/Scheme
◮ PL/sh
◮ PL/Tcl
◮ PL/v8 (JavaScript)
◮ SPI (C)
http://momjian.us/main/writings/pgsql/central.pdf
32 / 55
Postgres Index Types
◮ BRIN
◮ BTREE
◮ Hash
◮ GIN (generalized inverted index)
◮ GiST (generalized search tree)
◮ SP-GiST (space-partitioned GiST)
http://momjian.us/main/writings/pgsql/indexing.pdf
33 / 55
Postgres Innovation: Full Text Search
◮ Supports full text search capabilities in a relational database
◮ Whole-word, word prefix, and, or, and not searches
◮ Stemming for 15 languages
◮ Pg_trgm extension allows search of letter combinations and
similarity
◮ Specialized indexing, operators, and functions
◮ Full transaction semantics
http://momjian.us/main/writings/pgsql/non-relational.pdf
34 / 55
Postgres Innovation: Full Text Search
EXPLAIN SELECT line
FROM fortune
WHERE to_tsvector(’english’, line) @@ to_tsquery(’pandas’);
QUERY PLAN
------------------------------------------------------------------…
Bitmap Heap Scan on fortune (cost=12.41..94.25 rows=21 width=36)
Recheck Cond: (to_tsvector(’english’::regconfig, line) @@ to_ts…
-> Bitmap Index Scan on fortune_idx_ts (cost=0.00..12.40 rows…
Index Cond: (to_tsvector(’english’::regconfig, line) @@ t…
35 / 55
Postgres Innovation: NoSQL
◮ Supports NoSQL capabilities in a relational database
◮ Mix structured and unstructured data in the same row and
query; the best of both worlds
◮ Specialized indexing, operators, and functions
◮ Full transaction semantics
http://momjian.us/main/writings/pgsql/yesql.pdf
36 / 55
Postgres Innovation: NoSQL
EXPLAIN SELECT data->>’last_name’
FROM friend2
WHERE data::jsonb @> ’{"first_name" : "Jane"}’
ORDER BY 1; QUERY PLAN
----------------------------------------------------------------…
Sort (cost=24.03..24.04 rows=1 width=139)
Sort Key: ((data ->> ’last_name’::text))
-> Bitmap Heap Scan on friend2 (cost=20.01..24.02 rows=1 …
Recheck Cond: (data @> ’{"first_name": "Jane"}’::jsonb)
-> Bitmap Index Scan on friend2_idx (cost=0.00..20.01 ……
Index Cond: (data @> ’{"first_name": "Jane"}’::js…
37 / 55
Postgres Innovation: Range Types
◮ Combines start and stop times into a single field
◮ Allows sophisticated indexing and comparisons
◮ Allows automatic range overlap prevention
http://momjian.us/main/writings/pgsql/non-relational.pdf
38 / 55
Postgres Innovation: Range Types
EXPLAIN SELECT *
FROM car_rental
WHERE time_span @> ’2007-08-01 00:00:00’::timestamptz;
QUERY PLAN
----------------------------------------------------------------…
Index Scan using car_rental_idx on car_rental (cost=0.15..8.17…
Index Cond: (time_span @> ’2007-08-01 00:00:00-04’::timestamp…
39 / 55
Postgres Innovation: Geometric Types
◮ Handle multi-dimensional data
◮ Points
◮ Lines
◮ Circles
◮ Polygons
◮ Multi-dimensional indexing and operators
◮ Allows efficient nearest neighbor searches
◮ Avoids using a separate geometric data store
http://momjian.us/main/writings/pgsql/non-relational.pdf
40 / 55
Postgres Innovation: Geometric Types
EXPLAIN SELECT *
FROM dart
ORDER BY location <-> ’(50, 50)’::point
LIMIT 2;
QUERY PLAN
-------------------------------------------------------------…
Limit (cost=0.14..0.33 rows=2 width=20)
-> Index Scan using dart_idx on dart (cost=0.14..92.14…
Order By: (location <-> ’(50,50)’::point)
41 / 55
Postgres Innovation: GIS
◮ PostGIS is a full-featured Geographical
Information System (GIS)
◮ Implemented as a extension
◮ Independent development team and community
https://postgis.net/
42 / 55
Postgres Innovation: GIS
SELECT ST_Area(the_geom)/10000 AS hectares
FROM bc_municipality
WHERE name = ’PRINCE GEORGE’;
hectares
------------------
32657.9103824927
43 / 55
Postgres Innovation: Foreign Data Wrappers
◮ 100+ interfaces to foreign data
◮ Read/write
◮ Sophisticated push down of joins, sorts, and aggregates
http://momjian.us/main/writings/pgsql/central.pdf
44 / 55
Postgres Innovation: Foreign Data Wrappers
Postgres
ora_tab
tw_tab
mon_tab
MongoDB
Twitter
Oracle
45 / 55
Postgres Innovation: Data Analytics
◮ Aggregates
◮ Optimizer
◮ Server-side languages, e.g. PL/R
◮ Window functions
◮ Bitmap heap scans
◮ Tablespaces
◮ Data partitioning
◮ Materialized views
◮ Common table expressions (CTE)
◮ BRIN indexes
◮ GROUPING SETS, ROLLUP, CUBE
◮ Parallelism
◮ Sharding (in progress)
http://momjian.us/main/writings/pgsql/central.pdf
46 / 55
Postgres Innovation: Data Analytics
Network
Data WarehousePrimary
/pg_wal/pg_wal
47 / 55
Postgres Innovation: Sharding
◮ Allows multi-host databases
◮ Uses existing functionality
◮ Partitioning
◮ Parallelism
◮ Foreign data wrappers
◮ Logical replication
◮ Needs new functionality
◮ Global transaction manager
◮ Global snapshot manager
http://momjian.us/main/writings/pgsql/sharding.pdf
48 / 55
Postgres Innovation: Sharding
000000000000000000000000000000000000000000000000
000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000
111111111111111111111111111111111111111111111111
111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111
0000000000000000000000000000000000000000000000
00000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111
11111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111
0000000000000000000000000000000000000000000000
00000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000
1111111111111111111111111111111111111111111111
11111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111
SQL Queries
SQL Queries
PG FDW
Foreign Server Foreign Server Foreign Server
49 / 55
5. Community Structure
https://www.flickr.com/photos/tomas_vondra/
50 / 55
Community Structure
◮ BSD license guarantees software will be available forever,
including for proprietary use.
◮ Development and leadership is diversified geographically,
culturally, and is multi-company.
51 / 55
Still Going Strong
◮ 32 years of development
◮ 22 years of annual major releases
◮ ~180 features per major release
◮ Quarterly minor releases
◮ Most-loved relational database
◮ https://insights.stackoverflow.com/survey/2018/#
technology-most-loved-dreaded-and-wanted-databases
52 / 55
PgLife
http://pglife.momjian.us
53 / 55
Additional Resources…
◮ Postgres Downloads:
◮ www.enterprisedb.com/downloads
◮ Product and Services information:
◮ info@enterprisedb.com
54 / 55
6. Conclusion
http://momjian.us/presentations
https://www.flickr.com/photos/pagedooley/
55 / 55
© Copyright EnterpriseDB Corporation, 2018. All rights reserved.3
EDB POSTGRES COMPARED TO
SELF-SUPPORTED PostgreSQL
EDB Postgres™ Platform
adds additional features,
capabilities and support
around the PostgreSQL
database including:
The key differences :
• Increased security
• Enterprise-ready tools
• Oracle® compatibility features
• More deployment options
• Enhanced integration
• Enhanced DBA and Developer
productivity
• PostgreSQL community leadership
• 24x7 “Follow-the-Sun” support
© Copyright EnterpriseDB Corporation, 2018. All rights reserved.4
www.EnterpriseDB.com/DOWNLOADS
© Copyright EnterpriseDB Corporation, 2018. All rights reserved.
EDB Migration Portal combines
First online portal for Oracle to
Postgres
Native Oracle compatibility
• Schemas
• DB Code
• CDC-based
replication
• Application
interfaces
Rich knowledge base from 10+
years of migrations
Augmented by crowd-sourcing
Machine learning of new code
translations
EDB MIGRATION PORTAL:
The Fastest Way Off of Oracle in the Cloud
© Copyright EnterpriseDB Corporation, 2018. All rights reserved.6
© Copyright EnterpriseDB Corporation, 2018. All rights reserved.
QUESTIONS
info@edbpostgres.com
7
© Copyright EnterpriseDB Corporation, 2018. All rights reserved.
THANK
YOU

Will Postgres Live Forever?

  • 1.
    THE MOST COMPLETE OPENSOURCE DATABASE PLATFORM © Copyright EnterpriseDB Corporation, 2018. All rights reserved. WILL POSTGRES LIVE FOREVER? Bruce Momjian Co-founder of the PostgreSQL Global Development Group Senior Database Architect at EnterpriseDB
  • 2.
    © Copyright EnterpriseDBCorporation, 2018. All rights reserved.2 TODAY’S PRESENTER Bruce Momjian Bruce Momjian is co-founder and core team member of the PostgreSQL Global Development Group, and has worked on PostgreSQL since 1996. He has been employed by EnterpriseDB since 2006. He has spoken at many international open-source conferences and is the author of PostgreSQL: Introduction and Concepts, published by Addison-Wesley.
  • 3.
    Will Postgres LiveForever? BRUCE MOMJIAN This presentation explains the long life of open source software, and the life cycle differences between proprietary and open source software. Title concept from Renee Deger Creative Commons Attribution License http://momjian.us/presentations Last updated: August, 2018 1 / 55
  • 4.
    PostgreSQL the database… ◮Open Source Object Relational DBMS since 1996 ◮ Distributed under the PostgreSQL License ◮ Similar technical heritage as Oracle, SQL Server & DB2 ◮ However, a strong adherence to standards (ANSI-SQL 2008) ◮ Highly extensible and adaptable design ◮ Languages, indexing, data types, etc. ◮ E.g. PostGIS, JSONB, SQL/MED ◮ Extensive use throughout the world for applications and organizations of all types ◮ Bundled into Red Hat Enterprise Linux, Ubuntu, CentOS, and most cloud providers 2 / 55
  • 5.
    PostgreSQL the community… ◮Independent community led by a Core Team of five ◮ Large, active and vibrant community ◮ www.postgresql.org ◮ Downloads, Mailing lists, Documentation ◮ Sponsors sampler: ◮ Red Hat, VMWare, NTT, Fujitsu, Amazon, and EnterpriseDB ◮ http://www.postgresql.org/community/ 3 / 55
  • 6.
    EnterpriseDB the company… ◮Leading worldwide provider of Postgres software and services ◮ More than 4,000 enterprises, governments, and other organizations worldwide ◮ EDB Postgres Platform with: ◮ PostgreSQL and EDB Postgres Advanced Server including additional enterprise functionaility ◮ Tool Suites for Management, Integration, and Migration, including High Availability and Disaster Recovery ◮ Professional Services, 24/7 global support, and Remote DBA ◮ Training and Certification ◮ Citizenship ◮ Contributor of key features: Materialized Views, JSON, & more ◮ Sixteen community members on staff 4 / 55
  • 7.
  • 8.
    EDB Recognized 5Years In a Row in Gartner’s Magic Quadrant 6 / 55
  • 9.
    Outline 1. Forever 2. Softwarelife cycle 3. Open source adoption 4. Postgres innovation 5. Community structure 6. Conclusion 7 / 55
  • 10.
  • 11.
    Forever Is aLong Time ◮ Age of the Universe: 13.7 billion years ◮ Age of the Earth: 4.5 billion years ◮ Age of civilization: 6,000 years ◮ Civilized era vs. Earth years: 0.00001% ◮ Digital era vs. Earth years: ~0% 9 / 55
  • 12.
    Brief Digital History 1804:Jacquard loom 1945: ENIAC 1970: E. F. Codd Relational Theory 1974: System R 1977: Ingres 1986: University-based Postgres 1994: Postgres95 1996: Internet-based Postgres 10 / 55
  • 13.
    2. Software LifeCycle https://www.flickr.com/photos/tarynmarie 11 / 55
  • 14.
    Proprietary Software LifeCycle 1. Innovation 2. Market growth 3. Market saturation 4. Maximize profit, minimize costs (development, support) 5. End-of-life 12 / 55
  • 15.
    Open Source SoftwareLife Cycle 1. Parity with proprietary software, low cost 2. Market growth 3. Continue innovation or decline 4. Source code is always available to continue 13 / 55
  • 16.
    Proprietary Development Flow DevelopersUsers Sales Testing/Retesting Release Fix Bugs Project Meetings Design Meetings Work in Isolation Receive Software Acceptance Tests Resolve Problems Install Production Resolve Issues 14 / 55
  • 17.
    Open Source DevelopmentFlow Users Internet Developers Production Discuss Feature Release Beta Testing Fix Bugs Patch Review Apply / Testing Resolve Issues Propose Feature Testing Patch Review Beta Testing 15 / 55
  • 18.
    Rise of OpenSource Time Open Source Closed Source Features Performance Reliability 16 / 55
  • 19.
    Linux Linux attained featureparity with: ◮ HP-UX ◮ AIX ◮ Solaris and then went on to innovate beyond them. 17 / 55
  • 20.
    Postgres Postgres nearing featureparity with: ◮ Oracle ◮ DB2 ◮ MS-SQL ◮ Sybase, Informix, Ingres Corp. and then going on to innovate beyond them. 18 / 55
  • 21.
    Many Focuses Keith Alsheimer,EnterpriseDB 19 / 55
  • 22.
    When Does SoftwareDie? ◮ Proprietary software dies when the owner of the source code can no longer profit from it. ◮ It declines long before death due to profit maximization. ◮ Open source cannot die in the same way. ◮ Open source remains active while it serves a purpose. ◮ It can always be resurrected if useful. ◮ Postgres was given new life in 1996. 20 / 55
  • 23.
    Ideas Don’t Die 1.Ideas don’t die, as long as they are shared. 2. Ideas are shared, as long as they are useful. 3. Postgres will live, as long as it is useful. 21 / 55
  • 24.
    3. Open SourceAdoption https://www.flickr.com/photos/99438314@N02/ 22 / 55
  • 25.
    Open Source Survey,2016 When the first survey launched 10 years ago, hardly anyone would have predicted that open source use would be ubiquitous worldwide just a decade later, but for many good reasons that’s what happened. Its value in reducing development costs, in freeing internal developers to work on higher-order tasks, and in accelerating time to market is undeniable. Simply put, open source is the way applications are developed today. Lou Shipley President And CEO Black Duck Software https://www.slideshare.net/blackducksoftware/ 2016-future-of-open-source-survey-results 23 / 55
  • 26.
    Advantages of OpenSource 1. Competitive features, innovation 2. Freedom from vendor lock-in 3. Quality of solutions 4. Ability to customize and fix 5. Cost 6. Speed application development 7. Reduce development costs 8. Interoperability 9. Breadth of solutions https://www.slideshare.net/blackducksoftware/ 2016-future-of-open-source-survey-results 24 / 55
  • 27.
    Open Source Today Opensource today is unequivocally the engine of innovation; whether that’s powering technology like operating systems, cloud, big data or IoT, or powering a new generation of open source companies delivering compelling solutions to the market. Paul Santinelli General Partner North Bridge https://www.slideshare.net/blackducksoftware/ 2016-future-of-open-source-survey-results 25 / 55
  • 28.
    Open Source Usage,2016 1. Operating Systems 2. Database 3. Development tools Database didn’t appear in the top three the previous year’s survey (2015). https://www.slideshare.net/blackducksoftware/ 2016-future-of-open-source-survey-results 26 / 55
  • 29.
  • 30.
    Relational Innovation ◮ E.F. Codd introduces relational theory ◮ Row, column, table ◮ Constraints ◮ Normalization, joins ◮ Replaces key/value data storage systems ◮ Pre-Postgres https://en.wikipedia.org/wiki/Edgar_F._Codd 28 / 55
  • 31.
    University Postgres Innovation ◮Michael Stonebraker creates university Postgres ◮ Allows extendability via system table contents: ◮ Data types ◮ Indexing methods ◮ Server-side languages https://en.wikipedia.org/wiki/Michael_Stonebraker 29 / 55
  • 32.
    Postgres Extendability starelid staattnum staop pg_statistic oprleft oprright oprresult oprcom oprnegate oprlsortop oprrsortop oprcode oprrest oprjoin pg_operator typrelid typelem typinput typoutput typbasetype pg_type prolang prorettype pg_proc pg_rewrite ev_class datlastsysoid pg_database tgfoid tgrelid pg_trigger inhrelid pg_inherits inhparent pg_language pg_namespacepg_depend pg_shadow pg_aggregate aggfinalfn aggtransfn aggfnoid aggtranstype castsource casttarget pg_cast castfunc pg_description pg_constraint contypid pg_conversion conproc amopopr amopclaid pg_attribute indexrelid attnum amopclaid atttypid indrelid pg_attrdef pg_group adrelid pg_index adnum pg_am pg_amop amgettuple reltoastidxid aminsert reltoastrelidamcostestimate amproc ambeginscan pg_amproc amrescan relfilenode amendscan relam ammarkpos reltype amrestrpos pg_class ambuild opcdeftype ambulkdelete pg_opclass attrelid 30 / 55
  • 33.
    Postgres Extension DataType CREATE EXTENSION isn; dT List of data types Schema | Name | Description --------+--------+-------------------------------------------------- public | ean13 | International European Article Number (EAN13) public | isbn | International Standard Book Number (ISBN) public | isbn13 | International Standard Book Number 13 (ISBN13) public | ismn | International Standard Music Number (ISMN) public | ismn13 | International Standard Music Number 13 (ISMN13) public | issn | International Standard Serial Number (ISSN) public | issn13 | International Standard Serial Number 13 (ISSN13) public | upc | Universal Product Code (UPC) http://momjian.us/main/writings/pgsql/central.pdf 31 / 55
  • 34.
    Postgres Server-Side Languages ◮PL/Java ◮ PL/Perl ◮ PL/pgSQL (like PL/SQL) ◮ PL/PHP ◮ PL/Python ◮ PL/R (like SPSS) ◮ PL/Ruby ◮ PL/Scheme ◮ PL/sh ◮ PL/Tcl ◮ PL/v8 (JavaScript) ◮ SPI (C) http://momjian.us/main/writings/pgsql/central.pdf 32 / 55
  • 35.
    Postgres Index Types ◮BRIN ◮ BTREE ◮ Hash ◮ GIN (generalized inverted index) ◮ GiST (generalized search tree) ◮ SP-GiST (space-partitioned GiST) http://momjian.us/main/writings/pgsql/indexing.pdf 33 / 55
  • 36.
    Postgres Innovation: FullText Search ◮ Supports full text search capabilities in a relational database ◮ Whole-word, word prefix, and, or, and not searches ◮ Stemming for 15 languages ◮ Pg_trgm extension allows search of letter combinations and similarity ◮ Specialized indexing, operators, and functions ◮ Full transaction semantics http://momjian.us/main/writings/pgsql/non-relational.pdf 34 / 55
  • 37.
    Postgres Innovation: FullText Search EXPLAIN SELECT line FROM fortune WHERE to_tsvector(’english’, line) @@ to_tsquery(’pandas’); QUERY PLAN ------------------------------------------------------------------… Bitmap Heap Scan on fortune (cost=12.41..94.25 rows=21 width=36) Recheck Cond: (to_tsvector(’english’::regconfig, line) @@ to_ts… -> Bitmap Index Scan on fortune_idx_ts (cost=0.00..12.40 rows… Index Cond: (to_tsvector(’english’::regconfig, line) @@ t… 35 / 55
  • 38.
    Postgres Innovation: NoSQL ◮Supports NoSQL capabilities in a relational database ◮ Mix structured and unstructured data in the same row and query; the best of both worlds ◮ Specialized indexing, operators, and functions ◮ Full transaction semantics http://momjian.us/main/writings/pgsql/yesql.pdf 36 / 55
  • 39.
    Postgres Innovation: NoSQL EXPLAINSELECT data->>’last_name’ FROM friend2 WHERE data::jsonb @> ’{"first_name" : "Jane"}’ ORDER BY 1; QUERY PLAN ----------------------------------------------------------------… Sort (cost=24.03..24.04 rows=1 width=139) Sort Key: ((data ->> ’last_name’::text)) -> Bitmap Heap Scan on friend2 (cost=20.01..24.02 rows=1 … Recheck Cond: (data @> ’{"first_name": "Jane"}’::jsonb) -> Bitmap Index Scan on friend2_idx (cost=0.00..20.01 …… Index Cond: (data @> ’{"first_name": "Jane"}’::js… 37 / 55
  • 40.
    Postgres Innovation: RangeTypes ◮ Combines start and stop times into a single field ◮ Allows sophisticated indexing and comparisons ◮ Allows automatic range overlap prevention http://momjian.us/main/writings/pgsql/non-relational.pdf 38 / 55
  • 41.
    Postgres Innovation: RangeTypes EXPLAIN SELECT * FROM car_rental WHERE time_span @> ’2007-08-01 00:00:00’::timestamptz; QUERY PLAN ----------------------------------------------------------------… Index Scan using car_rental_idx on car_rental (cost=0.15..8.17… Index Cond: (time_span @> ’2007-08-01 00:00:00-04’::timestamp… 39 / 55
  • 42.
    Postgres Innovation: GeometricTypes ◮ Handle multi-dimensional data ◮ Points ◮ Lines ◮ Circles ◮ Polygons ◮ Multi-dimensional indexing and operators ◮ Allows efficient nearest neighbor searches ◮ Avoids using a separate geometric data store http://momjian.us/main/writings/pgsql/non-relational.pdf 40 / 55
  • 43.
    Postgres Innovation: GeometricTypes EXPLAIN SELECT * FROM dart ORDER BY location <-> ’(50, 50)’::point LIMIT 2; QUERY PLAN -------------------------------------------------------------… Limit (cost=0.14..0.33 rows=2 width=20) -> Index Scan using dart_idx on dart (cost=0.14..92.14… Order By: (location <-> ’(50,50)’::point) 41 / 55
  • 44.
    Postgres Innovation: GIS ◮PostGIS is a full-featured Geographical Information System (GIS) ◮ Implemented as a extension ◮ Independent development team and community https://postgis.net/ 42 / 55
  • 45.
    Postgres Innovation: GIS SELECTST_Area(the_geom)/10000 AS hectares FROM bc_municipality WHERE name = ’PRINCE GEORGE’; hectares ------------------ 32657.9103824927 43 / 55
  • 46.
    Postgres Innovation: ForeignData Wrappers ◮ 100+ interfaces to foreign data ◮ Read/write ◮ Sophisticated push down of joins, sorts, and aggregates http://momjian.us/main/writings/pgsql/central.pdf 44 / 55
  • 47.
    Postgres Innovation: ForeignData Wrappers Postgres ora_tab tw_tab mon_tab MongoDB Twitter Oracle 45 / 55
  • 48.
    Postgres Innovation: DataAnalytics ◮ Aggregates ◮ Optimizer ◮ Server-side languages, e.g. PL/R ◮ Window functions ◮ Bitmap heap scans ◮ Tablespaces ◮ Data partitioning ◮ Materialized views ◮ Common table expressions (CTE) ◮ BRIN indexes ◮ GROUPING SETS, ROLLUP, CUBE ◮ Parallelism ◮ Sharding (in progress) http://momjian.us/main/writings/pgsql/central.pdf 46 / 55
  • 49.
    Postgres Innovation: DataAnalytics Network Data WarehousePrimary /pg_wal/pg_wal 47 / 55
  • 50.
    Postgres Innovation: Sharding ◮Allows multi-host databases ◮ Uses existing functionality ◮ Partitioning ◮ Parallelism ◮ Foreign data wrappers ◮ Logical replication ◮ Needs new functionality ◮ Global transaction manager ◮ Global snapshot manager http://momjian.us/main/writings/pgsql/sharding.pdf 48 / 55
  • 51.
    Postgres Innovation: Sharding 000000000000000000000000000000000000000000000000 000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 111111111111111111111111111111111111111111111111 111111111111111111111111 111111111111111111111111111111111111111111111111111111111111111111111111 0000000000000000000000000000000000000000000000 00000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000 1111111111111111111111111111111111111111111111 11111111111111111111111 111111111111111111111111111111111111111111111111111111111111111111111 0000000000000000000000000000000000000000000000 00000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000 1111111111111111111111111111111111111111111111 11111111111111111111111 111111111111111111111111111111111111111111111111111111111111111111111 SQLQueries SQL Queries PG FDW Foreign Server Foreign Server Foreign Server 49 / 55
  • 52.
  • 53.
    Community Structure ◮ BSDlicense guarantees software will be available forever, including for proprietary use. ◮ Development and leadership is diversified geographically, culturally, and is multi-company. 51 / 55
  • 54.
    Still Going Strong ◮32 years of development ◮ 22 years of annual major releases ◮ ~180 features per major release ◮ Quarterly minor releases ◮ Most-loved relational database ◮ https://insights.stackoverflow.com/survey/2018/# technology-most-loved-dreaded-and-wanted-databases 52 / 55
  • 55.
  • 56.
    Additional Resources… ◮ PostgresDownloads: ◮ www.enterprisedb.com/downloads ◮ Product and Services information: ◮ info@enterprisedb.com 54 / 55
  • 57.
  • 58.
    © Copyright EnterpriseDBCorporation, 2018. All rights reserved.3 EDB POSTGRES COMPARED TO SELF-SUPPORTED PostgreSQL EDB Postgres™ Platform adds additional features, capabilities and support around the PostgreSQL database including: The key differences : • Increased security • Enterprise-ready tools • Oracle® compatibility features • More deployment options • Enhanced integration • Enhanced DBA and Developer productivity • PostgreSQL community leadership • 24x7 “Follow-the-Sun” support
  • 59.
    © Copyright EnterpriseDBCorporation, 2018. All rights reserved.4 www.EnterpriseDB.com/DOWNLOADS
  • 60.
    © Copyright EnterpriseDBCorporation, 2018. All rights reserved. EDB Migration Portal combines First online portal for Oracle to Postgres Native Oracle compatibility • Schemas • DB Code • CDC-based replication • Application interfaces Rich knowledge base from 10+ years of migrations Augmented by crowd-sourcing Machine learning of new code translations EDB MIGRATION PORTAL: The Fastest Way Off of Oracle in the Cloud
  • 61.
    © Copyright EnterpriseDBCorporation, 2018. All rights reserved.6
  • 62.
    © Copyright EnterpriseDBCorporation, 2018. All rights reserved. QUESTIONS info@edbpostgres.com 7
  • 63.
    © Copyright EnterpriseDBCorporation, 2018. All rights reserved. THANK YOU