Speaker: Tianzheng Wang, Simon Fraser University (Talk virtually over zoom)
Abstract: As the speed gap between memory and CPU continues to widen, memory accesses are becoming a major overhead in pointer-rich data structures, such as B-trees, hash tables and linked lists, which are widely used to in modern database systems. Software prefetching can be effective in hiding such stalls, by careful scheduling and batching that load the needed memory blocks in advance, but requires various changes in the code base with a vastly different multi-key interface and was mostly piecewise solutions. In this talk we will highlight our experience of tackling these challenges using recently standardized coroutines in C++20 in a full databae engine. The crux is a new "coroutine-to-transaction" paradigm that simplifies application development with backward compatibility, while retaining the performance benefits of software prefetching.
Bio: Tianzheng Wang is an assistant professor in the School of Computing Science at Simon Fraser University (SFU) in Vancouver, Canada. He works on the boundary between software and modern hardware (in particular persistent memory, manycore processors and next-generation networks). His current research focuses on database systems and related areas that impact the design of data-intensive systems, such as operating systems, distributed systems and synchronization. Tianzheng Wang received his Ph.D. and M.Sc. degrees in Computer Science degrees from the University of Toronto in 2017 and 2014, respectively (advised by Ryan Johnson and Angela Demke Brown). He received his B.Sc. in Computing (First Class Honours) degree from Hong Kong Polytechnic University in 2012. Prior to joining SFU, he spent one year (2017-2018) at Huawei Canada Research Centre (Toronto) as a research engineer. His work has been recognized by a 2021 ACM SIGMOD Research Highlight Award, a 2019 IEEE TCSC Award for Excellence in Scalable Computing (Early Career Researchers) and nominations for best/memorable paper awards.