-
Notifications
You must be signed in to change notification settings - Fork 0
Roadmap
The project currently is defined by two phases, currently the project has come to the end of first phase. Phases 2-5 are subject to change.
A single app instance with a disc - the design in this phase is single-threaded, and the reason behind it is to show a proof of concept (about the flows - ). That essentially means that there would be a single page-fault handled at a given moment at the most, and when evictions are executed (by LPET), they block user-code (for more info - ). User-code is compiled together with EDM code, and is assumed to be written in C/C++ (for more assumptions - ).
A single app instance with a single external memory units (AKA EMU). Instead of evicting to disc, DMS is now part of an EMU, which has its own memory, to which pages are to be evicted. EMU has three main modules:
- DMS - Disc management server
- XPET - external low priority eviction thread, handles store requests which are triggered by app
- Memory - where pages are to be stored to / loaded from
A single app instance with multiple external memory units. The major change is that pages can be evicted to each of the EMUs. In this phase, a page is expected to be stored only in a single EMU.
Several app instances with several EMUs.
One app instance with a replicated external memory server - the phase is aimed to solve the delay involved with page request from EMU. App sends request to multiple identical EMUs (in the sense that they store the exact same pages) and waits for the first one to arrive.