TreeSLS : A Whole-system Persistent Microkernel
with Tree-structured State Checkpoint on NVM



TreeSLS
Whole-system persistence promises simplified application deployment and near-instantaneous recovery. This can be implemented using single-level store (SLS) through periodic checkpointing of ephemeral state to persistent devices. However, traditional SLSs suffer from two main issues on checkpointing efficiency and external synchrony, which are critical for low-latency services with persistence need.
We note that the decentralized state of microkernel-based systems can be exploited to simplify and optimize state checkpointing. To this end, we propose TreeSLS, a whole-system persistent microkernel that simplifies the whole-system state maintenance to a capability tree and a failure-resilient checkpoint manager. TreeSLS further exploits the emerging non-volatile memory to minimize checkpointing pause time by eliminating the distinction between ephemeral and persistent devices. With efficient state maintenance, TreeSLS further proposes delayed external visibility to provide transparent external synchrony with little overhead. Evaluation on microbenchmarks and real-world applications (e.g., Memcached, Redis and RocksDB) show that TreeSLS can complete a whole-system persistence in around 100 𝜇s and even taking a checkpoint every 1 ms with reasonable overhead to applications.
TreeSLS Architecture
TreeSLS Architecture


Publications

TreeSLS: A Whole-system Persistent Microkernel with Tree-structured State Checkpoint on NVM. Fangnuo Wu, Mingkai Dong, Gequan Mo, Haibo Chen. The 29th ACM Symposium on Operating Systems Principles, Koblenz, Germany, October 2023.
If you use TreeSLS in your work or research, please let us know about it. We also encourage you to reference our paper.


Software
The TreeSLS source code is distributed with Mulan Permissive Software License, Version 1. The copyright is held by Shanghai Jiao Tong University. TreeSLS is provided "as is" without any warranties and conditions of any kind. Note that some user-space services and applications (especially ported applications) have their own licenses, as specified in their source-code directories.
You can check out the latest code of TreeSLS from IPADS's GitLab server.

Here is the basic building instruction:

# Clone the source repo
git clone https://ipads.se.sjtu.edu.cn:1312/opensource/treesls.git
cd treesls

# Build the OS
./quick-build.sh

# Run with Qemu
./build/simulate.sh



People


Contact Information
Please contact Fangnuo Wu or Mingkai Dong for further information. Welcome to let us know about bug reports and suggested improvements, while we may not be able to provide technical support timely.