SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
PostgreSQL on Network File System?
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
© Lucasfilm™
PostgreSQL on Network File System?
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
What people say about NFS
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
What people say about NFS
IT’S FAST!
CC0 1.0
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
PostgreSQL & NFS
Myths & Truths
Jonathan Battiato
www.2ndquadrant.com
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Jonathan Battiato
Linux SysAdmin & DBA
Jonathan Battiato
Linux SysAdmin & DBA
jonny_lee_84
jonathan.battiato@2ndquadrant.it
jonny-lee31
~$ whoami
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Thanks to:
Giuseppe Broccolo, PhD
PostgreSQL & PostGIS consultant
@giubro gbroccolo7
giuseppe.broccolo@2ndquadrant.it
gbroccolo gemini__81
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
#PGNFS
#PostgreSQL
#NFS
TAGs
@jonny_lee_84
@2ndquadrant_it
@PGDayIT
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Network File System
general characteristics
Part 1
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Network File System (Sun Microsystem®
, 1984)
●
A protocol for distributed file system – v2, v3, v4
●
servers export the file system, clients mounts the export locally
●
Many clients, one server
●
High performances through fast network
LAN
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
NFS v3 vs. NFS v2
●
Strenght
– TCP (UDP is still a choice)
– Asynchronous communication (caching)
– A daemon manages file locking and connections
– Larger block size than 8KB (up to 64KB - depends on Kernel)
●
Weakness
– Stateless (NFS)
– Plain text data transmissions
– Host authentication only
– Dynamic port assignment
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
NFS v4 vs. NFS v3
●
Partial solutions
– Single port (2049)
easy to apply firewall rules to filter NFS traffic
– Authentication and locking deamons included in the protocol
– operations are always stateful
– UDP not allowed anymore
NFS v4 is the default on RHEL 6
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Client-Server Optimization
●
Block size (wsize, rsize – nfs protocol level)
Requests are organised in data blocks exchanged between client & server
●
NFS relies on TCP or UDP protocols (transport level)
UDP is statless, TCP is stateful
TCP choose automatically the packet size
●
Packet size & MTU (network level)
Packets size can be optimised to transfer blocks within the network: jumbo frames
CHOOSE WISELY!
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Main concerns about synchronisation
●
NO Time synchronisation
Use NTP!
●
File Locking
v2 does not support file locking
v3 uses daemon for locking, performances drop when in use
●
Delayed write cache
Caching writes could cause data loss
Without write cache performances drop
●
Read (metadata) cache
NFS server may show not-updated attributes, any program that relies on file attributes may not work
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Part 2
NFS & PostgreSQL
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
NFS & PostgreSQL
www.postgresql.org/docs/9.6/static/creating-cluster.html#CREATING-CLUSTER-NFS
●
NFS disks are completely transparent for PostgreSQL
●
If NFS client/server implementation does not provide
standard file system semantics, this can cause
reliability problems
●
PostgreSQL advices
– NFS mount options
●
avoid soft-mounting: hard
– General mount options
●
avoid asynchronous writes: fsync
LAN
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
hard-mount option
NFS calls must be retried indefinitely
both data and WAL entries sequentiality may not be preserved
write cache
WALs have to be flushed as a database action is committed
many processes are involved during WALs flush on disk
→ several NFS clients
→ WAL entries sequentiality may not be preserved
attribute cache
many processes are involved during WALs flush on disk
→ several NFS clients
→ files attributes may not have consistent views
Sources of corruptions
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Synchronous writes
sync vs. fsync=on:
– NFS v2:
●
if sync is specified, the server will not complete a request until both data/metadata are
written to the disk
– NFS v3 / v4:
●
if sync is specified, the server will complete a request returning the status of the write:
– NFS_FILE_SYNC, NFS_DATA_SYNC, NFS_UNSTABLE
●
data is effectively forced to be flushed on disk once a sync method system call is issued
– be careful to set fsync=on
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Reliability vs. Performance
●
NFS exports must be mounted with safe options
●
Are these option fine for a database?
– is the performance deeply impacted?
– is data safely guaranteed in case of crash?
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Part 3
NFS & PostgreSQL
performance
&
reliability benchmarks
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
The customer
NetApp
FAS 8080 Full Flash
Clustered Mode
physical host
storage
2 CPUs x 8GB RAM
RHEL 6
Kernel v. 2.6.32
PostgreSQL 9.5.3
Ethernet
10Gb/s
No routers
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Reliability tests
●
try different crash scenarios under high concurrency load, check if
the instance recovers properly, then execute a VACUUM FULL:
– kill -9 to postmaster
– forced reboot through kernel SysReq:
●
echo 1 > /proc/sys/kernel/sysrq ; echo b > /proc/sysrq-trigger
– power off of the VM from the VMWare vSphere® remote panel
– kill the TCP/IP connections through tcpkill
[root@pgsql] ~# tcpkill host X.X.X.X
tcpkill: listening on eth0 [host X.X.X.X]
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
●
try different crash scenarios under high concurrency load, check if
the instance recovers properly, then execute a VACUUM FULL:
– kill -9 to postmaster
– forced reboot through kernel SysReq:
●
echo 1 > /proc/sys/kernel/sysrq ; echo b > /proc/sysrq-trigger
– power off of the VM from the VMWare vSphere® remote panel
– kill the TCP/IP connections through tcpkill
[root@pgsql] ~# tcpkill host X.X.X.X
tcpkill: listening on eth0 [host X.X.X.X]
Reliability tests
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
●
try different crash scenarios under high concurrency load, check if
the instance recovers properly, then execute a VACUUM FULL:
– kill -9 to postmaster
– forced reboot through kernel SysReq:
●
echo 1 > /proc/sys/kernel/sysrq ; echo b > /proc/sysrq-trigger
– power off of the VM from the VMWare vSphere® remote panel
– kill the TCP/IP connections through tcpkill
[root@pgsql] ~# tcpkill host X.X.X.X
tcpkill: listening on eth0 [host X.X.X.X]
Reliability tests
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
●
try different crash scenarios under high concurrency load, check if
the instance recovers properly, then execute a VACUUM FULL:
– kill -9 to postmaster
– forced reboot through kernel SysReq:
●
echo 1 > /proc/sys/kernel/sysrq ; echo b > /proc/sysrq-trigger
– power off of the VM from the VMWare vSphere® remote panel
– kill the TCP/IP connections through tcpkill
[root@pgsql] ~# tcpkill host X.X.X.X
tcpkill: listening on eth0 [host X.X.X.X]
Reliability tests
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
●
try different crash scenarios under high concurrency load, check if
the instance recovers properly, then execute a VACUUM FULL:
– kill -9 to postmaster
– forced reboot through kernel SysReq:
●
echo 1 > /proc/sys/kernel/sysrq ; echo b > /proc/sysrq-trigger
– power off of the VM from the VMWare vSphere® remote panel
– kill the TCP/IP connections through tcpkill
[root@pgsql] ~# tcpkill host X.X.X.X
tcpkill: listening on eth0 [host X.X.X.X]
Reliability tests
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
T. Vondra – test the persistence of recycled WALs in ext4
– update attributes of recycled WALs flush them on disk through→ fdatasync
– fdatasync does not force the flush of metadata the update may get lost after a crash→
– logged changes are contained in file “in the future” data loss!→
github.com/2ndQuadrant/ext4-data-loss
●
INSERT/UPDATE new records in parallel and synchronously on the db and on a file
●
simulate a crash compare db & file contents after the crash recovery→
Reliability tests
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Check NFS behaviour for recycled WALs (file attributes caching)
– noac
●
– ac
●
Reliability tests
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Check NFS behaviour for recycled WALs (file attributes caching)
– noac
●
several tests, no data loss!
– ac
●
Reliability tests
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Check NFS behaviour for recycled WALs (file attributes caching)
– noac
●
several tests, no data loss!
– ac
●
several tests, no data loss!
Reliability tests
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Check NFS behaviour for recycled WALs (file attributes caching)
– noac
●
several tests, no data loss!
– ac
●
several tests, no data loss!
Reliability tests
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
All tests passed, but this does not ensure that it is totally safe!
Reliability tests
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Enhance reliability for PostgreSQL DBs
●
allow page checksums (9.3+): initdb –data-checksums ...
– execute CRC32 calculation for each 8KB data block
●
a checksum failure means that the data block is corrupted
– force wal_log_hint=true
●
write the entire 8KB page to the WAL, even for hint bits modification
– take into account the impact to the performance:
●
R: checksum extra-calculation every 8KB
●
W: increase the amount of information logged into WALs
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Enhance performance for PostgreSQL DBs
●
sync’ed writes are slow, even if NFS caching is enabled
●
if possible, consider asynchronous commit:
– let the server return success as soon as the transaction is logically completed
●
synchronous_commit=off – it can be set per user/session
●
WAL entries will be flushed in a second moment,
but not later than 3x wal_writer_delay
●
in case of crashes, the DB can be recovered in a consistent state,
but there could be a window of data loss
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
file system I/O speed:
– reads: 700MB/s
– writes: 700MB/s
synchronous_commit=on:
– INSERT:
●
noac ~ ac (single & multi client)
– SELECT:
●
noac ~ 16x ac
DB commit rate and SELECT rate:
synchronous_commit=off:
– INSERT:
●
noac~ 8x ac (single & multi client)
– SELECT:
●
noac ~ 16x ac
Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Conclusions
●
NFS is not natively thought for reliability purposes
– the protocol is thought to enhance the performance
– NFS v4 is preferable
●
PostgreSQL allows to adopt many countermeasures
– it is at least able to promptly detect data corruptions
●
PostgreSQL can be used with NFS
– ready to accept minimal data loss
11/06/2010 ITPUG - ConfSL 2010 37Jonathan Battiato 2ndQuadrant Italia
@2ndquadrant_it @jonny_lee_84
PGDay.IT 2016 - 10th
edition
Prato Dec 13th
2016
Creative Commons license
This work is licensed under a Creative Commons
Attribution-ShareAlike 4.0 International License
https://creativecommons.org/licenses/by-nc-sa/4.0/
© 2016 2ndQuadrant Italia – http://www.2ndquadrant.it

