SlideShare a Scribd company logo
Will Postgres Live Forever?
Bruce Momjian
Senior Database Architect
EnterpriseDB
Creative Commons Attribution License http://momjian.us/presentations
2/44
Outline
1. Forever
2. Software life cycle
3. Open source adoption
4. Postgres innovation
5. Community structure
6. Conclusion
3/44
1. Forever
https://www.flickr.com/photos/gsfc/
4/44
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%
5/44
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
6/44
2. Software Life Cycle
https://www.flickr.com/photos/tarynmarie/
7/44
Proprietary Software Life Cycle
1.Innovation
2.Market growth
3.Market saturation
4.Maximize profit, minimize costs (development,
support)
5.End-of-life
8/44
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
9/44
Linux
Linux attained feature parity with:
● HP-UX
● AIX
● Solaris
and then went on to innovate beyond them.
10/44
Postgres
Postgres nearing feature parity with:
● Oracle
● DB2
● MS-SQL
and then going on to innovate beyond them.
11/44
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
12/44
Ideas Don’t Die
Ideas don’t die, as long as they are shared.
13/44
3. Open Source Adoption
https://www.flickr.com/photos/99438314@N02/
14/44
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
15/44
Advantages of Open Source
● Competitive features, innovation
● Freedom from vendor lock-in
● Quality of solutions
● Ability to customize and fix
● Cost
● Speed application development
● Reduce development costs
● Interoperability
● Breadth of solutions
https://www.slideshare.net/blackducksoftware/2016-future-of-open-source-survey-results
16/44
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
17/44
Open Source Usage, 2016
● Operating Systems
● Database
● 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
18/44
4. Postgres Innovation
https://www.flickr.com/photos/tomas_vondra/
19/44
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
20/44
University Postgres Innovation
● Stonebraker creates university Postgres
● Allows extendability via system table contents:
– Data types
– Indexing methods
– Server-side languages
https://en.wikipedia.org/wiki/Michael_Stonebraker
21/44
Postgres Extendability
22/44
Postgres Extension Data Type
CREATE EXTENSION isn;
dT
List of data types
Schema | Name | Description
--------+--------+--------------------------------------------------
public | ean13 | International European Article Number (EAN 13)
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
23/44
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
● SPI (C )
http://momjian.us/main/writings/pgsql/central.pdf
24/44
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
25/44
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
● Pgtrgm 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
26/44
Postgres Innovation:
Full Text Search
SELECT line
FROM fortune
WHERE to_tsvector(’english’, line) @@ to_tsquery(’pandas’);
line
----------------------------------------------------------------------
A giant panda bear is really a member of the raccoon family.
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..
27/44
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
28/44
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...
29/44
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
30/44
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...
Index Cond: (time_span @> ’2007-08-01 00:00:00-04’::...
31/44
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
32/44
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)
33/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/
34/44
Postgres Innovation:
GIS
SELECT ST_Area(the_geom)/10000 AS hectares
FROM bc_municipality
WHERE name = 'PRINCE GEORGE';
hectares
------------------
32657.9103824927
35/44
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
36/44
Postgres Innovation:
Foreign Data Wrappers
37/44
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
38/44
Postgres Innovation:
Data Analytics
39/44
Postgres Innovation:
Sharding
● Allows multi-host databases
● Uses
– Partitioning
– Parallelism
– Foreign data wrappers
– Logical replication
– Global transaction manager
– Global snapshot manager
http://momjian.us/main/writings/pgsql/sharding.pdf
40/44
Postgres Innovation:
Sharding
41/44
5. Community Structure
https://www.flickr.com/photos/tomas_vondra/
42/44
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
43/44
Still Going Strong
● 22 years of yearly 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
44/44
6. Conclusion
https://www.flickr.com/photos/pagedooley/
Ad

Recommended

Postgres Vision 2018: Your Migration Path - BinckBank Case Study
Postgres Vision 2018: Your Migration Path - BinckBank Case Study
EDB
 
Will Postgres Live Forever?
Will Postgres Live Forever?
EDB
 
