BSD, illumos, bhyve, OpenZFS

Optimising kernels and file systems for PostgreSQL, a cross-project talk

K.3.201
Thomas Munro
<p>In this talk I will: * introduce the unusual I/O needs of databases and PostgreSQL's new I/O architecture and direction * show how PostgreSQL works on FreeBSD, NetBSD, OpenBSD and illumos today * compare those systems' available support for native asynchronous I/O with Windows and Linux * speculate on the pathways that need to be drilled through their kernels to achieve the state of the art * speculate on the API design constraints and options I see * discuss OpenZFS's exciting new direct I/O and block cloning features and their relevance to PostgreSQL * show-and-tell some experimental patches for full-featured direct I/O on FreeBSD's UFS * show-and-tell some experimental patches for PostgreSQL with FreeBSD's native AIO and <code>kqueue</code></p> <p>My goal is to provide a database hacker's take on the I/O concerns that "go together" and explain how and why they are linked. It is written for a cross-project kernel and file system hacker audience, a rare opportunity provided by this FOSDEM devroom. The presentation begins with a high-level problem space overview, before diving down to user space, VFS and device levels to discuss the options as I see them. It includes some exploratory patches developed over the past few years of working full time on PostgreSQL I/O, porting and testing on ~10 operating systems, and hacking on FreeBSD for fun and education.</p> <p>It is a 25 minute talk, broken up into 5 subtopics consisting of 5 one-minute slides, and the pace will be fast:</p> <ul> <li>What databases want and why, a 30,000 foot overview </li> <li>User space programming interfaces for asynchronous I/O</li> <li>Kernel interfaces for asynchronous I/O</li> <li>PostgreSQL on FreeBSD/ZFS</li> <li>Using FreeBSD/UFS as a starting point for database/kernel interface exploration</li> </ul>

Additional information

Live Stream https://live.fosdem.org/watch/k3201
Type devroom
Language English

More sessions

1/31/26
BSD, illumos, bhyve, OpenZFS
Thibault Payet
K.3.201
<p>The gaming industry, outside of console and mobile games, is mainly focused on three operating systems: Windows, GNU/Linux, and macOS. This leaves FreeBSD with a library mostly restricted to open-source native games. These restrictions may decrease the interest of new and current gaming users for FreeBSD as their main OS as they are accustomed to having access to a wider variety of games (as is the case for GNU/Linux ). Today, thanks to a handful of contributors and through the use of ...
1/31/26
BSD, illumos, bhyve, OpenZFS
Paul Floyd
K.3.201
<p>FreeBSD has first tier level support in Valgrind. Valgrind on illumos works fairly well. They are both supported "out of the box" in upstream Valgrind.</p> <p>The other BSDs are not in the picture, which is a shame since there aren't too many fundamental differences between the BSDs.</p> <p>This talk will be about what needs to be done in order to be able to get Valgrind up and running on DragonFly/Net/Open BSD. I'd like it to be both a source of information for anyone that would like to work ...
1/31/26
BSD, illumos, bhyve, OpenZFS
K.3.201
<p>NetBSD 11 introduces a new MICROVM kernel that can boot in QEMU in about 10 ms, thanks to PVH support, MMIO VirtIO devices, and various low-level optimisations. Building on this foundation, we created <a href="https://smolBSD.org">smolBSD</a>, a meta-OS and microVM generator that assembles tiny, versatile and fully isolated services using the MICROVM kernel plus selected pieces from NetBSD and pkgsrc. Recent work by Pierre “khorben” Pronchery enables even faster startup by embedding the ...
1/31/26
BSD, illumos, bhyve, OpenZFS
Till Wegmüller
K.3.201
<p>The OpenSolaris Operatingsystem came with one Component that always fascinated me and I am using extensively to package the OpenIndiana Operating System. This talk shows IPS History (why it was created and how) What it currently can do. The Concepts used (Repositories, Packages, FMRI, Facets, Variants, and Manifests, History) and what you can do with them and what IPS does with them. And why Self-Assembly is a major factor in that. As last section I will also talk about porting IPS to rust ...
1/31/26
BSD, illumos, bhyve, OpenZFS
K.3.201
<p>Swift is a general-purpose programming language often associated with app development for the Apple ecosystem. Over the years, Swift has extended its reach and is now a cross-platform language with support for Linux, Windows, and more recently, Android. Now, we are bringing Swift to FreeBSD and there are truly devils in the details. How do you start porting a language to a new environment? How do you debug issues before you have a working debugger? This is the story of how we overcame ...
1/31/26
BSD, illumos, bhyve, OpenZFS
K.3.201
<p>It is no secret that certain applications, such as firewalls, routers, and hardened web services, perform best on BSD systems. Yet Linux dominates cloud infrastructure, forcing users to either port these applications or run them as full BSD virtual machines, each requiring special handling and management. This talk presents <code>urunc</code>, a container runtime for unikernels and single-application kernels that enables BSD workloads to run efficiently in Linux environments. ...
1/31/26
BSD, illumos, bhyve, OpenZFS
K.3.201
<p>gotwebd is the web interface for browsing Git repositories provided as part of Game of Trees—a project grown out of the OpenBSD community whose goal is to develop a new version control system that relies on prior art, takes what makes Git's design great, leaves out the parts that make Git hard for us to use, and invents new parts for an end result that serves our needs.</p> <p>Other than the most obvious features, such as browsing repositories, reading commit logs, and inspecting diffs, ...