Research Article

MultiCache: Multilayered Cache Implementation for I/O Virtualization

Algorithm 1

MultiCache guest-level component.
()   calculate the hash keys of and to retrieve their file metadata from the hash and history tables;
()   if (not found) then insert their metadata to the hash table and the history table end if
()   increase the usage counts of and by one;
()   if (the usage count of USAGE_THRESHOLD) then
()      if (∈read map and its position in read map is where ) then
()         ++; move the metadata of from th position to th position of read map;
()      else if (∈write map) then
()         ++; move the metadata of to th position of read map; delete it from write map;
()      else ++; insert the metadata of to th position of read map end if
() end if
() if (the usage count of USAGE_THRESHOLD) then
()   if (∈write map and its position in write map is where ) then
()        ++; move the metadata of from th position to th position of write map;
()   else if (∈read map) then
()        ++; move the metadata of to th position of write map; delete it from read map;
()   else ++; insert the metadata of to th position of write map end if
() end if
() for each time epoch
() receive the current guest VM memory size from the resource monitor;
() check the condition specified in (1);
() if (the condition is not satisfied) then
()     flush out files depicted in the section or until memory pressure is eliminated;
() end if
() end for