#SlimScalding - Less Memory is More Capacity
#SlimScalding - Less Memory is More Capacity
Gera Shegalov
 
YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions
Yugabyte
 
Distributed Database Architecture for GDPR
Distributed Database Architecture for GDPR
Yugabyte
 
Big data at United Airlines
Big data at United Airlines
DataWorks Summit
 
YugaByte DB on Kubernetes - An Introduction
YugaByte DB on Kubernetes - An Introduction
Yugabyte
 
Building Audi’s enterprise big data platform
Building Audi’s enterprise big data platform
DataWorks Summit
 
Bridging the gap: achieving fast data synchronization from SAP HANA by levera...
Bridging the gap: achieving fast data synchronization from SAP HANA by levera...
DataWorks Summit
 
Postgres Takes Charge Around the World
Postgres Takes Charge Around the World
EDB
 
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB
 
How YugaByte DB Implements Distributed PostgreSQL
How YugaByte DB Implements Distributed PostgreSQL
Yugabyte
 
Remote DBA Service: Powering your DBA needs
Remote DBA Service: Powering your DBA needs
EDB
 
Airline reservations and routing: a graph use case
Airline reservations and routing: a graph use case
DataWorks Summit
 
Discover PostGIS: Add Spatial functions to PostgreSQL
Discover PostGIS: Add Spatial functions to PostgreSQL
EDB
 
Pivotal Greenplum: Postgres-Based. Multi-Cloud. Built for Analytics & AI - Gr...
Pivotal Greenplum: Postgres-Based. Multi-Cloud. Built for Analytics & AI - Gr...
VMware Tanzu
 
New Approaches to Integrating Oracle and Postgres Database Strategies
New Approaches to Integrating Oracle and Postgres Database Strategies
EDB
 
Remote DBA Service: Powering your DBA needs
Remote DBA Service: Powering your DBA needs
EDB
 
Operationalizing AI at scale using MADlib Flow - Greenplum Summit 2019
Operationalizing AI at scale using MADlib Flow - Greenplum Summit 2019
VMware Tanzu
 
The Future of Data Pipelines
The Future of Data Pipelines
All Things Open
 
Oracle GoldenGate Roadmap Oracle OpenWorld 2020
Oracle GoldenGate Roadmap Oracle OpenWorld 2020
Thomas Vengal
 
YugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
YugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
VMware Tanzu
 
Distributed SQL Databases Deconstructed
Distributed SQL Databases Deconstructed
Yugabyte
 
Pivotal Real Time Data Stream Analytics
Pivotal Real Time Data Stream Analytics
kgshukla
 
Containers and Big Data
Containers and Big Data
DataWorks Summit
 
Evaluation of TPC-H on Spark and Spark SQL in ALOJA
Evaluation of TPC-H on Spark and Spark SQL in ALOJA
DataWorks Summit
 
Scale Transactional Apps Across Multiple Regions with Low Latency
Scale Transactional Apps Across Multiple Regions with Low Latency
Yugabyte
 
High Performance and Scalable Geospatial Analytics on Cloud with Open Source
High Performance and Scalable Geospatial Analytics on Cloud with Open Source
DataWorks Summit
 
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam
 
Introduction to PostgreSQL
Introduction to PostgreSQL
Jim Mlodgenski
 

More Related Content

What's hot (20)

Bridging the gap: achieving fast data synchronization from SAP HANA by levera...
Bridging the gap: achieving fast data synchronization from SAP HANA by levera...
DataWorks Summit
 
Postgres Takes Charge Around the World
Postgres Takes Charge Around the World
EDB
 
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB
 
How YugaByte DB Implements Distributed PostgreSQL
How YugaByte DB Implements Distributed PostgreSQL
Yugabyte
 
Remote DBA Service: Powering your DBA needs
Remote DBA Service: Powering your DBA needs
EDB
 
Airline reservations and routing: a graph use case
Airline reservations and routing: a graph use case
DataWorks Summit
 
Discover PostGIS: Add Spatial functions to PostgreSQL
Discover PostGIS: Add Spatial functions to PostgreSQL
EDB
 
