SemSwap: semantics-aware swapping in memory disaggregated datacenters