BIG: C++ Strategies, Data Structures, and Algorithms aimed at Scalability.
Current trends suggest that horizontally-scaled, highly distributed, service-oriented architectures—of the kind used by Google, Facebook, Yahoo, and others—will become increasingly prevalent. Today’s advanced knowledge of scalability of distributed systems will most likely become tomorrow’s elementary topics. Such knowledge is likely of particular interest to C++ developers because—unlike in recent history—use of an efficient system-level language with strong modeling capabilities will translate directly to a good scaling factor (e.g. users per server and functionality per user) or, conversely, dramatic savings (in servers count, power consumed, maintenance, and more). The free lunch is over, so we better figure what’s for dinner.
Life in a (server) farm is harsh. You need to use quite a few non-intuitive strategies a C++ programming style because minute choices may cause large visible differences. For example, under certain circumstances, if you need a hash, you can’t get away with a map without ruining your performance. Several less known data structures and algorithms are necessary for coping.
This talk explores a broad range of distributed systems topics from service oriented architectures to reliability to exotic-yet-useful tidbits such as fast set intersection (“galloping search” is not only about Black Friday!), numeric kernels, Bloom filters, and more.