Speaker
Alexandra (Sasha) Fedorova
Summary
Sasha will share with us her experiences optimizing the MongoDB storage engine
for modern fast storage devices. Sasha brings with her a wealth of experience
with significant contributions to NUMA, memory allocators,
databases and more.
Sasha is a professor at the University of British Columbia and a consultant at MongoDB.
Recommended reading before attending
- Getting storage engines ready for fast storage devices
- Why mmap is faster than system calls
Speaker
Jeff Roberson
Summary
Jeff Roberson will share with us his experiences in the design and implementation
of a novel safe memory reclamation mechanism that integrates directly into the FreeBSD
kernel memory allocator. This is an alternative to RCU and epoch reclamation for many
use-cases and is able to achieve 2X-6X better performance!
Jeff has made significant contributions
to open-source and is the author of the FreeBSD ULE scheduler.
Recommended reading before attending
- Making Lockless Synchronization Fast: Performance Implications of Memory Reclamation (Hard, McKenney, and Brown, 2006)
- The Slab Allocator: An Object-Caching Kernel Memory Allocator (Bonwick, 1994)
- Magazines and Vmem: Extending the Slab Allocator to Many CPUs and Arbitrary Resources (Bonwick, 2001)
- subr_smr.c
- smr.h
Speaker
Matt Fleming
Summary
Many high-performance and real-time scenarios need to run
tasks without interruption from either other tasks or the underlying
kernel, and task isolation has been a common feature in RTOSes for
years. Linux has improved its support for this use case for a long
time and each improvement has brought the goal of running userspace
tasks without interruption closer to reality. This talk will briskly
cover the last 18 years of Linux kernel development relating to task
isolation, finishing with the state of the art today and the latest
version of the "task_isolation mode" patches on the Linux kernel
mailing list. Expect some Linux kernel development history and
explanation of kernel internals.
Matt is a senior
performance engineer at SuSE and has made several significant contributions
including improving Linux kernel scheduler performance by up to 20% for AMD EPYC.
Recommended reading before attending
- https://lore.kernel.org/linux-api/07c25c246c55012981ec0296eee23e68c719333a.camel@marvell.com/">
- LWN: A full task-isolation mode for the kernel
- LWN: Dropping the timer tick — for real this time
- SUSE Linux's Shielding Linux Resources
Speaker
Francois Saint-Jacques
Summary
jitmap is a small library providing an execution engine for logical binary
expressions on bitmaps. Some examples where this is relevant:
* In search engines, posting lists (sorted sequences of integers) are encoded
with bitmaps. Evaluating a search query (logical expression on
keywords) can be implemented with logical expression on bitmaps.
* In columnar databases, selection vectors (index masks) are encoded with
bitmaps, the results of predicate on column expressions. The bitmaps are then
combined in a final bitmap.
* In stream processing systems with rule engines, e.g. adtech bid requests
filtering with campaign rules, bitmaps are used as a first-pass optimization
to lower the number of (costly) rules to evaluate on each incoming event.
jitmap compiles logical expressions into native functions with signature
void fn(const char**, char*)
. The functions are optimized to minimize memory
transfers via operator fusion and uses the fastest vector instruction
set provided by the host.
Francois works full time on R Studio on Apache Arrow
and otherwise has worked on columnar database internals for several years now.
Recommended reading before attending
- Bitmap Index Design and Evaluation (Chan and Ioannidis, 1998)
- The "Jamming" section (pp. 8-11) of A catalogue of optimizing transformations (Allen and Cocke, 1971)
- The code itself
- Faster Population Counts Using AVX2 Instructions
- LLVM Tree-Height-Reduction optimization pass