This was a fantastic talk that discusses some optimizations that they’ve had to make in order to ensure features can go out that will scale from the start. Two things really stuck out, which I hadn’t really considered previously:
LIFO instead of FIFO can get you much better cache utilization, especially when you consider things like malloc’s per thread cache.
Adaptive LIFO / Controlled Delay in which requests that have been waiting can continue to wait, but new requests coming in should be serviced as quickly as possible. The use case talked about is UX / Facebook specific, but I can think of lots of cases where this makes total sense.
This was a fantastic talk that discusses some optimizations that they’ve had to make in order to ensure features can go out that will scale from the start. Two things really stuck out, which I hadn’t really considered previously: