Assorted links for Friday, November 22:
- Kernel optimization with BOLT
Generally, developers think about how the data structures for their programs will be arranged in memory; it is less common for them to consider how the code is arranged. There are exceptions, including the Linux kernel developers, but most times the focus is on the data cache. The instruction cache is much smaller than the data cache and has not grown much over time, maybe doubling from 32KB to 64KB on Intel CPUs over the last 20 years. But, for large applications that do not spend most of their time in tight loops, the layout of code in memory matters a lot, so BOLT can make a major difference, he said.
- Cache vs. Database: Has Performance Converged?
Both memcached and ScyllaDB maximized disks and network bandwidth while being stressed under similar conditions, sustaining similar performance overall.
- Deterministic Simulation Testing
- How We Built a Self-Healing System to Survive a Terrifying Concurrency Bug At Netflix
- Optimizers: The Low-Key MVP
The query optimizer is an important part of any analytical database system as it provides considerable performance improvements compared to hand-optimized queries, even as the state of your data changes.