SlideShare une entreprise Scribd logo
1  sur  48
Télécharger pour lire hors ligne
© 2013 EDB All rights reserved. 1
Exciting Features In PostgreSQL 9.5
•
Amit Kapila | 2015.04.11
2
●
June 10, 2014 – branch 9.4
●
June 2014 – CF1 - Completed
●
August 2014 – CF2 - Completed
●
October 2014 – CF3 - Completed
●
December 2014 – CF4 - Completed
●
February 2015 – CF5 – In Progress
Development Status
3
●
Developer and SQL Features
●
DBA and Administration
●
Replication
●
Performance
New Features
4
Multi-column subselect
Update
● Update more than one column with subselect
● SQL standard syntax
UPDATE tab SET (col1, col2) =
(SELECT foo, bar FROM tab2)
WHERE ...
5
SKIP LOCKED
● Like SELECT NOWAIT
● Except skip rows instead of error
postgres=# SELECT * FROM a FOR UPDATE NOWAIT;
ERROR: could not obtain lock on row in relation "a"
postgres=# SELECT * FROM a FOR UPDATE SKIP
LOCKED;
a | b | c
----+----+----
2 | 2 | 2
3 | 3 | 3
6
SKIP LOCKED
● Generally used for Advanced Queuing in databases. To
Dequeue the data from a queue
7
Row Level Security
● Allows controlling at row level which
rows can be retrieved by SELECT or
manipulated using INSERT | UPDATE |
DELETE
● Need to define policies for tables
using Policy commands (CREATE | ALTER |
DROP Policy)
● Row Security needs to be enabled and
disabled by the owner on a per-table
basis using
ALTER TABLE .. ENABLE/DISABLE ROW
SECURITY.
8
Row Level Security
● ROW SECURITY is disabled on tables by
default and must be enabled for
policies on the table to be used.
● If nopolicies exist on a table with ROW
SECURITY enabled, a default-deny policy
is used and no records will be visible.
● A new role capability, BYPASSRLS, which
can only be set by the superuser, is
added to allow other users to be able
to bypass row security using
row_security = OFF
9
Row Level Security
● row_security - a new parameter in
postgresql.conf controls if row
security policies are to be applied to
queries which are run against tables
that have row security enabled.
on - all users, except superusers and
the owner of the table, will have the
row policies for the table applied to
their queries.
force - this is to apply policies for
superusers and owner of table.
off -will bypass row policies for the
table, if user doing operation has
BYPASSRLS attribute, and error if not.
10
Row Level Security – How it works
● create table clients ( id serial primary key,
account_name text not null unique,
account_manager text not null
);
CREATE TABLE
create user peter;
CREATE ROLE
create user joanna;
CREATE ROLE
create user bill;
CREATE ROLE
11
Row Level Security – How it works
● Grant appropriate permissions
grant all on table clients to peter, joanna, bill;
GRANT
grant all on sequence clients_id_seq to peter, joanna, bill;
GRANT
● Populate the table
insert into clients (account_name, account_manager)
values ('initrode', 'peter'), ('initech', 'bill'), ('chotchkie''s',
'joanna');
INSERT 0 3
12
Row Level Security – How it works
● By default, all the rows are visible.
$ c - peter
$ select * from clients;
id | account_name | account_manager
----+--------------+-----------------
1 | initrode | peter
2 | initech | bill
3 | chotchkie's | joanna
(3 rows)
13
Row Level Security – How it works
● Now lets create policies and enable row level security
create policy just_own_clients on clients
for all
to public
using ( account_manager = current_user );
CREATE POLICY
alter table clients ENABLE ROW LEVEL SECURITY;
ALTER TABLE
14
Row Level Security – How it works
● Now, I can only see rows belonging to myself:
$ select * from clients;
id | account_name | account_manager
----+--------------+-----------------
1 | initrode | peter
(1 row)
$ c - joanna
$ select * from clients;
id | account_name | account_manager
----+--------------+-----------------
3 | chotchkie's | joanna
(1 row)
15
●
Developer and SQL Features
●
DBA and Administration
●
Replication
●
Performance
New Features
16
min and max wal size
● checkpoint_segments removed!
● Instead, control min and max size
● min_wal_size (default 80MB)
● max_wal_size (default 1GB)
● Checkpoints auto-tuned to happen in between
● Moving average of previous checkpoints
● Space only consumed when actually needed
17
Foreign Table Inheritance
● Foreign tables can now be inheritance
children, or parents.
● PostgreSQL offers a way to do
partitioning by using
table inheritance and CHECK constraints
● This feature can be used for sharding
18
Commit Timestamp Tracking
● Optional tracking of commit timestamps
● track_commit_timestamp=on
● Default is off and changing the value
of this parameter requires server
restart
● User can retrieve the information for
transactions that were committed after
above option is enabled
● Can be used by multimaster systems for
conflict resolution
19
Commit Timestamp Tracking
● postgres=# SELECT xmin,
pg_xact_commit_timestamp(xmin) FROM a;
xmin | pg_xact_commit_timestamp
------+-------------------------------
787 | 2015-03-15 15:09:52.253007+00
● postgres=# SELECT * FROM
pg_last_committed_xact();
xid | timestamp
-----+-------------------------------
791 | 2015-03-15 15:11:38.709125+00
20
●
Developer and SQL Features
●
DBA and Administration
●
Replication
●
Performance
New Features
21
pg_rewind
● a tool for synchronizing a PostgreSQL
cluster with another copy of the same
cluster, after the clusters' timelines
have diverged
● This is used to bring an old master
server back online after failover, as a
standby that follows the new master
● The advantage of pg_rewind over taking
a new base backup, or tools like rsync,
is that pg_rewind does not require
reading through all unchanged files in
the cluster
22
pg_rewind
● It is lot faster when the database is
large and only a small portion of it
differs between the clusters
● The target server (old-master) must be
shut down cleanly before running
pg_rewind
● pg_rewind requires that the
wal_log_hints option is enabled in
postgresql.conf, or that data checksums
were enabled when the cluster was
initialized with initdb.
● full_page_writes must also be enabled.
23
●
Developer and SQL Features
●
DBA and Administration
●
Replication
●
Performance
New Features
24
BRIN
● Block Range Index
● Stores only bounds-per-block-range
● Default is 128 blocks
● Very small indexes
● Scans all blocks for matches
● Used for scanning large tables
25
BRIN
=# CREATE TABLE brin_example AS SELECT
generate_series(1,100000000) AS id;
SELECT 100000000
=# CREATE INDEX btree_index ON
brin_example(id);
CREATE INDEX
Time: 239033.974 ms
=# CREATE INDEX brin_index ON
brin_example USING brin(id);
CREATE INDEX
Time: 42538.188 ms
26
BRIN
=# CREATE TABLE brin_example AS SELECT
generate_series(1,100000000) AS id;
SELECT 100000000
=# CREATE INDEX btree_index ON brin_example(id);
CREATE INDEX
Time: 239033.974 ms
=# CREATE INDEX brin_index ON brin_example USING
brin(id);
CREATE INDEX
Time: 42538.188 ms
Conclusion – Brin index creation is much faster
27
BRIN – Index creation with different block
ranges
=# CREATE INDEX brin_index_64 ON brin_example USING
brin(id) WITH (pages_per_range = 64);
CREATE INDEX
=# CREATE INDEX brin_index_256 ON brin_example USING
brin(id) WITH (pages_per_range = 256);
CREATE INDEX
=# CREATE INDEX brin_index_512 ON brin_example USING
brin(id) WITH (pages_per_range = 512);
CREATE INDEX
28
BRIN – Size
relname | pg_size_pretty
----------------+----------------
brin_example | 3457 MB
brin_index | 104 kB
brin_index_256 | 64 kB
brin_index_512 | 40 kB
brin_index_64 | 192 kB
btree_index | 2142 MB
(6 rows)
Conclusion – Brin indexes are smaller in
size
29
BRIN – How it works
● A new index access method intended to
accelerate scans of very large tables,
without the maintenance overhead of
btrees or other traditional indexes.
● They work by maintaining "summary" data
about block ranges.
30
BRIN – How it works
● For data types with natural 1-D sort
orders like integers, the summary info
consists of the maximum and the minimum
values of each indexed column within
each page range
● As new tuples are added into the index,
the summary information is updated if
the block range in which the tuple is
added is already summarized
● Otherwise subsequent pass of Vacuum or
the brin_summarize_new_values()
function will create the summary
information.
31
Read Scalability
● We will see a boost in scalability
for read workload when the data can fit
in RAM. I have ran a pgbench read-only
load to compare the performance
difference between 9.4 and HEAD
(62f5e447)on IBM POWER-8 having 24
cores, 192 hardware threads, 492GB RAM
● The data is mainly taken for 2 kind of
workloads, when all the data fits in
shared buffers (scale_factor = 300) and
when all the data can't fit in shared
buffers, but can fit in RAM
(scale_factor = 1000)
32
Read Scalability – Data fits in shared_buffers
1 8 16 32 64 128 256
0
100000
200000
300000
400000
500000
600000
pgbench -S -M prepared, PG9.5dev as of commit 62f5e4
median of 3 5-minute runs, scale_factor = 300, max_connections = 300, shared_buffers = 8GB
9.4
HEAD
Client Count
TPS
33
Read Scalability
● In 9.4 it peaks at 32 clients, now it
peaks at 64 clients and we can see the
performance improvement upto (~98%) and
it is better in all cases at higher
client count starting from 32 clients
● The main work which lead to this
improvement is commit – ab5194e6
(Improve LWLock scalability)
34
Read Scalability
● The previous implementation has a
bottleneck around spin locks that were
acquired for LWLock Acquisition and
Release and the implementation for 9.5
has changed the LWLock implementation
to use atomic operations to manipulate
the state.
35
Read Scalability – Data fits in RAM
1 8 16 32 64 128 256
0
50000
100000
150000
200000
250000
300000
350000
400000
pgbench -S -M prepared, PG9.5dev as of commit 62f5e4
median of 3 5-minute runs, scale_factor = 1000, max_connections = 300, shared_buffers = 8GB
9.4
HEAD
Client Count
TPS
36
Read Scalability
● In this case, we could see the good
performance improvement (~25%)even at
32 clients and it went upto (~96%) at
higher client count, in this case also
where in 9.4 it was peaking at 32
client count, now it peaks at 64 client
count and the performance is better
atall higher client counts.
● The main work which lead to this
improvement is commit – ab5194e6
(Improve LWLock scalability)
37
Read Scalability
● In this case there were mainly 2
bottlenecks
● a BufFreeList LWLock was getting
acquired to find a free buffer for a
page
● to change the association of buffer in
buffer mapping hash table a LWLock is
acquired on a hash partition towhich
the buffer to be associated belongs and
as there were just 16 such partitions
38
Read Scalability
● To reduce the bottleneck due to first
problem, used a spinlock which is held
just long enough to pop the freelist or
advance the clock sweep hand, and then
released
● To reduce the bottleneck due to second
problem, increase the buffer partitions
to 128
● The crux of this improvement is that we
had to resolve both the bottlenecks
together to see a major improvement in
scalability
39
Parallel Vacuumdb
● vacuumdb can use concurrent connections
● Add -j<n> to command line
● Speed up important VACUUM or ANALYZE
● This option reduces the time of the
processing but it also increases the
load on the database server.This option
reduces the time of the processing but
it also increases the load on the
database server.
40
Sorting Improvements
● Use abbreviated keys for faster sorting
of text
● transformation of strings into binary
keys using strxfrm(), and sorting the
keys instead
● using a strcmp()-based comparator with
the keys, which only considers raw byte
ordering
● abbreviate by taking the first few
characters of the strxfrm() blob.
41
Sorting Improvements
● If the abbreviated comparison is
insufficent to resolve the comparison,
we fall back on the normal comparator.
● This can be much faster than the old
way of doing sorting if the first few
bytes of the string are usually
sufficient to resolve the comparison.
42
Sorting Improvements
● As an example
create table stuff as select
random()::text as a, 'filler filler
filler'::text as b, g as c from
generate_series(1, 1000000) g;
SELECT 1000000
create index on stuff (a);
CREATE INDEX
● On PPC64 m/c, before this feature,
above operation use to take 6.3 seconds
and after feature it took just 1.9
seconds, which is 3x improvement.
Hooray!
43
WAL Compression
● Optional compression for full page
images in WAL
● wal_compression=on
● Default is off, can be set by user and
doesn't require restart
● Support for compressing full page
images
44
WAL Compression
● Smaller WAL
● Faster writes, faster replication
● Costs CPU
● Only compresses FPIs
● Still useful to gzip archives!
45
Index Scan Optimization
● improved performance for Index Scan on ">" condition
● We can see performance improvement from 5 to 30 percent.
46
● Thanks to Magnus Hagander who has presented the paper for
PostgreSQL 9.5 features in PGConf US 2015. Some of the
slides in this paper are from his paper. You can download his
slides from http://www.hagander.net/talks/
● Thanks to Hubert 'depesz' Lubaczewski and Michael Paquier
for writing blogs for new features in PostgreSQL 9.5. Some of
the examples used in this paper are taken from their blogs.
47
Questions?
48
Thanks!

