DW:
- Changed global double-linked LRU list to a bunch of LRU lists,
one for each SwapDir. This allows us to choose which SwapDir
cache replacement should occur on.
- Previously the LRU list links where maintained by storeHashInsert and
storeHashDelete. Now they happen in the new storeSwapFileNumberSet
function. So entries are added and removed from the list only when
their swap file numbers are set/cleared.
- Changed storeMaintainSwapSpace so that it removes objects in
a round-robin manner. This should keep the number of unlink
requests approximately constant across all SwapDir's.
- Also changed the calculation of 'max_remove' in storeMaintainSwapSpace.
Now we remove up to the 5 minute average client request rate, with
a minimum of 10.
- This new replacement code keeps the disk usage right at the
high water mark. Files are agressively removed whenever the
high water mark is reached. No files are removed if the usage
is below the high water mark. The only purpose for the low water
mark now is to calculate the time until the next event.
- Removed the case when we stop opening swapout files because the LRU
age gets too low.
- new_StoreEntry now initializes e->swap_file_number to -1.
-