Presented by:

Shawn Sangwook Kim is a co-founder and CEO at Apposha, which is building PostgreSQL extension for scalable file I/O. Before founding Apposha, Sangwook worked at Computer Systems Laboratory in Sunkyunkwan University. His main work was developing operating system-level techniques for database performance. Specifically, Sangwook has over 9 years experience in analyzing and optimizing Linux kernel for open source databases including PostgreSQL, MongoDB, MySQL, and Redis.

He spoke at various PostgreSQL Conferences in the past including -

PGDay Seoul - 2017

PGConf Asia - 2017

PGDay Seoul - 2018

PGConf Asia - 2019

Postgres Conference Silicon Valley - 2019

PGDay Seoul - 2019

PGConf Russia - 2020

C985cee81783fe248403fb8bbd64ce01

Byeonghun Hyeon

Apposha
No video of the event yet, sorry!
Download the Slides

Cloud storage has some unique characteristics compared to traditional storage mainly because it is virtualized and controlled by software. One example is that AWS EBS shows higher throughput with larger I/O size up to 256 KiB without hurting latency. Hence, a user can get only about 4 MiB/sec with 1,000 IOPS EBS volume if the I/O request size is 4 KiB, whereas a user can get about 250 MiB/sec if the I/O request size is 256 KiB. This is because EBS consumes one I/O in a given IOPS budget for every I/O request regardless of the I/O size (up to 256 KiB). Unfortunately, PostgreSQL cannot exploit the full potential of cloud storage because PostgreSQL has designed without considering the unique characteristics of cloud storage.

In this talk, I will introduce the AppOS extension that improves the throughput of a write-intensive workload by 10x by transparently making PostgreSQL cloud storage-native. AppOS works like a storage driver that efficiently exploits the characteristics of cloud storage, such as I/O size dependency to storage throughput and latency, atomic write support in cloud block storage, and fast, but non-durable local SSDs. To do this, AppOS comprises a Linux-compatible file I/O stack including virtual file system, page cache, block I/O layer, cloud storage driver. On top of the file I/O stack, syscall module supports registering pre- and post-handler for file I/O-related system calls in order to transparently work without modifying PostgreSQL codes.

I will focus on presenting key use cases and performance results of the AppOS extension after explaining the internals. Specifically, I will show the performance results of OLTP and some batch workloads using standard benchmarking tools like pgbench and sysbench. I will also present performance results and implications on multiple clouds including AWS, GCP, and Azure. Lastly, I will show the extensibility of the AppOS extension by showing several results with TimescaleDB, CitusDB, and MariaDB as well as PostgreSQL.

Date:
2020 March 26 11:40
Duration:
50 min
Room:
Ziegfeld
Conference:
Postgres Conference 2020
Language:
Track:
Ops and Administration
Difficulty:
Medium