Contenu connexe

Tendances

PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PGConf APAC
 
PostgreSQL Performance Tables Partitioning vs. Aggregated Data Tables
PostgreSQL Performance Tables Partitioning vs. Aggregated Data TablesPostgreSQL Performance Tables Partitioning vs. Aggregated Data Tables
PostgreSQL Performance Tables Partitioning vs. Aggregated Data TablesSperasoft
 
PostgreSQL 9.4, 9.5 and Beyond @ COSCUP 2015 Taipei
PostgreSQL 9.4, 9.5 and Beyond @ COSCUP 2015 TaipeiPostgreSQL 9.4, 9.5 and Beyond @ COSCUP 2015 Taipei
PostgreSQL 9.4, 9.5 and Beyond @ COSCUP 2015 TaipeiSatoshi Nagayasu
 
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015PostgreSQL-Consulting
 
PostgreSQL Write-Ahead Log (Heikki Linnakangas)
PostgreSQL Write-Ahead Log (Heikki Linnakangas) PostgreSQL Write-Ahead Log (Heikki Linnakangas)
PostgreSQL Write-Ahead Log (Heikki Linnakangas) Ontico
 
In-core compression: how to shrink your database size in several times
In-core compression: how to shrink your database size in several timesIn-core compression: how to shrink your database size in several times
In-core compression: how to shrink your database size in several timesAleksander Alekseev
 