Pivotal Greenplum: Postgres-Based. Multi-Cloud. Built for Analytics & AI - Gr...
Pivotal Greenplum: Postgres-Based. Multi-Cloud. Built for Analytics & AI - Gr...
VMware Tanzu
 
New Approaches to Integrating Oracle and Postgres Database Strategies
New Approaches to Integrating Oracle and Postgres Database Strategies
EDB
 
Remote DBA Service: Powering your DBA needs
Remote DBA Service: Powering your DBA needs
EDB
 
Operationalizing AI at scale using MADlib Flow - Greenplum Summit 2019
Operationalizing AI at scale using MADlib Flow - Greenplum Summit 2019
VMware Tanzu
 
The Future of Data Pipelines
The Future of Data Pipelines
All Things Open
 
Oracle GoldenGate Roadmap Oracle OpenWorld 2020
Oracle GoldenGate Roadmap Oracle OpenWorld 2020
Thomas Vengal
 
YugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
YugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
VMware Tanzu
 
Distributed SQL Databases Deconstructed
Distributed SQL Databases Deconstructed
Yugabyte
 
Pivotal Real Time Data Stream Analytics
Pivotal Real Time Data Stream Analytics
kgshukla
 
Containers and Big Data
Containers and Big Data
DataWorks Summit
 
Evaluation of TPC-H on Spark and Spark SQL in ALOJA
Evaluation of TPC-H on Spark and Spark SQL in ALOJA
DataWorks Summit
 
Scale Transactional Apps Across Multiple Regions with Low Latency
Scale Transactional Apps Across Multiple Regions with Low Latency
Yugabyte
 
High Performance and Scalable Geospatial Analytics on Cloud with Open Source
High Performance and Scalable Geospatial Analytics on Cloud with Open Source
DataWorks Summit
 
Bridging the gap: achieving fast data synchronization from SAP HANA by levera...
Bridging the gap: achieving fast data synchronization from SAP HANA by levera...
DataWorks Summit
 
Postgres Takes Charge Around the World
Postgres Takes Charge Around the World
EDB
 
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB
 
How YugaByte DB Implements Distributed PostgreSQL
How YugaByte DB Implements Distributed PostgreSQL
Yugabyte
 
Remote DBA Service: Powering your DBA needs
Remote DBA Service: Powering your DBA needs
EDB
 
Airline reservations and routing: a graph use case
Airline reservations and routing: a graph use case
DataWorks Summit
 
Discover PostGIS: Add Spatial functions to PostgreSQL
Discover PostGIS: Add Spatial functions to PostgreSQL
EDB
 
Pivotal Greenplum: Postgres-Based. Multi-Cloud. Built for Analytics & AI - Gr...
Pivotal Greenplum: Postgres-Based. Multi-Cloud. Built for Analytics & AI - Gr...
VMware Tanzu
 
New Approaches to Integrating Oracle and Postgres Database Strategies
New Approaches to Integrating Oracle and Postgres Database Strategies
EDB
 
Remote DBA Service: Powering your DBA needs
Remote DBA Service: Powering your DBA needs
EDB
 
Operationalizing AI at scale using MADlib Flow - Greenplum Summit 2019
Operationalizing AI at scale using MADlib Flow - Greenplum Summit 2019
VMware Tanzu
 
The Future of Data Pipelines
The Future of Data Pipelines
All Things Open
 
Oracle GoldenGate Roadmap Oracle OpenWorld 2020
Oracle GoldenGate Roadmap Oracle OpenWorld 2020
Thomas Vengal
 
YugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
YugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
VMware Tanzu
 
Distributed SQL Databases Deconstructed
Distributed SQL Databases Deconstructed
Yugabyte
 
Pivotal Real Time Data Stream Analytics
Pivotal Real Time Data Stream Analytics
kgshukla
 
Evaluation of TPC-H on Spark and Spark SQL in ALOJA
Evaluation of TPC-H on Spark and Spark SQL in ALOJA
DataWorks Summit
 
