0sim simulates the behavior of system software (e.g. kernels) on huge-memory systems (e.g. terabytes of RAM).
System softwares are not ready for huge-memory systems. Memcached encounters OOM at 2TB with plenty of memory left.
Linux allows setting vm_dirty below 1% for large memory machines. Thus, for a system with 1TB memory, the system will flush 10GB data.
A machine with multiple terabytes of memory is not common for now. Thus, 0sim is here to simulate one.
There are two ways to simulate a system with a larger memory than the host system:
- Store on disk
- Memory compression
0sim choose the later for better performance. This choice is based on the fact that many workloads are data-oblivious. For example, it is okay to save just zeros in a key-value database to verify the correctness. Then, the zeros will have a good compression ratio.
The source code of the simulator is here.