Streaming replication in PostgreSQL
Streaming replication in PostgreSQLStreaming replication in PostgreSQL
Streaming replication in PostgreSQLAshnikbiz
 
Analyze corefile and backtraces with GDB for Mysql/MariaDB on Linux - Nilanda...
Analyze corefile and backtraces with GDB for Mysql/MariaDB on Linux - Nilanda...Analyze corefile and backtraces with GDB for Mysql/MariaDB on Linux - Nilanda...
Analyze corefile and backtraces with GDB for Mysql/MariaDB on Linux - Nilanda...Mydbops
 
PostgreSQL Performance Tuning
PostgreSQL Performance TuningPostgreSQL Performance Tuning
PostgreSQL Performance Tuningelliando dias
 
Как PostgreSQL работает с диском
Как PostgreSQL работает с дискомКак PostgreSQL работает с диском
Как PostgreSQL работает с дискомPostgreSQL-Consulting
 
Advanced backup methods (Postgres@CERN)
Advanced backup methods (Postgres@CERN)Advanced backup methods (Postgres@CERN)
Advanced backup methods (Postgres@CERN)Anastasia Lubennikova
 
Managing terabytes: When PostgreSQL gets big
Managing terabytes: When PostgreSQL gets bigManaging terabytes: When PostgreSQL gets big
Managing terabytes: When PostgreSQL gets bigSelena Deckelmann
 
PostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsPostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsCommand Prompt., Inc
 
Postgresql Database Administration Basic - Day1
Postgresql  Database Administration Basic  - Day1Postgresql  Database Administration Basic  - Day1
Postgresql Database Administration Basic - Day1PoguttuezhiniVP
 
Streaming replication in practice
Streaming replication in practiceStreaming replication in practice
Streaming replication in practiceAlexey Lesovsky
 
Mastering PostgreSQL Administration
Mastering PostgreSQL AdministrationMastering PostgreSQL Administration
Mastering PostgreSQL AdministrationEDB
 
MySQL database replication
MySQL database replicationMySQL database replication
MySQL database replicationPoguttuezhiniVP
 
Troubleshooting PostgreSQL Streaming Replication
Troubleshooting PostgreSQL Streaming ReplicationTroubleshooting PostgreSQL Streaming Replication
Troubleshooting PostgreSQL Streaming ReplicationAlexey Lesovsky
 

Tendances (20)

PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs
 
PostgreSQL and RAM usage
PostgreSQL and RAM usagePostgreSQL and RAM usage
PostgreSQL and RAM usage
 
PostgreSQL Performance Tables Partitioning vs. Aggregated Data Tables
PostgreSQL Performance Tables Partitioning vs. Aggregated Data TablesPostgreSQL Performance Tables Partitioning vs. Aggregated Data Tables
PostgreSQL Performance Tables Partitioning vs. Aggregated Data Tables
 
PostgreSQL 9.4, 9.5 and Beyond @ COSCUP 2015 Taipei
PostgreSQL 9.4, 9.5 and Beyond @ COSCUP 2015 TaipeiPostgreSQL 9.4, 9.5 and Beyond @ COSCUP 2015 Taipei
PostgreSQL 9.4, 9.5 and Beyond @ COSCUP 2015 Taipei
 
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
How does PostgreSQL work with disks: a DBA's checklist in detail. PGConf.US 2015
 
PostgreSQL Write-Ahead Log (Heikki Linnakangas)
PostgreSQL Write-Ahead Log (Heikki Linnakangas) PostgreSQL Write-Ahead Log (Heikki Linnakangas)
PostgreSQL Write-Ahead Log (Heikki Linnakangas)
 
In-core compression: how to shrink your database size in several times
In-core compression: how to shrink your database size in several timesIn-core compression: how to shrink your database size in several times
In-core compression: how to shrink your database size in several times
 
Streaming replication in PostgreSQL
Streaming replication in PostgreSQLStreaming replication in PostgreSQL
Streaming replication in PostgreSQL
 