Weitere ähnliche Inhalte

Was ist angesagt?

10 Good Reasons to Use ClickHouse
10 Good Reasons to Use ClickHouse10 Good Reasons to Use ClickHouse
10 Good Reasons to Use ClickHouserpolat
 
PostgreSQL Extensions: A deeper look
PostgreSQL Extensions:  A deeper lookPostgreSQL Extensions:  A deeper look
PostgreSQL Extensions: A deeper lookJignesh Shah
 
ClickHouse Deep Dive, by Aleksei Milovidov
ClickHouse Deep Dive, by Aleksei MilovidovClickHouse Deep Dive, by Aleksei Milovidov
ClickHouse Deep Dive, by Aleksei MilovidovAltinity Ltd
 
Pacemakerを使いこなそう
Pacemakerを使いこなそうPacemakerを使いこなそう
Pacemakerを使いこなそうTakatoshi Matsuo
 
re:Invent 2019 BPF Performance Analysis at Netflix
re:Invent 2019 BPF Performance Analysis at Netflixre:Invent 2019 BPF Performance Analysis at Netflix
re:Invent 2019 BPF Performance Analysis at NetflixBrendan Gregg
 
Linux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performanceLinux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performancePostgreSQL-Consulting
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PGConf APAC
 
Temporal-Joins in Kafka Streams and ksqlDB | Matthias Sax, Confluent
Temporal-Joins in Kafka Streams and ksqlDB | Matthias Sax, ConfluentTemporal-Joins in Kafka Streams and ksqlDB | Matthias Sax, Confluent
Temporal-Joins in Kafka Streams and ksqlDB | Matthias Sax, ConfluentHostedbyConfluent
 
