Efficient Software Rejuvenation of In-memory Key-Value Storages

Yuto Jumonji, Hiroshi Yamada · 2017

Software rejuvenation is a simple but powerful method for improving the availability of computer systems. Software rejuvenation refreshes the running states of an application by restarting it. This method faces a challenge to apply it to a new type of applications, in-memory databases (DBs). Compared to stateless applications such as web servers, rejuvenating in-memory DBs is significantly expensive. Since inmemory DBs typically allocate a large amount of memory and manage numerous running states such as DB block caches and key-value pairs in their own memory regions, their rejuvenation involves the loss of running states preserved in memory regions, resulting in causing severe performance overhead. This paper presents Rejuvemcached, which allows us to perform efficient software rejuvenation with lower performance overhead. Our key insight is to decouple data content objects from memory objects; Rejuvemcached treats its key-value items as data content objects. During the rejuvenation, Rejuvemcached preserves them and rebuilds the other memory objects that are a major source of software aging. We prototyped Rejuvemcached on memcached 1.4.25 and our preliminary experimental results show that our prototype efficiently performs software rejuvenation.

Read the paper · More papers on PaperTik