Analyze corefile and backtraces with GDB for Mysql/MariaDB on Linux - Nilanda...
Analyze corefile and backtraces with GDB for Mysql/MariaDB on Linux - Nilanda...Analyze corefile and backtraces with GDB for Mysql/MariaDB on Linux - Nilanda...
Analyze corefile and backtraces with GDB for Mysql/MariaDB on Linux - Nilanda...
 
PostgreSQL Performance Tuning
PostgreSQL Performance TuningPostgreSQL Performance Tuning
PostgreSQL Performance Tuning
 
PgconfSV compression
PgconfSV compressionPgconfSV compression
PgconfSV compression
 
Как PostgreSQL работает с диском
Как PostgreSQL работает с дискомКак PostgreSQL работает с диском
Как PostgreSQL работает с диском
 
Advanced backup methods (Postgres@CERN)
Advanced backup methods (Postgres@CERN)Advanced backup methods (Postgres@CERN)
Advanced backup methods (Postgres@CERN)
 
Managing terabytes: When PostgreSQL gets big
Managing terabytes: When PostgreSQL gets bigManaging terabytes: When PostgreSQL gets big
Managing terabytes: When PostgreSQL gets big
 
PostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsPostgreSQL Administration for System Administrators
PostgreSQL Administration for System Administrators
 
Postgresql Database Administration Basic - Day1
Postgresql  Database Administration Basic  - Day1Postgresql  Database Administration Basic  - Day1
Postgresql Database Administration Basic - Day1
 
Streaming replication in practice
Streaming replication in practiceStreaming replication in practice
Streaming replication in practice
 
Mastering PostgreSQL Administration
Mastering PostgreSQL AdministrationMastering PostgreSQL Administration
Mastering PostgreSQL Administration
 
MySQL database replication
MySQL database replicationMySQL database replication
MySQL database replication
 
Troubleshooting PostgreSQL Streaming Replication
Troubleshooting PostgreSQL Streaming ReplicationTroubleshooting PostgreSQL Streaming Replication
Troubleshooting PostgreSQL Streaming Replication
 

En vedette

Introduction to cocoa sql mapper
Introduction to cocoa sql mapperIntroduction to cocoa sql mapper
Introduction to cocoa sql mappermavelph
 
Building Machine Learning Pipelines
Building Machine Learning PipelinesBuilding Machine Learning Pipelines
Building Machine Learning PipelinesInMobi Technology
 
8 Ways a Digital Media Platform is More Powerful than “Marketing”
8 Ways a Digital Media Platform is More Powerful than “Marketing”8 Ways a Digital Media Platform is More Powerful than “Marketing”
8 Ways a Digital Media Platform is More Powerful than “Marketing”New Rainmaker
 
How Often Should You Post to Facebook and Twitter
How Often Should You Post to Facebook and TwitterHow Often Should You Post to Facebook and Twitter
How Often Should You Post to Facebook and TwitterBuffer
 
Why Content Marketing Fails
Why Content Marketing FailsWhy Content Marketing Fails
Why Content Marketing FailsRand Fishkin
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great InfographicsSlideShare
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShareKapost
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareEmpowered Presentations
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation OptimizationOneupweb
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingContent Marketing Institute
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...SlideShare
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShareSlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShareSlideShare
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 
Ten Reasons Why You Should Prefer PostgreSQL to MySQL
Ten Reasons Why You Should Prefer PostgreSQL to MySQLTen Reasons Why You Should Prefer PostgreSQL to MySQL
Ten Reasons Why You Should Prefer PostgreSQL to MySQLanandology
 

En vedette (20)

Attacking Web Proxies
Attacking Web ProxiesAttacking Web Proxies
Attacking Web Proxies
 
Introduction to cocoa sql mapper
Introduction to cocoa sql mapperIntroduction to cocoa sql mapper
Introduction to cocoa sql mapper
 
Building Machine Learning Pipelines
Building Machine Learning PipelinesBuilding Machine Learning Pipelines
Building Machine Learning Pipelines
 
Cloud Computing (CCSME 2015 talk) - mypapit
Cloud Computing (CCSME 2015 talk) - mypapitCloud Computing (CCSME 2015 talk) - mypapit
Cloud Computing (CCSME 2015 talk) - mypapit
 
8 Ways a Digital Media Platform is More Powerful than “Marketing”
8 Ways a Digital Media Platform is More Powerful than “Marketing”8 Ways a Digital Media Platform is More Powerful than “Marketing”
8 Ways a Digital Media Platform is More Powerful than “Marketing”
 
How Often Should You Post to Facebook and Twitter
How Often Should You Post to Facebook and TwitterHow Often Should You Post to Facebook and Twitter
How Often Should You Post to Facebook and Twitter
 
Slides That Rock
Slides That RockSlides That Rock
Slides That Rock
 
Why Content Marketing Fails
Why Content Marketing FailsWhy Content Marketing Fails
Why Content Marketing Fails
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 
Ten Reasons Why You Should Prefer PostgreSQL to MySQL
Ten Reasons Why You Should Prefer PostgreSQL to MySQLTen Reasons Why You Should Prefer PostgreSQL to MySQL
Ten Reasons Why You Should Prefer PostgreSQL to MySQL
 

Similaire à PostgreSQL 9.5 - Major Features

What is new in PostgreSQL 14?
What is new in PostgreSQL 14?What is new in PostgreSQL 14?
What is new in PostgreSQL 14?Mydbops
 
MySQL 5.7 in a Nutshell
MySQL 5.7 in a NutshellMySQL 5.7 in a Nutshell
MySQL 5.7 in a NutshellEmily Ikuta
 
2011 Collaborate IOUG Presentation
2011 Collaborate IOUG Presentation2011 Collaborate IOUG Presentation
2011 Collaborate IOUG PresentationBiju Thomas
 
Query Optimization with MySQL 5.6: Old and New Tricks
Query Optimization with MySQL 5.6: Old and New TricksQuery Optimization with MySQL 5.6: Old and New Tricks
Query Optimization with MySQL 5.6: Old and New TricksMYXPLAIN
 
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1MariaDB plc
 
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1MariaDB plc
 
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...Databricks
 
Query Optimizer in MariaDB 10.4
Query Optimizer in MariaDB 10.4Query Optimizer in MariaDB 10.4
Query Optimizer in MariaDB 10.4Sergey Petrunya
 