All about Zookeeper and ClickHouse Keeper.pdf
All about Zookeeper and ClickHouse Keeper.pdfAll about Zookeeper and ClickHouse Keeper.pdf
All about Zookeeper and ClickHouse Keeper.pdfAltinity Ltd
 
PostgreSQL HA
PostgreSQL   HAPostgreSQL   HA
PostgreSQL HAharoonm
 
Optimizing Autovacuum: PostgreSQL's vacuum cleaner
Optimizing Autovacuum: PostgreSQL's vacuum cleanerOptimizing Autovacuum: PostgreSQL's vacuum cleaner
Optimizing Autovacuum: PostgreSQL's vacuum cleanerSamaySharma10
 
Mastering PostgreSQL Administration
Mastering PostgreSQL AdministrationMastering PostgreSQL Administration
Mastering PostgreSQL AdministrationEDB
 
High Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouseHigh Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouseAltinity Ltd
 
No data loss pipeline with apache kafka
No data loss pipeline with apache kafkaNo data loss pipeline with apache kafka
No data loss pipeline with apache kafkaJiangjie Qin
 
ksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database SystemksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database Systemconfluent
 
Kafka on ZFS: Better Living Through Filesystems
Kafka on ZFS: Better Living Through Filesystems Kafka on ZFS: Better Living Through Filesystems
Kafka on ZFS: Better Living Through Filesystems confluent
 
How Dashtable Helps Dragonfly Maintain Low Latency
How Dashtable Helps Dragonfly Maintain Low LatencyHow Dashtable Helps Dragonfly Maintain Low Latency
How Dashtable Helps Dragonfly Maintain Low LatencyScyllaDB
 
Apache Flink in the Cloud-Native Era
Apache Flink in the Cloud-Native EraApache Flink in the Cloud-Native Era
Apache Flink in the Cloud-Native EraFlink Forward
 
Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Building a Streaming Microservice Architecture: with Apache Spark Structured ...Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Building a Streaming Microservice Architecture: with Apache Spark Structured ...Databricks
 

Was ist angesagt? (20)

10 Good Reasons to Use ClickHouse
10 Good Reasons to Use ClickHouse10 Good Reasons to Use ClickHouse
10 Good Reasons to Use ClickHouse
 
PostgreSQL Extensions: A deeper look
PostgreSQL Extensions:  A deeper lookPostgreSQL Extensions:  A deeper look
PostgreSQL Extensions: A deeper look
 
ClickHouse Deep Dive, by Aleksei Milovidov
ClickHouse Deep Dive, by Aleksei MilovidovClickHouse Deep Dive, by Aleksei Milovidov
ClickHouse Deep Dive, by Aleksei Milovidov
 
Pacemakerを使いこなそう
Pacemakerを使いこなそうPacemakerを使いこなそう
Pacemakerを使いこなそう
 
re:Invent 2019 BPF Performance Analysis at Netflix
re:Invent 2019 BPF Performance Analysis at Netflixre:Invent 2019 BPF Performance Analysis at Netflix
re:Invent 2019 BPF Performance Analysis at Netflix
 
Linux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performanceLinux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performance
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs
 
Temporal-Joins in Kafka Streams and ksqlDB | Matthias Sax, Confluent
Temporal-Joins in Kafka Streams and ksqlDB | Matthias Sax, ConfluentTemporal-Joins in Kafka Streams and ksqlDB | Matthias Sax, Confluent
Temporal-Joins in Kafka Streams and ksqlDB | Matthias Sax, Confluent
 
All about Zookeeper and ClickHouse Keeper.pdf
All about Zookeeper and ClickHouse Keeper.pdfAll about Zookeeper and ClickHouse Keeper.pdf
All about Zookeeper and ClickHouse Keeper.pdf
 
PostgreSQL HA
PostgreSQL   HAPostgreSQL   HA
PostgreSQL HA
 
Optimizing Autovacuum: PostgreSQL's vacuum cleaner
Optimizing Autovacuum: PostgreSQL's vacuum cleanerOptimizing Autovacuum: PostgreSQL's vacuum cleaner
Optimizing Autovacuum: PostgreSQL's vacuum cleaner
 
Fluentd vs. Logstash for OpenStack Log Management
Fluentd vs. Logstash for OpenStack Log ManagementFluentd vs. Logstash for OpenStack Log Management
Fluentd vs. Logstash for OpenStack Log Management
 
Mastering PostgreSQL Administration
Mastering PostgreSQL AdministrationMastering PostgreSQL Administration
Mastering PostgreSQL Administration
 
High Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouseHigh Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouse
 
No data loss pipeline with apache kafka
No data loss pipeline with apache kafkaNo data loss pipeline with apache kafka
No data loss pipeline with apache kafka
 
ksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database SystemksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database System
 
Kafka on ZFS: Better Living Through Filesystems
Kafka on ZFS: Better Living Through Filesystems Kafka on ZFS: Better Living Through Filesystems
Kafka on ZFS: Better Living Through Filesystems
 
How Dashtable Helps Dragonfly Maintain Low Latency
How Dashtable Helps Dragonfly Maintain Low LatencyHow Dashtable Helps Dragonfly Maintain Low Latency
How Dashtable Helps Dragonfly Maintain Low Latency
 
