The Joy of Building Large Scale Systems • Suhail Patel • YOW! 2023
It's very interesting. speech Suhail Patel, Senior Staff Engineer at Monzo. It’s about how latency numbers have changed. (lookLatency Numbers Every Programmer Should Know") productivity in general in recent years. Importantly, these changes directly affect the design and operation of large-scale and loaded systems. The author goes into a lot of detail and Talks about b-tree+ in databases (I wonder what he doesn't say about LSM and SSTables.) Shows how the speed of the disks has changed: HDD (200 mbps), SDD (550 mbps), NVMe (3000 mbps)
- Mentions changes to the CPU (Moore's law is not about increasing the power of one core, but about increasing the number of cores.) + the emergence of ARM processors, which give more power per cost compared to x86-64
- Talks about increasing network bandwidth (c 1Gbps to tens of Gbps) And the emergence of custom chips such as TPU from Google (tensor processor unit) Remembers the old predictions that despite the increase in the power of computers, software will always find where to dispose of this power. (usually in extra levels of abstraction over iron levels) Discuss the approach with the work type thread per core (Comparison of shared everything arch vs shared nothing arch at processor, core and memory access level)Here is a story about the allocation of one core to work with the network and how it helps with tail latency. Seastarwhich is used in Scylla (Cassandra, but only in C++, not Java)about io_uringwhich popped in and libuv Advertise Rust as a system programming tool and show how easy it is to use with Python (Example of date parsing on an industrial scale) Talks about new tricks with garbace collection, starting with Java 17Next on the eBPF (me told Interesting documentary about this project) Talks about simply speeding up JSON parsing, optimizing weight loading with llama and things like that by understanding low-level concepts. And ends on a high note, urging us to better understand how the hardware works under our software.
Many of the systems (apps, services, databases, caches, queues) that we build/rely on are grounded on quite poor assumptions for the hardware of today
Software can keep pace, but there’s some work needed to yield huge results, power new kinds of systems and reduce compute costs
#Software #Architecture #DistributedSystems #SystemEngineering #SystemDesign #Engineering #Devops #SRE