Scale Transactional Apps Across Multiple Regions with Low Latency
Scale Transactional Apps Across Multiple Regions with Low Latency
Yugabyte
 
High Performance and Scalable Geospatial Analytics on Cloud with Open Source
High Performance and Scalable Geospatial Analytics on Cloud with Open Source
DataWorks Summit
 

Similar to Postgres Vision 2018: Will Postgres Live Forever? (20)

PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam
 
Introduction to PostgreSQL
Introduction to PostgreSQL
Jim Mlodgenski
 
An evening with Postgresql
An evening with Postgresql
Joshua Drake
 
PostgreSQL, Extensible to the Nth Degree: Functions, Languages, Types, Rules,...
PostgreSQL, Extensible to the Nth Degree: Functions, Languages, Types, Rules,...
Command Prompt., Inc
 
Postgres Open Keynote: The Next 25 Years
Postgres Open Keynote: The Next 25 Years
PostgreSQL Experts, Inc.
 
PostgreSQL as an Alternative to MSSQL
PostgreSQL as an Alternative to MSSQL
Alexei Krasner
 
Letters from the open source trenches - Postgres community
Letters from the open source trenches - Postgres community
Selena Deckelmann
 
Postgres в основе вашего дата-центра, Bruce Momjian (EnterpriseDB)
Postgres в основе вашего дата-центра, Bruce Momjian (EnterpriseDB)
Ontico
 
Vectors are the new JSON in PostgreSQL (SCaLE 21x)
Vectors are the new JSON in PostgreSQL (SCaLE 21x)
Jonathan Katz
 
Beyond Postgres: Interesting Projects, Tools and forks
Beyond Postgres: Interesting Projects, Tools and forks
Sameer Kumar
 
PostgreSQL - It's kind've a nifty database
PostgreSQL - It's kind've a nifty database
Barry Jones
 
Postgres for the Future
Postgres for the Future
EDB
 
PostgreSQL - Object Relational Database
PostgreSQL - Object Relational Database
Mubashar Iqbal
 
Making Postgres Central in Your Data Center
Making Postgres Central in Your Data Center
EDB
 
PostgreSQL - Case Study
PostgreSQL - Case Study
S.Shayan Daneshvar
 
Типы данных JSONb, соответствующие индексы и модуль jsquery – Олег Бартунов, ...
Типы данных JSONb, соответствующие индексы и модуль jsquery – Олег Бартунов, ...
Yandex
 
PostgreSQL Moscow Meetup - September 2014 - Oleg Bartunov and Alexander Korotkov
PostgreSQL Moscow Meetup - September 2014 - Oleg Bartunov and Alexander Korotkov
Nikolay Samokhvalov
 
PostgreSQL
PostgreSQL
Reuven Lerner
 
Postgres database Ibrahem Batta
Postgres database Ibrahem Batta
Ibrahem Batta
 
FOSSASIA 2015 - 10 Features your developers are missing when stuck with Propr...
FOSSASIA 2015 - 10 Features your developers are missing when stuck with Propr...
Ashnikbiz
 
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam 2018 - Bruce Momjian - Will postgres live forever
PGDay.Amsterdam
 
Introduction to PostgreSQL
Introduction to PostgreSQL
Jim Mlodgenski
 
An evening with Postgresql
An evening with Postgresql
Joshua Drake
 
PostgreSQL, Extensible to the Nth Degree: Functions, Languages, Types, Rules,...
PostgreSQL, Extensible to the Nth Degree: Functions, Languages, Types, Rules,...
Command Prompt., Inc
 
PostgreSQL as an Alternative to MSSQL
PostgreSQL as an Alternative to MSSQL
Alexei Krasner
 
Letters from the open source trenches - Postgres community
Letters from the open source trenches - Postgres community
Selena Deckelmann
 
Postgres в основе вашего дата-центра, Bruce Momjian (EnterpriseDB)
Postgres в основе вашего дата-центра, Bruce Momjian (EnterpriseDB)
Ontico
 