Apache Flink in the Cloud-Native Era
Apache Flink in the Cloud-Native EraApache Flink in the Cloud-Native Era
Apache Flink in the Cloud-Native Era
 
Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Building a Streaming Microservice Architecture: with Apache Spark Structured ...Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Building a Streaming Microservice Architecture: with Apache Spark Structured ...
 

Andere mochten auch

PoPostgreSQL Web Projects: From Start to FinishStart To Finish
PoPostgreSQL Web Projects: From Start to FinishStart To FinishPoPostgreSQL Web Projects: From Start to FinishStart To Finish
PoPostgreSQL Web Projects: From Start to FinishStart To Finishelliando dias
 
PostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFSPostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFSTomas Vondra
 
Novinky v PostgreSQL 9.4 a JSONB
Novinky v PostgreSQL 9.4 a JSONBNovinky v PostgreSQL 9.4 a JSONB
Novinky v PostgreSQL 9.4 a JSONBTomas Vondra
 
Postgres & Red Hat Cluster Suite
Postgres & Red Hat Cluster SuitePostgres & Red Hat Cluster Suite
Postgres & Red Hat Cluster SuiteEDB
 
Open source: Top issues in the top enterprise packages
Open source: Top issues in the top enterprise packagesOpen source: Top issues in the top enterprise packages
Open source: Top issues in the top enterprise packagesRogue Wave Software
 
(STG306) EFS: How to store 8 Exabytes & look good doing it
(STG306) EFS: How to store 8 Exabytes & look good doing it(STG306) EFS: How to store 8 Exabytes & look good doing it
(STG306) EFS: How to store 8 Exabytes & look good doing itAmazon Web Services
 
Kevin Kempter - PostgreSQL Backup and Recovery Methods @ Postgres Open
Kevin Kempter - PostgreSQL Backup and Recovery Methods @ Postgres OpenKevin Kempter - PostgreSQL Backup and Recovery Methods @ Postgres Open
Kevin Kempter - PostgreSQL Backup and Recovery Methods @ Postgres OpenPostgresOpen
 
Bruce Momjian - Inside PostgreSQL Shared Memory @ Postgres Open
Bruce Momjian - Inside PostgreSQL Shared Memory @ Postgres OpenBruce Momjian - Inside PostgreSQL Shared Memory @ Postgres Open
Bruce Momjian - Inside PostgreSQL Shared Memory @ Postgres OpenPostgresOpen
 
Ryan Jarvinen Open Shift Talk @ Postgres Open 2013
Ryan Jarvinen Open Shift Talk @ Postgres Open 2013Ryan Jarvinen Open Shift Talk @ Postgres Open 2013
Ryan Jarvinen Open Shift Talk @ Postgres Open 2013PostgresOpen
 
Keith Fiske - When PostgreSQL Can't, You Can @ Postgres Open
Keith Fiske - When PostgreSQL Can't, You Can @ Postgres OpenKeith Fiske - When PostgreSQL Can't, You Can @ Postgres Open
Keith Fiske - When PostgreSQL Can't, You Can @ Postgres OpenPostgresOpen
 
David Keeney - SQL Database Server Requests from the Browser @ Postgres Open
David Keeney - SQL Database Server Requests from the Browser @ Postgres OpenDavid Keeney - SQL Database Server Requests from the Browser @ Postgres Open
David Keeney - SQL Database Server Requests from the Browser @ Postgres OpenPostgresOpen
 
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Post...
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Post...Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Post...
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Post...PostgresOpen
 
Selena Deckelmann - Sane Schema Management with Alembic and SQLAlchemy @ Pos...
Selena Deckelmann - Sane Schema Management with  Alembic and SQLAlchemy @ Pos...Selena Deckelmann - Sane Schema Management with  Alembic and SQLAlchemy @ Pos...
Selena Deckelmann - Sane Schema Management with Alembic and SQLAlchemy @ Pos...PostgresOpen
 
Henrietta Dombrovskaya - A New Approach to Resolve Object-Relational Impedanc...
Henrietta Dombrovskaya - A New Approach to Resolve Object-Relational Impedanc...Henrietta Dombrovskaya - A New Approach to Resolve Object-Relational Impedanc...
Henrietta Dombrovskaya - A New Approach to Resolve Object-Relational Impedanc...PostgresOpen
 
Keith Paskett - Postgres on ZFS @ Postgres Open
Keith Paskett - Postgres on ZFS @ Postgres OpenKeith Paskett - Postgres on ZFS @ Postgres Open
Keith Paskett - Postgres on ZFS @ Postgres OpenPostgresOpen
 
Islamabad PUG - 7th Meetup - performance tuning
Islamabad PUG - 7th Meetup - performance tuningIslamabad PUG - 7th Meetup - performance tuning
Islamabad PUG - 7th Meetup - performance tuningUmair Shahid
 
Islamabad PUG - 7th meetup - performance tuning
Islamabad PUG - 7th meetup - performance tuningIslamabad PUG - 7th meetup - performance tuning
Islamabad PUG - 7th meetup - performance tuningUmair Shahid
 
Out of the box replication in postgres 9.4(pg confus)
Out of the box replication in postgres 9.4(pg confus)Out of the box replication in postgres 9.4(pg confus)
Out of the box replication in postgres 9.4(pg confus)Denish Patel
 
Robert Haas Query Planning Gone Wrong Presentation @ Postgres Open
Robert Haas Query Planning Gone Wrong Presentation @ Postgres OpenRobert Haas Query Planning Gone Wrong Presentation @ Postgres Open
Robert Haas Query Planning Gone Wrong Presentation @ Postgres OpenPostgresOpen
 

Andere mochten auch (20)

