Run PostgreSQL in Warp Speed Using NVMe/TCP in the Cloud - Sagy Volkov, Lightbits
PostgreSQL as a SQL engine can accommodate a very high-transaction rate, but as your data grows and the number of connections and queries increases, there is a challenge for the storage to keep up with the SQL engine.
To the rescue comes NVMe over TCP (or NVMe/TCP). Developed by Lightbits Labs in 2016 and donated to the Linux community, it is the next evaluation of using NVMe based storage over TCP Fabric. NVMe/TCP simplifies how you interact with remote NVMe devices (targets) and allows your PostgreSQL storage to consume fast storage very easily.
In this session I will explain the core concept of the NVMe/TCP protocol, current storage providers that can use it, how you can consume it in Kubernetes (super easy), and discuss the possibilities of using NVMe/TCP in the cloud.
The session will also include a performance comparison of a few storage that are available in AWS and even a live demo of how PostgreSQL can run super fast - warp speed fast - in AWS.
3. Agenda
● Intro to NVMe/TCP
● Why NVMe/TCP?
● Some performance comparison (and how I took them).
● Questions
4. NVMe/TCP - history lesson…
▪ NVM Express™ (NVMe) standard released in March 2011
̶ Architecture, command set, and queueing interface for PCIe SSDs
• Optimized for direct attached NVM PCIe® SSDs
• The goal was a single interface that is scalable from client to enterprise
▪ NVMe™ over Fabrics (NVMe-oF™) standard released in June 2016
̶ Extends the architecture, command set, and queueing interface of NVMe to fabric attached
storage
̶ Two initial transport binding specifications
• RDMA (Infiniband, RoCE, iWARP)
• Fibre Channel
▪ TCP transport binding specification (NVMe™/TCP) specified for NVMe-oF in November
of 2018
5. NVMe/TCP - more history…
▪ Also in 2018, Lightbits Labs introduced the first storage solution that was
designed and built for NVMe/TCP
▪ Added to the Linux kernel in 4.10
▪ Part of all major Linux enterprise distros.
▪ Today: Lightbits, Ceph, Dell, NetApp, Pure Storage and more.
7. Why NVMe/TCP (or why do we need
another NVMe-oF transport?)
▪ PCIe®
̶ Great for direct attached NVMe SSDs
̶ Does not scale well to large topologies
▪ RDMA (Infiniband, RoCE, iWARP) and Fibre Channel
̶ Provides a high degree of scalability, but requires special networks and hardware
▪ TCP
̶ Ubiquitous (does not require special networks or hardware)
̶ Scalable allowing large scale deployments and operation over long distances
̶ Can provide performance (throughput and latency) that is comparable to direct
attached NVMe SSDs
8. Things to consider:
● Remember that you can use NVMe/TCP, wherever you
have TCP available. Simple as that.
● Instance in the cloud usually have higher bandwidth for
network than for native storage from the cloud provider.
● Network resources are billed differently depending on
your cloud provider (ingress/egress)