Vectors are the new JSON in PostgreSQL (SCaLE 21x)
Vectors are the new JSON in PostgreSQL (SCaLE 21x)
Jonathan Katz
 
Beyond Postgres: Interesting Projects, Tools and forks
Beyond Postgres: Interesting Projects, Tools and forks
Sameer Kumar
 
PostgreSQL - It's kind've a nifty database
PostgreSQL - It's kind've a nifty database
Barry Jones
 
Postgres for the Future
Postgres for the Future
EDB
 
PostgreSQL - Object Relational Database
PostgreSQL - Object Relational Database
Mubashar Iqbal
 
Making Postgres Central in Your Data Center
Making Postgres Central in Your Data Center
EDB
 
Типы данных JSONb, соответствующие индексы и модуль jsquery – Олег Бартунов, ...
Типы данных JSONb, соответствующие индексы и модуль jsquery – Олег Бартунов, ...
Yandex
 
PostgreSQL Moscow Meetup - September 2014 - Oleg Bartunov and Alexander Korotkov
PostgreSQL Moscow Meetup - September 2014 - Oleg Bartunov and Alexander Korotkov
Nikolay Samokhvalov
 
Postgres database Ibrahem Batta
Postgres database Ibrahem Batta
Ibrahem Batta
 
FOSSASIA 2015 - 10 Features your developers are missing when stuck with Propr...
FOSSASIA 2015 - 10 Features your developers are missing when stuck with Propr...
Ashnikbiz
 
Ad

More from EDB (20)

Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
EDB
 
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
EDB
 
Migre sus bases de datos Oracle a la nube
Migre sus bases de datos Oracle a la nube
EDB
 
EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021
EDB
 
Benchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQL
EDB
 
Las Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQL
EDB
 
NoSQL and Spatial Database Capabilities using PostgreSQL
NoSQL and Spatial Database Capabilities using PostgreSQL
EDB
 
Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?
EDB
 
Data Analysis with TensorFlow in PostgreSQL
Data Analysis with TensorFlow in PostgreSQL
EDB
 
Practical Partitioning in Production with Postgres
Practical Partitioning in Production with Postgres
EDB
 
A Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAIN
EDB
 
IOT with PostgreSQL
IOT with PostgreSQL
EDB
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQL
EDB
 
Psql is awesome!
Psql is awesome!
EDB
 
EDB 13 - New Enhancements for Security and Usability - APJ
EDB 13 - New Enhancements for Security and Usability - APJ
EDB
 
Comment sauvegarder correctement vos données
Comment sauvegarder correctement vos données
EDB
 
Cloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - Italiano
EDB
 
New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13
EDB
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQL
EDB
 
Cloud Native PostgreSQL - APJ
Cloud Native PostgreSQL - APJ
EDB
 
Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
EDB
 
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
EDB
 
Migre sus bases de datos Oracle a la nube
Migre sus bases de datos Oracle a la nube
EDB
 
EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021
EDB
 
Benchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQL
EDB
 
Las Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQL
EDB
 
NoSQL and Spatial Database Capabilities using PostgreSQL
NoSQL and Spatial Database Capabilities using PostgreSQL
EDB
 
Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?
EDB
 
Data Analysis with TensorFlow in PostgreSQL
Data Analysis with TensorFlow in PostgreSQL
EDB
 
Practical Partitioning in Production with Postgres
Practical Partitioning in Production with Postgres
EDB
 
A Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAIN
EDB
 
IOT with PostgreSQL
IOT with PostgreSQL
EDB
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQL
EDB
 
Psql is awesome!
Psql is awesome!
EDB
 
EDB 13 - New Enhancements for Security and Usability - APJ
EDB 13 - New Enhancements for Security and Usability - APJ
EDB
 
Comment sauvegarder correctement vos données
Comment sauvegarder correctement vos données
EDB
 
Cloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - Italiano
EDB
 
New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13
EDB
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQL
EDB
 
Cloud Native PostgreSQL - APJ
Cloud Native PostgreSQL - APJ
EDB
 
Ad

Recently uploaded (20)

The Future of AI Agent Development Trends to Watch.pptx
The Future of AI Agent Development Trends to Watch.pptx
Lisa ward
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Alliance
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Impelsys Inc.
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Safe Software
 
The Future of AI Agent Development Trends to Watch.pptx
The Future of AI Agent Development Trends to Watch.pptx
Lisa ward
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Alliance
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Impelsys Inc.
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Safe Software
 

Postgres Vision 2018: Will Postgres Live Forever?

  • 1. Will Postgres Live Forever? Bruce Momjian Senior Database Architect EnterpriseDB Creative Commons Attribution License http://momjian.us/presentations
  • 2. 2/44 Outline 1. Forever 2. Software life cycle 3. Open source adoption 4. Postgres innovation 5. Community structure 6. Conclusion
  • 4. 4/44 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%
  • 5. 5/44 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
  • 6. 6/44 2. Software Life Cycle https://www.flickr.com/photos/tarynmarie/
  • 7. 7/44 Proprietary Software Life Cycle 1.Innovation 2.Market growth 3.Market saturation 4.Maximize profit, minimize costs (development, support) 5.End-of-life
  • 8. 8/44 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
  • 9. 9/44 Linux Linux attained feature parity with: ● HP-UX ● AIX ● Solaris and then went on to innovate beyond them.
  • 10. 10/44 Postgres Postgres nearing feature parity with: ● Oracle ● DB2 ● MS-SQL and then going on to innovate beyond them.
  • 11. 11/44 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
  • 12. 12/44 Ideas Don’t Die Ideas don’t die, as long as they are shared.
  • 13. 13/44 3. Open Source Adoption https://www.flickr.com/photos/99438314@N02/
  • 14. 14/44 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
  • 15. 15/44 Advantages of Open Source ● Competitive features, innovation ● Freedom from vendor lock-in ● Quality of solutions ● Ability to customize and fix ● Cost ● Speed application development ● Reduce development costs ● Interoperability ● Breadth of solutions https://www.slideshare.net/blackducksoftware/2016-future-of-open-source-survey-results
  • 16. 16/44 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
  • 17. 17/44 Open Source Usage, 2016 ● Operating Systems ● Database ● 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
  • 19. 19/44 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
  • 20. 20/44 University Postgres Innovation ● Stonebraker creates university Postgres ● Allows extendability via system table contents: – Data types – Indexing methods – Server-side languages https://en.wikipedia.org/wiki/Michael_Stonebraker
  • 22. 22/44 Postgres Extension Data Type CREATE EXTENSION isn; dT List of data types Schema | Name | Description --------+--------+-------------------------------------------------- public | ean13 | International European Article Number (EAN 13) 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
  • 23. 23/44 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 ● SPI (C ) http://momjian.us/main/writings/pgsql/central.pdf
  • 24. 24/44 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
  • 25. 25/44 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 ● Pgtrgm 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
  • 26. 26/44 Postgres Innovation: Full Text Search SELECT line FROM fortune WHERE to_tsvector(’english’, line) @@ to_tsquery(’pandas’); line ---------------------------------------------------------------------- A giant panda bear is really a member of the raccoon family. 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..
  • 27. 27/44 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
  • 28. 28/44 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...
  • 29. 29/44 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
  • 30. 30/44 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... Index Cond: (time_span @> ’2007-08-01 00:00:00-04’::...
  • 31. 31/44 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
  • 32. 32/44 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)
  • 33. 33/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/
  • 34. 34/44 Postgres Innovation: GIS SELECT ST_Area(the_geom)/10000 AS hectares FROM bc_municipality WHERE name = 'PRINCE GEORGE'; hectares ------------------ 32657.9103824927
  • 35. 35/44 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
  • 37. 37/44 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
  • 39. 39/44 Postgres Innovation: Sharding ● Allows multi-host databases ● Uses – Partitioning – Parallelism – Foreign data wrappers – Logical replication – Global transaction manager – Global snapshot manager http://momjian.us/main/writings/pgsql/sharding.pdf
  • 42. 42/44 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
  • 43. 43/44 Still Going Strong ● 22 years of yearly 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