PoPostgreSQL Web Projects: From Start to FinishStart To Finish
PoPostgreSQL Web Projects: From Start to FinishStart To FinishPoPostgreSQL Web Projects: From Start to FinishStart To Finish
PoPostgreSQL Web Projects: From Start to FinishStart To Finish
 
PostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFSPostgreSQL on EXT4, XFS, BTRFS and ZFS
PostgreSQL on EXT4, XFS, BTRFS and ZFS
 
Novinky v PostgreSQL 9.4 a JSONB
Novinky v PostgreSQL 9.4 a JSONBNovinky v PostgreSQL 9.4 a JSONB
Novinky v PostgreSQL 9.4 a JSONB
 
Postgres & Red Hat Cluster Suite
Postgres & Red Hat Cluster SuitePostgres & Red Hat Cluster Suite
Postgres & Red Hat Cluster Suite
 
Open source: Top issues in the top enterprise packages
Open source: Top issues in the top enterprise packagesOpen source: Top issues in the top enterprise packages
Open source: Top issues in the top enterprise packages
 
(STG306) EFS: How to store 8 Exabytes & look good doing it
(STG306) EFS: How to store 8 Exabytes & look good doing it(STG306) EFS: How to store 8 Exabytes & look good doing it
(STG306) EFS: How to store 8 Exabytes & look good doing it
 
Shootout at the PAAS Corral
Shootout at the PAAS CorralShootout at the PAAS Corral
Shootout at the PAAS Corral
 
Kevin Kempter - PostgreSQL Backup and Recovery Methods @ Postgres Open
Kevin Kempter - PostgreSQL Backup and Recovery Methods @ Postgres OpenKevin Kempter - PostgreSQL Backup and Recovery Methods @ Postgres Open
Kevin Kempter - PostgreSQL Backup and Recovery Methods @ Postgres Open
 
Bruce Momjian - Inside PostgreSQL Shared Memory @ Postgres Open
Bruce Momjian - Inside PostgreSQL Shared Memory @ Postgres OpenBruce Momjian - Inside PostgreSQL Shared Memory @ Postgres Open
Bruce Momjian - Inside PostgreSQL Shared Memory @ Postgres Open
 
Ryan Jarvinen Open Shift Talk @ Postgres Open 2013
Ryan Jarvinen Open Shift Talk @ Postgres Open 2013Ryan Jarvinen Open Shift Talk @ Postgres Open 2013
Ryan Jarvinen Open Shift Talk @ Postgres Open 2013
 
Keith Fiske - When PostgreSQL Can't, You Can @ Postgres Open
Keith Fiske - When PostgreSQL Can't, You Can @ Postgres OpenKeith Fiske - When PostgreSQL Can't, You Can @ Postgres Open
Keith Fiske - When PostgreSQL Can't, You Can @ Postgres Open
 
David Keeney - SQL Database Server Requests from the Browser @ Postgres Open
David Keeney - SQL Database Server Requests from the Browser @ Postgres OpenDavid Keeney - SQL Database Server Requests from the Browser @ Postgres Open
David Keeney - SQL Database Server Requests from the Browser @ Postgres Open
 
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Post...
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Post...Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Post...
Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Post...
 
Selena Deckelmann - Sane Schema Management with Alembic and SQLAlchemy @ Pos...
Selena Deckelmann - Sane Schema Management with  Alembic and SQLAlchemy @ Pos...Selena Deckelmann - Sane Schema Management with  Alembic and SQLAlchemy @ Pos...
Selena Deckelmann - Sane Schema Management with Alembic and SQLAlchemy @ Pos...
 
Henrietta Dombrovskaya - A New Approach to Resolve Object-Relational Impedanc...
Henrietta Dombrovskaya - A New Approach to Resolve Object-Relational Impedanc...Henrietta Dombrovskaya - A New Approach to Resolve Object-Relational Impedanc...
Henrietta Dombrovskaya - A New Approach to Resolve Object-Relational Impedanc...
 
Keith Paskett - Postgres on ZFS @ Postgres Open
Keith Paskett - Postgres on ZFS @ Postgres OpenKeith Paskett - Postgres on ZFS @ Postgres Open
Keith Paskett - Postgres on ZFS @ Postgres Open
 
Islamabad PUG - 7th Meetup - performance tuning
Islamabad PUG - 7th Meetup - performance tuningIslamabad PUG - 7th Meetup - performance tuning
Islamabad PUG - 7th Meetup - performance tuning
 
Islamabad PUG - 7th meetup - performance tuning
Islamabad PUG - 7th meetup - performance tuningIslamabad PUG - 7th meetup - performance tuning
Islamabad PUG - 7th meetup - performance tuning
 
Out of the box replication in postgres 9.4(pg confus)
Out of the box replication in postgres 9.4(pg confus)Out of the box replication in postgres 9.4(pg confus)
Out of the box replication in postgres 9.4(pg confus)
 
Robert Haas Query Planning Gone Wrong Presentation @ Postgres Open
Robert Haas Query Planning Gone Wrong Presentation @ Postgres OpenRobert Haas Query Planning Gone Wrong Presentation @ Postgres Open
Robert Haas Query Planning Gone Wrong Presentation @ Postgres Open
 

Ähnlich wie Postgresql on NFS - J.Battiato, pgday2016

Gbroccolo pgconfeu2016 pgnfs
Gbroccolo pgconfeu2016 pgnfsGbroccolo pgconfeu2016 pgnfs
Gbroccolo pgconfeu2016 pgnfsGiuseppe Broccolo
 
Espresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom QuiggleEspresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom Quiggleconfluent
 
Flink Forward San Francisco 2018: Stefan Richter - "How to build a modern str...
Flink Forward San Francisco 2018: Stefan Richter - "How to build a modern str...Flink Forward San Francisco 2018: Stefan Richter - "How to build a modern str...
Flink Forward San Francisco 2018: Stefan Richter - "How to build a modern str...Flink Forward
 
