High performance in-memory key-value caches are indispensable components in large-scale web architecture. However, the limited memory capacity and high power consumption of memory motives researchers and developers to develop key-value cache on SSD, where SSD is considered as an extension of limited memory.
In this post, I will talk about the general ideas about KV cache on SSD based on Twitter’s fatcache and further discuss the issues with this traditional approach.
Background Twitter’s fatcache and many other modern memory allocators, such as Google tcmalloc and Linux slab allocator are based on the idea of slab allocator. You can get the comprehensive detail about slab allocator in paper titled The slab allocator: An object-caching kernel memory allocator. I am not willing to delve into too many trivial details here, but overall, slab allocator is a kind of segregated list list allocator. The term slab is actually a continuous memory area, which is the basic management unit of slab allocator. A slab is further divided into slots of the same size which are used to store objects and other metadata. Besides, a slab uses a freelist to keep track of the allocation status of slots, which is the key of allocation and deallocation.
这个工作太神奇了,阅读 Understanding, detecting and localizing partial failures in large system software 的时候,在思考怎样检测 silent semantic violation,论文里说一个难点就是不知道正确的语义是什么,我想到也许可以用 LLM 推测。完全没想到可以用论文如此简洁的方式推测。 论文的思路很简单,从系统的 regression test 入手。尽管这些 test 通常是真的特定的 bug 的,但这些 test 仍然蕴含了系统的语义。论文要做的就是从 regression test 中推导出这些语义,并在运行时检测系统是否违背了