NoCOUG_201411_Patel_Managing_a_Large_OLTP_Database
NoCOUG_201411_Patel_Managing_a_Large_OLTP_DatabaseNoCOUG_201411_Patel_Managing_a_Large_OLTP_Database
NoCOUG_201411_Patel_Managing_a_Large_OLTP_DatabaseParesh Patel
 
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...NETWAYS
 
SQL Server 2022 Programmability & Performance
SQL Server 2022 Programmability & PerformanceSQL Server 2022 Programmability & Performance
SQL Server 2022 Programmability & PerformanceGianluca Hotz
 
Evolution of DBA in the Cloud Era
 Evolution of DBA in the Cloud Era Evolution of DBA in the Cloud Era
Evolution of DBA in the Cloud EraMydbops
 
Modernizing your database with SQL Server 2019
Modernizing your database with SQL Server 2019Modernizing your database with SQL Server 2019
Modernizing your database with SQL Server 2019Antonios Chatzipavlis
 
Aioug vizag oracle12c_new_features
Aioug vizag oracle12c_new_featuresAioug vizag oracle12c_new_features
Aioug vizag oracle12c_new_featuresAiougVizagChapter
 
Testing Persistent Storage Performance in Kubernetes with Sherlock
Testing Persistent Storage Performance in Kubernetes with SherlockTesting Persistent Storage Performance in Kubernetes with Sherlock
Testing Persistent Storage Performance in Kubernetes with SherlockScyllaDB
 
IT Tage 2019 MariaDB 10.4 New Features
IT Tage 2019 MariaDB 10.4 New FeaturesIT Tage 2019 MariaDB 10.4 New Features
IT Tage 2019 MariaDB 10.4 New FeaturesFromDual GmbH
 
Configuring Sage 500 for Performance
Configuring Sage 500 for PerformanceConfiguring Sage 500 for Performance
Configuring Sage 500 for PerformanceRKLeSolutions
 

Similaire à PostgreSQL 9.5 - Major Features (20)

What is new in PostgreSQL 14?
What is new in PostgreSQL 14?What is new in PostgreSQL 14?
What is new in PostgreSQL 14?
 
MySQL performance tuning
MySQL performance tuningMySQL performance tuning
MySQL performance tuning
 
MySQL 5.7 in a Nutshell
MySQL 5.7 in a NutshellMySQL 5.7 in a Nutshell
MySQL 5.7 in a Nutshell
 
2011 Collaborate IOUG Presentation
2011 Collaborate IOUG Presentation2011 Collaborate IOUG Presentation
2011 Collaborate IOUG Presentation
 
Query Optimization with MySQL 5.6: Old and New Tricks
Query Optimization with MySQL 5.6: Old and New TricksQuery Optimization with MySQL 5.6: Old and New Tricks
Query Optimization with MySQL 5.6: Old and New Tricks
 
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
 
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
What's New in MariaDB Server 10.2 and MariaDB MaxScale 2.1
 
DPC Tutorial
DPC TutorialDPC Tutorial
DPC Tutorial
 
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...
Spark SQL Catalyst Code Optimization using Function Outlining with Kavana Bha...
 
Query Optimizer in MariaDB 10.4
Query Optimizer in MariaDB 10.4Query Optimizer in MariaDB 10.4
Query Optimizer in MariaDB 10.4
 