OpenStack Havana over IPv6
OpenStack Havana over IPv6OpenStack Havana over IPv6
OpenStack Havana over IPv6Shixiong Shang
 
An FPGA for high end Open Networking
An FPGA for high end Open NetworkingAn FPGA for high end Open Networking
An FPGA for high end Open Networkingrinnocente
 
An Easy way to build a server cluster without top of rack switches (MEMO)
An Easy way to build a server cluster without top of rack switches (MEMO)An Easy way to build a server cluster without top of rack switches (MEMO)
An Easy way to build a server cluster without top of rack switches (MEMO)Naoto MATSUMOTO
 
AusNOG 2016 - The Trouble with NAT
AusNOG 2016 - The Trouble with NATAusNOG 2016 - The Trouble with NAT
AusNOG 2016 - The Trouble with NATMark Smith
 
Cisco usNIC: how it works, how it is used in Open MPI
Cisco usNIC: how it works, how it is used in Open MPICisco usNIC: how it works, how it is used in Open MPI
Cisco usNIC: how it works, how it is used in Open MPIJeff Squyres
 
PuppetConf 2016: High Availability for Puppet – Russ Mull & Zack Smith, Puppet
PuppetConf 2016: High Availability for Puppet – Russ Mull & Zack Smith, PuppetPuppetConf 2016: High Availability for Puppet – Russ Mull & Zack Smith, Puppet
PuppetConf 2016: High Availability for Puppet – Russ Mull & Zack Smith, PuppetPuppet
 
OpenStack at Scale Inside NetApp
OpenStack at Scale Inside NetAppOpenStack at Scale Inside NetApp
OpenStack at Scale Inside NetAppTesora
 
Installation of pfSense on Soekris 6501
Installation of pfSense on Soekris 6501Installation of pfSense on Soekris 6501
Installation of pfSense on Soekris 6501robertguerra
 
Installation of pfSense on Soekris 6501
Installation of pfSense on Soekris 6501Installation of pfSense on Soekris 6501
Installation of pfSense on Soekris 6501robertguerra
 
Linux internet server security and configuration tutorial
Linux internet server security and configuration tutorialLinux internet server security and configuration tutorial
Linux internet server security and configuration tutorialannik147
 
Linux Capabilities - eng - v2.1.5, compact
Linux Capabilities - eng - v2.1.5, compactLinux Capabilities - eng - v2.1.5, compact
Linux Capabilities - eng - v2.1.5, compactAlessandro Selli
 
DoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKDoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKMarian Marinov
 
Secure lustre on openstack
Secure lustre on openstackSecure lustre on openstack
Secure lustre on openstackJames Beal
 
OSMC 2009 | Monitoring and IPv6 by Benedikt Stockebrandt
OSMC 2009 |  Monitoring and IPv6 by Benedikt StockebrandtOSMC 2009 |  Monitoring and IPv6 by Benedikt Stockebrandt
OSMC 2009 | Monitoring and IPv6 by Benedikt StockebrandtNETWAYS
 

Ähnlich wie Postgresql on NFS - J.Battiato, pgday2016 (20)

Gbroccolo pgconfeu2016 pgnfs
Gbroccolo pgconfeu2016 pgnfsGbroccolo pgconfeu2016 pgnfs
Gbroccolo pgconfeu2016 pgnfs
 
Espresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom QuiggleEspresso Database Replication with Kafka, Tom Quiggle
Espresso Database Replication with Kafka, Tom Quiggle
 
Flink Forward San Francisco 2018: Stefan Richter - "How to build a modern str...
Flink Forward San Francisco 2018: Stefan Richter - "How to build a modern str...Flink Forward San Francisco 2018: Stefan Richter - "How to build a modern str...
Flink Forward San Francisco 2018: Stefan Richter - "How to build a modern str...
 
OpenStack Havana over IPv6
OpenStack Havana over IPv6OpenStack Havana over IPv6
OpenStack Havana over IPv6
 
An FPGA for high end Open Networking
An FPGA for high end Open NetworkingAn FPGA for high end Open Networking
An FPGA for high end Open Networking
 
IPSflexresponse-eng
IPSflexresponse-engIPSflexresponse-eng
IPSflexresponse-eng
 
An Easy way to build a server cluster without top of rack switches (MEMO)
An Easy way to build a server cluster without top of rack switches (MEMO)An Easy way to build a server cluster without top of rack switches (MEMO)
An Easy way to build a server cluster without top of rack switches (MEMO)
 
Metasploitable
MetasploitableMetasploitable
Metasploitable
 
AusNOG 2016 - The Trouble with NAT
AusNOG 2016 - The Trouble with NATAusNOG 2016 - The Trouble with NAT
AusNOG 2016 - The Trouble with NAT
 
Cisco usNIC: how it works, how it is used in Open MPI
Cisco usNIC: how it works, how it is used in Open MPICisco usNIC: how it works, how it is used in Open MPI
Cisco usNIC: how it works, how it is used in Open MPI
 
PuppetConf 2016: High Availability for Puppet – Russ Mull & Zack Smith, Puppet
PuppetConf 2016: High Availability for Puppet – Russ Mull & Zack Smith, PuppetPuppetConf 2016: High Availability for Puppet – Russ Mull & Zack Smith, Puppet
PuppetConf 2016: High Availability for Puppet – Russ Mull & Zack Smith, Puppet
 
OpenStack at Scale Inside NetApp
OpenStack at Scale Inside NetAppOpenStack at Scale Inside NetApp
OpenStack at Scale Inside NetApp
 
Installation of pfSense on Soekris 6501
Installation of pfSense on Soekris 6501Installation of pfSense on Soekris 6501
Installation of pfSense on Soekris 6501
 
