🤖 AI Summary
This work addresses the performance bottleneck in skip lists caused by cache misses and proposes Foresight, a lightweight and easily integrable cache-friendly optimization. Foresight improves node layout by predicting access patterns and incorporates a tailored concurrency control mechanism to effectively reduce cache misses. The approach is compatible with a wide range of both sequential and concurrent skip list implementations. Experimental results demonstrate that Foresight achieves up to a 45% throughput improvement in microbenchmarks and delivers a 15% end-to-end performance gain in the DBx1000 in-memory database system.
📝 Abstract
A skiplist is a fundamental data structure widely used in systems and applications for indexing data stores. In this work, we introduce Foresight, a cache-friendly skiplist optimization. Extending Foresight to concurrent settings introduces significant synchronization challenges that we identify and address. Foresight is a surgical optimization, easy to integrate into a wide variety of skiplist designs. We apply it to one sequential and three concurrent skiplist designs and observe throughput improvements of up to 45% in microbenchmarks. When applied to a skiplist-based index in the DBx1000 in-memory database, Foresight yields end-to-end performance gains of up to 15%.