NoCOUG_201411_Patel_Managing_a_Large_OLTP_Database
NoCOUG_201411_Patel_Managing_a_Large_OLTP_DatabaseNoCOUG_201411_Patel_Managing_a_Large_OLTP_Database
NoCOUG_201411_Patel_Managing_a_Large_OLTP_Database
 
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...
OSMC 2021 | pg_stat_monitor: A cool extension for better database (PostgreSQL...
 
SQL Server 2022 Programmability & Performance
SQL Server 2022 Programmability & PerformanceSQL Server 2022 Programmability & Performance
SQL Server 2022 Programmability & Performance
 
The Accidental DBA
The Accidental DBAThe Accidental DBA
The Accidental DBA
 
Evolution of DBA in the Cloud Era
 Evolution of DBA in the Cloud Era Evolution of DBA in the Cloud Era
Evolution of DBA in the Cloud Era
 
Modernizing your database with SQL Server 2019
Modernizing your database with SQL Server 2019Modernizing your database with SQL Server 2019
Modernizing your database with SQL Server 2019
 
Aioug vizag oracle12c_new_features
Aioug vizag oracle12c_new_featuresAioug vizag oracle12c_new_features
Aioug vizag oracle12c_new_features
 
Testing Persistent Storage Performance in Kubernetes with Sherlock
Testing Persistent Storage Performance in Kubernetes with SherlockTesting Persistent Storage Performance in Kubernetes with Sherlock
Testing Persistent Storage Performance in Kubernetes with Sherlock
 
IT Tage 2019 MariaDB 10.4 New Features
IT Tage 2019 MariaDB 10.4 New FeaturesIT Tage 2019 MariaDB 10.4 New Features
IT Tage 2019 MariaDB 10.4 New Features
 
Configuring Sage 500 for Performance
Configuring Sage 500 for PerformanceConfiguring Sage 500 for Performance
Configuring Sage 500 for Performance
 

Plus de InMobi Technology

Ensemble Methods for Algorithmic Trading
Ensemble Methods for Algorithmic TradingEnsemble Methods for Algorithmic Trading
Ensemble Methods for Algorithmic TradingInMobi Technology
 
24/7 Monitoring and Alerting of PostgreSQL
24/7 Monitoring and Alerting of PostgreSQL24/7 Monitoring and Alerting of PostgreSQL
24/7 Monitoring and Alerting of PostgreSQLInMobi Technology
 
Reflective and Stored XSS- Cross Site Scripting
Reflective and Stored XSS- Cross Site ScriptingReflective and Stored XSS- Cross Site Scripting
Reflective and Stored XSS- Cross Site ScriptingInMobi Technology
 
Introduction to Threat Modeling
Introduction to Threat ModelingIntroduction to Threat Modeling
Introduction to Threat ModelingInMobi Technology
 
The Synapse IoT Stack: Technology Trends in IOT and Big Data
The Synapse IoT Stack: Technology Trends in IOT and Big DataThe Synapse IoT Stack: Technology Trends in IOT and Big Data
The Synapse IoT Stack: Technology Trends in IOT and Big DataInMobi Technology
 
What's new in Hadoop Yarn- Dec 2014
What's new in Hadoop Yarn- Dec 2014What's new in Hadoop Yarn- Dec 2014
What's new in Hadoop Yarn- Dec 2014InMobi Technology
 
Security News Bytes Null Dec Meet Bangalore
Security News Bytes Null Dec Meet BangaloreSecurity News Bytes Null Dec Meet Bangalore
Security News Bytes Null Dec Meet BangaloreInMobi Technology
 
PCI DSS v3 - Protecting Cardholder data
PCI DSS v3 - Protecting Cardholder dataPCI DSS v3 - Protecting Cardholder data
PCI DSS v3 - Protecting Cardholder dataInMobi Technology
 
Running Hadoop as Service in AltiScale Platform
Running Hadoop as Service in AltiScale PlatformRunning Hadoop as Service in AltiScale Platform
Running Hadoop as Service in AltiScale PlatformInMobi Technology
 
Shodan- That Device Search Engine
Shodan- That Device Search EngineShodan- That Device Search Engine
Shodan- That Device Search EngineInMobi Technology
 
Massively Parallel Processing with Procedural Python - Pivotal HAWQ
Massively Parallel Processing with Procedural Python - Pivotal HAWQMassively Parallel Processing with Procedural Python - Pivotal HAWQ
Massively Parallel Processing with Procedural Python - Pivotal HAWQInMobi Technology
 
Tez Data Processing over Yarn
Tez Data Processing over YarnTez Data Processing over Yarn
Tez Data Processing over YarnInMobi Technology
 
Building Audience Analytics Platform
Building Audience Analytics PlatformBuilding Audience Analytics Platform
Building Audience Analytics PlatformInMobi Technology
 
Big Data and User Segmentation in Mobile Context
Big Data and User Segmentation in Mobile ContextBig Data and User Segmentation in Mobile Context
Big Data and User Segmentation in Mobile ContextInMobi Technology
 

Plus de InMobi Technology (20)

Ensemble Methods for Algorithmic Trading
Ensemble Methods for Algorithmic TradingEnsemble Methods for Algorithmic Trading
Ensemble Methods for Algorithmic Trading
 
Backbone & Graphs
Backbone & GraphsBackbone & Graphs
Backbone & Graphs
 
24/7 Monitoring and Alerting of PostgreSQL
24/7 Monitoring and Alerting of PostgreSQL24/7 Monitoring and Alerting of PostgreSQL
24/7 Monitoring and Alerting of PostgreSQL
 
Reflective and Stored XSS- Cross Site Scripting
Reflective and Stored XSS- Cross Site ScriptingReflective and Stored XSS- Cross Site Scripting
Reflective and Stored XSS- Cross Site Scripting
 
Introduction to Threat Modeling
Introduction to Threat ModelingIntroduction to Threat Modeling
Introduction to Threat Modeling
 
HTTP Basics Demo
HTTP Basics DemoHTTP Basics Demo
HTTP Basics Demo
 
The Synapse IoT Stack: Technology Trends in IOT and Big Data
The Synapse IoT Stack: Technology Trends in IOT and Big DataThe Synapse IoT Stack: Technology Trends in IOT and Big Data
The Synapse IoT Stack: Technology Trends in IOT and Big Data
 
What's new in Hadoop Yarn- Dec 2014
What's new in Hadoop Yarn- Dec 2014What's new in Hadoop Yarn- Dec 2014
What's new in Hadoop Yarn- Dec 2014
 
Security News Bytes Null Dec Meet Bangalore
Security News Bytes Null Dec Meet BangaloreSecurity News Bytes Null Dec Meet Bangalore
Security News Bytes Null Dec Meet Bangalore
 
Matriux blue
Matriux blueMatriux blue
Matriux blue
 
PCI DSS v3 - Protecting Cardholder data
PCI DSS v3 - Protecting Cardholder dataPCI DSS v3 - Protecting Cardholder data
PCI DSS v3 - Protecting Cardholder data
 
Running Hadoop as Service in AltiScale Platform
Running Hadoop as Service in AltiScale PlatformRunning Hadoop as Service in AltiScale Platform
Running Hadoop as Service in AltiScale Platform
 
Shodan- That Device Search Engine
Shodan- That Device Search EngineShodan- That Device Search Engine
Shodan- That Device Search Engine
 
Big Data BI Simplified
Big Data BI SimplifiedBig Data BI Simplified
Big Data BI Simplified
 
Massively Parallel Processing with Procedural Python - Pivotal HAWQ
Massively Parallel Processing with Procedural Python - Pivotal HAWQMassively Parallel Processing with Procedural Python - Pivotal HAWQ
Massively Parallel Processing with Procedural Python - Pivotal HAWQ
 
Tez Data Processing over Yarn
Tez Data Processing over YarnTez Data Processing over Yarn
Tez Data Processing over Yarn
 
Building Audience Analytics Platform
Building Audience Analytics PlatformBuilding Audience Analytics Platform
Building Audience Analytics Platform
 
Big Data and User Segmentation in Mobile Context
Big Data and User Segmentation in Mobile ContextBig Data and User Segmentation in Mobile Context
Big Data and User Segmentation in Mobile Context
 
Freedom Hack Report 2014
Freedom Hack Report 2014Freedom Hack Report 2014
Freedom Hack Report 2014
 
Hadoop fundamentals
Hadoop fundamentalsHadoop fundamentals
Hadoop fundamentals
 

Dernier

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 

Dernier (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

PostgreSQL 9.5 - Major Features

  • 1. © 2013 EDB All rights reserved. 1 Exciting Features In PostgreSQL 9.5 • Amit Kapila | 2015.04.11
  • 2. 2 ● June 10, 2014 – branch 9.4 ● June 2014 – CF1 - Completed ● August 2014 – CF2 - Completed ● October 2014 – CF3 - Completed ● December 2014 – CF4 - Completed ● February 2015 – CF5 – In Progress Development Status
  • 3. 3 ● Developer and SQL Features ● DBA and Administration ● Replication ● Performance New Features
  • 4. 4 Multi-column subselect Update ● Update more than one column with subselect ● SQL standard syntax UPDATE tab SET (col1, col2) = (SELECT foo, bar FROM tab2) WHERE ...
  • 5. 5 SKIP LOCKED ● Like SELECT NOWAIT ● Except skip rows instead of error postgres=# SELECT * FROM a FOR UPDATE NOWAIT; ERROR: could not obtain lock on row in relation "a" postgres=# SELECT * FROM a FOR UPDATE SKIP LOCKED; a | b | c ----+----+---- 2 | 2 | 2 3 | 3 | 3
  • 6. 6 SKIP LOCKED ● Generally used for Advanced Queuing in databases. To Dequeue the data from a queue
  • 7. 7 Row Level Security ● Allows controlling at row level which rows can be retrieved by SELECT or manipulated using INSERT | UPDATE | DELETE ● Need to define policies for tables using Policy commands (CREATE | ALTER | DROP Policy) ● Row Security needs to be enabled and disabled by the owner on a per-table basis using ALTER TABLE .. ENABLE/DISABLE ROW SECURITY.
  • 8. 8 Row Level Security ● ROW SECURITY is disabled on tables by default and must be enabled for policies on the table to be used. ● If nopolicies exist on a table with ROW SECURITY enabled, a default-deny policy is used and no records will be visible. ● A new role capability, BYPASSRLS, which can only be set by the superuser, is added to allow other users to be able to bypass row security using row_security = OFF
  • 9. 9 Row Level Security ● row_security - a new parameter in postgresql.conf controls if row security policies are to be applied to queries which are run against tables that have row security enabled. on - all users, except superusers and the owner of the table, will have the row policies for the table applied to their queries. force - this is to apply policies for superusers and owner of table. off -will bypass row policies for the table, if user doing operation has BYPASSRLS attribute, and error if not.
  • 10. 10 Row Level Security – How it works ● create table clients ( id serial primary key, account_name text not null unique, account_manager text not null ); CREATE TABLE create user peter; CREATE ROLE create user joanna; CREATE ROLE create user bill; CREATE ROLE
  • 11. 11 Row Level Security – How it works ● Grant appropriate permissions grant all on table clients to peter, joanna, bill; GRANT grant all on sequence clients_id_seq to peter, joanna, bill; GRANT ● Populate the table insert into clients (account_name, account_manager) values ('initrode', 'peter'), ('initech', 'bill'), ('chotchkie''s', 'joanna'); INSERT 0 3
  • 12. 12 Row Level Security – How it works ● By default, all the rows are visible. $ c - peter $ select * from clients; id | account_name | account_manager ----+--------------+----------------- 1 | initrode | peter 2 | initech | bill 3 | chotchkie's | joanna (3 rows)
  • 13. 13 Row Level Security – How it works ● Now lets create policies and enable row level security create policy just_own_clients on clients for all to public using ( account_manager = current_user ); CREATE POLICY alter table clients ENABLE ROW LEVEL SECURITY; ALTER TABLE
  • 14. 14 Row Level Security – How it works ● Now, I can only see rows belonging to myself: $ select * from clients; id | account_name | account_manager ----+--------------+----------------- 1 | initrode | peter (1 row) $ c - joanna $ select * from clients; id | account_name | account_manager ----+--------------+----------------- 3 | chotchkie's | joanna (1 row)
  • 15. 15 ● Developer and SQL Features ● DBA and Administration ● Replication ● Performance New Features
  • 16. 16 min and max wal size ● checkpoint_segments removed! ● Instead, control min and max size ● min_wal_size (default 80MB) ● max_wal_size (default 1GB) ● Checkpoints auto-tuned to happen in between ● Moving average of previous checkpoints ● Space only consumed when actually needed
  • 17. 17 Foreign Table Inheritance ● Foreign tables can now be inheritance children, or parents. ● PostgreSQL offers a way to do partitioning by using table inheritance and CHECK constraints ● This feature can be used for sharding
  • 18. 18 Commit Timestamp Tracking ● Optional tracking of commit timestamps ● track_commit_timestamp=on ● Default is off and changing the value of this parameter requires server restart ● User can retrieve the information for transactions that were committed after above option is enabled ● Can be used by multimaster systems for conflict resolution
  • 19. 19 Commit Timestamp Tracking ● postgres=# SELECT xmin, pg_xact_commit_timestamp(xmin) FROM a; xmin | pg_xact_commit_timestamp ------+------------------------------- 787 | 2015-03-15 15:09:52.253007+00 ● postgres=# SELECT * FROM pg_last_committed_xact(); xid | timestamp -----+------------------------------- 791 | 2015-03-15 15:11:38.709125+00
  • 20. 20 ● Developer and SQL Features ● DBA and Administration ● Replication ● Performance New Features
  • 21. 21 pg_rewind ● a tool for synchronizing a PostgreSQL cluster with another copy of the same cluster, after the clusters' timelines have diverged ● This is used to bring an old master server back online after failover, as a standby that follows the new master ● The advantage of pg_rewind over taking a new base backup, or tools like rsync, is that pg_rewind does not require reading through all unchanged files in the cluster
  • 22. 22 pg_rewind ● It is lot faster when the database is large and only a small portion of it differs between the clusters ● The target server (old-master) must be shut down cleanly before running pg_rewind ● pg_rewind requires that the wal_log_hints option is enabled in postgresql.conf, or that data checksums were enabled when the cluster was initialized with initdb. ● full_page_writes must also be enabled.
  • 23. 23 ● Developer and SQL Features ● DBA and Administration ● Replication ● Performance New Features
  • 24. 24 BRIN ● Block Range Index ● Stores only bounds-per-block-range ● Default is 128 blocks ● Very small indexes ● Scans all blocks for matches ● Used for scanning large tables
  • 25. 25 BRIN =# CREATE TABLE brin_example AS SELECT generate_series(1,100000000) AS id; SELECT 100000000 =# CREATE INDEX btree_index ON brin_example(id); CREATE INDEX Time: 239033.974 ms =# CREATE INDEX brin_index ON brin_example USING brin(id); CREATE INDEX Time: 42538.188 ms
  • 26. 26 BRIN =# CREATE TABLE brin_example AS SELECT generate_series(1,100000000) AS id; SELECT 100000000 =# CREATE INDEX btree_index ON brin_example(id); CREATE INDEX Time: 239033.974 ms =# CREATE INDEX brin_index ON brin_example USING brin(id); CREATE INDEX Time: 42538.188 ms Conclusion – Brin index creation is much faster
  • 27. 27 BRIN – Index creation with different block ranges =# CREATE INDEX brin_index_64 ON brin_example USING brin(id) WITH (pages_per_range = 64); CREATE INDEX =# CREATE INDEX brin_index_256 ON brin_example USING brin(id) WITH (pages_per_range = 256); CREATE INDEX =# CREATE INDEX brin_index_512 ON brin_example USING brin(id) WITH (pages_per_range = 512); CREATE INDEX
  • 28. 28 BRIN – Size relname | pg_size_pretty ----------------+---------------- brin_example | 3457 MB brin_index | 104 kB brin_index_256 | 64 kB brin_index_512 | 40 kB brin_index_64 | 192 kB btree_index | 2142 MB (6 rows) Conclusion – Brin indexes are smaller in size
  • 29. 29 BRIN – How it works ● A new index access method intended to accelerate scans of very large tables, without the maintenance overhead of btrees or other traditional indexes. ● They work by maintaining "summary" data about block ranges.
  • 30. 30 BRIN – How it works ● For data types with natural 1-D sort orders like integers, the summary info consists of the maximum and the minimum values of each indexed column within each page range ● As new tuples are added into the index, the summary information is updated if the block range in which the tuple is added is already summarized ● Otherwise subsequent pass of Vacuum or the brin_summarize_new_values() function will create the summary information.
  • 31. 31 Read Scalability ● We will see a boost in scalability for read workload when the data can fit in RAM. I have ran a pgbench read-only load to compare the performance difference between 9.4 and HEAD (62f5e447)on IBM POWER-8 having 24 cores, 192 hardware threads, 492GB RAM ● The data is mainly taken for 2 kind of workloads, when all the data fits in shared buffers (scale_factor = 300) and when all the data can't fit in shared buffers, but can fit in RAM (scale_factor = 1000)
  • 32. 32 Read Scalability – Data fits in shared_buffers 1 8 16 32 64 128 256 0 100000 200000 300000 400000 500000 600000 pgbench -S -M prepared, PG9.5dev as of commit 62f5e4 median of 3 5-minute runs, scale_factor = 300, max_connections = 300, shared_buffers = 8GB 9.4 HEAD Client Count TPS
  • 33. 33 Read Scalability ● In 9.4 it peaks at 32 clients, now it peaks at 64 clients and we can see the performance improvement upto (~98%) and it is better in all cases at higher client count starting from 32 clients ● The main work which lead to this improvement is commit – ab5194e6 (Improve LWLock scalability)
  • 34. 34 Read Scalability ● The previous implementation has a bottleneck around spin locks that were acquired for LWLock Acquisition and Release and the implementation for 9.5 has changed the LWLock implementation to use atomic operations to manipulate the state.
  • 35. 35 Read Scalability – Data fits in RAM 1 8 16 32 64 128 256 0 50000 100000 150000 200000 250000 300000 350000 400000 pgbench -S -M prepared, PG9.5dev as of commit 62f5e4 median of 3 5-minute runs, scale_factor = 1000, max_connections = 300, shared_buffers = 8GB 9.4 HEAD Client Count TPS
  • 36. 36 Read Scalability ● In this case, we could see the good performance improvement (~25%)even at 32 clients and it went upto (~96%) at higher client count, in this case also where in 9.4 it was peaking at 32 client count, now it peaks at 64 client count and the performance is better atall higher client counts. ● The main work which lead to this improvement is commit – ab5194e6 (Improve LWLock scalability)
  • 37. 37 Read Scalability ● In this case there were mainly 2 bottlenecks ● a BufFreeList LWLock was getting acquired to find a free buffer for a page ● to change the association of buffer in buffer mapping hash table a LWLock is acquired on a hash partition towhich the buffer to be associated belongs and as there were just 16 such partitions
  • 38. 38 Read Scalability ● To reduce the bottleneck due to first problem, used a spinlock which is held just long enough to pop the freelist or advance the clock sweep hand, and then released ● To reduce the bottleneck due to second problem, increase the buffer partitions to 128 ● The crux of this improvement is that we had to resolve both the bottlenecks together to see a major improvement in scalability
  • 39. 39 Parallel Vacuumdb ● vacuumdb can use concurrent connections ● Add -j<n> to command line ● Speed up important VACUUM or ANALYZE ● This option reduces the time of the processing but it also increases the load on the database server.This option reduces the time of the processing but it also increases the load on the database server.
  • 40. 40 Sorting Improvements ● Use abbreviated keys for faster sorting of text ● transformation of strings into binary keys using strxfrm(), and sorting the keys instead ● using a strcmp()-based comparator with the keys, which only considers raw byte ordering ● abbreviate by taking the first few characters of the strxfrm() blob.
  • 41. 41 Sorting Improvements ● If the abbreviated comparison is insufficent to resolve the comparison, we fall back on the normal comparator. ● This can be much faster than the old way of doing sorting if the first few bytes of the string are usually sufficient to resolve the comparison.
  • 42. 42 Sorting Improvements ● As an example create table stuff as select random()::text as a, 'filler filler filler'::text as b, g as c from generate_series(1, 1000000) g; SELECT 1000000 create index on stuff (a); CREATE INDEX ● On PPC64 m/c, before this feature, above operation use to take 6.3 seconds and after feature it took just 1.9 seconds, which is 3x improvement. Hooray!
  • 43. 43 WAL Compression ● Optional compression for full page images in WAL ● wal_compression=on ● Default is off, can be set by user and doesn't require restart ● Support for compressing full page images
  • 44. 44 WAL Compression ● Smaller WAL ● Faster writes, faster replication ● Costs CPU ● Only compresses FPIs ● Still useful to gzip archives!
  • 45. 45 Index Scan Optimization ● improved performance for Index Scan on ">" condition ● We can see performance improvement from 5 to 30 percent.
  • 46. 46 ● Thanks to Magnus Hagander who has presented the paper for PostgreSQL 9.5 features in PGConf US 2015. Some of the slides in this paper are from his paper. You can download his slides from http://www.hagander.net/talks/ ● Thanks to Hubert 'depesz' Lubaczewski and Michael Paquier for writing blogs for new features in PostgreSQL 9.5. Some of the examples used in this paper are taken from their blogs.