Installation of pfSense on Soekris 6501
Installation of pfSense on Soekris 6501Installation of pfSense on Soekris 6501
Installation of pfSense on Soekris 6501
 
Linux internet server security and configuration tutorial
Linux internet server security and configuration tutorialLinux internet server security and configuration tutorial
Linux internet server security and configuration tutorial
 
Rac introduction
Rac introductionRac introduction
Rac introduction
 
Linux Capabilities - eng - v2.1.5, compact
Linux Capabilities - eng - v2.1.5, compactLinux Capabilities - eng - v2.1.5, compact
Linux Capabilities - eng - v2.1.5, compact
 
DoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKDoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDK
 
Secure lustre on openstack
Secure lustre on openstackSecure lustre on openstack
Secure lustre on openstack
 
OSMC 2009 | Monitoring and IPv6 by Benedikt Stockebrandt
OSMC 2009 |  Monitoring and IPv6 by Benedikt StockebrandtOSMC 2009 |  Monitoring and IPv6 by Benedikt Stockebrandt
OSMC 2009 | Monitoring and IPv6 by Benedikt Stockebrandt
 

Kürzlich hochgeladen

8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 

Kürzlich hochgeladen (20)

8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 

Postgresql on NFS - J.Battiato, pgday2016

  • 1. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 PostgreSQL on Network File System?
  • 2. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 © Lucasfilm™ PostgreSQL on Network File System?
  • 3. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 What people say about NFS
  • 4. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 What people say about NFS IT’S FAST! CC0 1.0
  • 5. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 PostgreSQL & NFS Myths & Truths Jonathan Battiato www.2ndquadrant.com
  • 6. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Jonathan Battiato Linux SysAdmin & DBA Jonathan Battiato Linux SysAdmin & DBA jonny_lee_84 jonathan.battiato@2ndquadrant.it jonny-lee31 ~$ whoami
  • 7. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Thanks to: Giuseppe Broccolo, PhD PostgreSQL & PostGIS consultant @giubro gbroccolo7 giuseppe.broccolo@2ndquadrant.it gbroccolo gemini__81
  • 8. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 #PGNFS #PostgreSQL #NFS TAGs @jonny_lee_84 @2ndquadrant_it @PGDayIT
  • 9. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Network File System general characteristics Part 1
  • 10. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Network File System (Sun Microsystem® , 1984) ● A protocol for distributed file system – v2, v3, v4 ● servers export the file system, clients mounts the export locally ● Many clients, one server ● High performances through fast network LAN
  • 11. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 NFS v3 vs. NFS v2 ● Strenght – TCP (UDP is still a choice) – Asynchronous communication (caching) – A daemon manages file locking and connections – Larger block size than 8KB (up to 64KB - depends on Kernel) ● Weakness – Stateless (NFS) – Plain text data transmissions – Host authentication only – Dynamic port assignment
  • 12. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 NFS v4 vs. NFS v3 ● Partial solutions – Single port (2049) easy to apply firewall rules to filter NFS traffic – Authentication and locking deamons included in the protocol – operations are always stateful – UDP not allowed anymore NFS v4 is the default on RHEL 6
  • 13. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Client-Server Optimization ● Block size (wsize, rsize – nfs protocol level) Requests are organised in data blocks exchanged between client & server ● NFS relies on TCP or UDP protocols (transport level) UDP is statless, TCP is stateful TCP choose automatically the packet size ● Packet size & MTU (network level) Packets size can be optimised to transfer blocks within the network: jumbo frames CHOOSE WISELY!
  • 14. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Main concerns about synchronisation ● NO Time synchronisation Use NTP! ● File Locking v2 does not support file locking v3 uses daemon for locking, performances drop when in use ● Delayed write cache Caching writes could cause data loss Without write cache performances drop ● Read (metadata) cache NFS server may show not-updated attributes, any program that relies on file attributes may not work
  • 15. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Part 2 NFS & PostgreSQL
  • 16. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 NFS & PostgreSQL www.postgresql.org/docs/9.6/static/creating-cluster.html#CREATING-CLUSTER-NFS ● NFS disks are completely transparent for PostgreSQL ● If NFS client/server implementation does not provide standard file system semantics, this can cause reliability problems ● PostgreSQL advices – NFS mount options ● avoid soft-mounting: hard – General mount options ● avoid asynchronous writes: fsync LAN
  • 17. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 hard-mount option NFS calls must be retried indefinitely both data and WAL entries sequentiality may not be preserved write cache WALs have to be flushed as a database action is committed many processes are involved during WALs flush on disk → several NFS clients → WAL entries sequentiality may not be preserved attribute cache many processes are involved during WALs flush on disk → several NFS clients → files attributes may not have consistent views Sources of corruptions
  • 18. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Synchronous writes sync vs. fsync=on: – NFS v2: ● if sync is specified, the server will not complete a request until both data/metadata are written to the disk – NFS v3 / v4: ● if sync is specified, the server will complete a request returning the status of the write: – NFS_FILE_SYNC, NFS_DATA_SYNC, NFS_UNSTABLE ● data is effectively forced to be flushed on disk once a sync method system call is issued – be careful to set fsync=on
  • 19. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Reliability vs. Performance ● NFS exports must be mounted with safe options ● Are these option fine for a database? – is the performance deeply impacted? – is data safely guaranteed in case of crash?
  • 20. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Part 3 NFS & PostgreSQL performance & reliability benchmarks
  • 21. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 The customer NetApp FAS 8080 Full Flash Clustered Mode physical host storage 2 CPUs x 8GB RAM RHEL 6 Kernel v. 2.6.32 PostgreSQL 9.5.3 Ethernet 10Gb/s No routers
  • 22. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Reliability tests ● try different crash scenarios under high concurrency load, check if the instance recovers properly, then execute a VACUUM FULL: – kill -9 to postmaster – forced reboot through kernel SysReq: ● echo 1 > /proc/sys/kernel/sysrq ; echo b > /proc/sysrq-trigger – power off of the VM from the VMWare vSphere® remote panel – kill the TCP/IP connections through tcpkill [root@pgsql] ~# tcpkill host X.X.X.X tcpkill: listening on eth0 [host X.X.X.X]
  • 23. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 ● try different crash scenarios under high concurrency load, check if the instance recovers properly, then execute a VACUUM FULL: – kill -9 to postmaster – forced reboot through kernel SysReq: ● echo 1 > /proc/sys/kernel/sysrq ; echo b > /proc/sysrq-trigger – power off of the VM from the VMWare vSphere® remote panel – kill the TCP/IP connections through tcpkill [root@pgsql] ~# tcpkill host X.X.X.X tcpkill: listening on eth0 [host X.X.X.X] Reliability tests
  • 24. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 ● try different crash scenarios under high concurrency load, check if the instance recovers properly, then execute a VACUUM FULL: – kill -9 to postmaster – forced reboot through kernel SysReq: ● echo 1 > /proc/sys/kernel/sysrq ; echo b > /proc/sysrq-trigger – power off of the VM from the VMWare vSphere® remote panel – kill the TCP/IP connections through tcpkill [root@pgsql] ~# tcpkill host X.X.X.X tcpkill: listening on eth0 [host X.X.X.X] Reliability tests
  • 25. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 ● try different crash scenarios under high concurrency load, check if the instance recovers properly, then execute a VACUUM FULL: – kill -9 to postmaster – forced reboot through kernel SysReq: ● echo 1 > /proc/sys/kernel/sysrq ; echo b > /proc/sysrq-trigger – power off of the VM from the VMWare vSphere® remote panel – kill the TCP/IP connections through tcpkill [root@pgsql] ~# tcpkill host X.X.X.X tcpkill: listening on eth0 [host X.X.X.X] Reliability tests
  • 26. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 ● try different crash scenarios under high concurrency load, check if the instance recovers properly, then execute a VACUUM FULL: – kill -9 to postmaster – forced reboot through kernel SysReq: ● echo 1 > /proc/sys/kernel/sysrq ; echo b > /proc/sysrq-trigger – power off of the VM from the VMWare vSphere® remote panel – kill the TCP/IP connections through tcpkill [root@pgsql] ~# tcpkill host X.X.X.X tcpkill: listening on eth0 [host X.X.X.X] Reliability tests
  • 27. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 T. Vondra – test the persistence of recycled WALs in ext4 – update attributes of recycled WALs flush them on disk through→ fdatasync – fdatasync does not force the flush of metadata the update may get lost after a crash→ – logged changes are contained in file “in the future” data loss!→ github.com/2ndQuadrant/ext4-data-loss ● INSERT/UPDATE new records in parallel and synchronously on the db and on a file ● simulate a crash compare db & file contents after the crash recovery→ Reliability tests
  • 28. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Check NFS behaviour for recycled WALs (file attributes caching) – noac ● – ac ● Reliability tests
  • 29. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Check NFS behaviour for recycled WALs (file attributes caching) – noac ● several tests, no data loss! – ac ● Reliability tests
  • 30. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Check NFS behaviour for recycled WALs (file attributes caching) – noac ● several tests, no data loss! – ac ● several tests, no data loss! Reliability tests
  • 31. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Check NFS behaviour for recycled WALs (file attributes caching) – noac ● several tests, no data loss! – ac ● several tests, no data loss! Reliability tests
  • 32. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 All tests passed, but this does not ensure that it is totally safe! Reliability tests
  • 33. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Enhance reliability for PostgreSQL DBs ● allow page checksums (9.3+): initdb –data-checksums ... – execute CRC32 calculation for each 8KB data block ● a checksum failure means that the data block is corrupted – force wal_log_hint=true ● write the entire 8KB page to the WAL, even for hint bits modification – take into account the impact to the performance: ● R: checksum extra-calculation every 8KB ● W: increase the amount of information logged into WALs
  • 34. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Enhance performance for PostgreSQL DBs ● sync’ed writes are slow, even if NFS caching is enabled ● if possible, consider asynchronous commit: – let the server return success as soon as the transaction is logically completed ● synchronous_commit=off – it can be set per user/session ● WAL entries will be flushed in a second moment, but not later than 3x wal_writer_delay ● in case of crashes, the DB can be recovered in a consistent state, but there could be a window of data loss
  • 35. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 file system I/O speed: – reads: 700MB/s – writes: 700MB/s synchronous_commit=on: – INSERT: ● noac ~ ac (single & multi client) – SELECT: ● noac ~ 16x ac DB commit rate and SELECT rate: synchronous_commit=off: – INSERT: ● noac~ 8x ac (single & multi client) – SELECT: ● noac ~ 16x ac
  • 36. Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Conclusions ● NFS is not natively thought for reliability purposes – the protocol is thought to enhance the performance – NFS v4 is preferable ● PostgreSQL allows to adopt many countermeasures – it is at least able to promptly detect data corruptions ● PostgreSQL can be used with NFS – ready to accept minimal data loss
  • 37. 11/06/2010 ITPUG - ConfSL 2010 37Jonathan Battiato 2ndQuadrant Italia @2ndquadrant_it @jonny_lee_84 PGDay.IT 2016 - 10th edition Prato Dec 13th 2016 Creative Commons license This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License https://creativecommons.org/licenses/by-nc-sa/4.0/ © 2016 2ndQuadrant Italia – http://www.2ndquadrant.it