Adaptive Destaging for Server-Side Caches
We consider a virtualized server side storage acceleration architecture wherein I/Os from each host are accelerated by a local cache in write back mode . Each host is connected to a variety of NAS and SAN storage backends with different performance capabilities. Writing dirty data to backend storage is done by the destager by batching a fixed number of I/Os. Since reads are mostly cached, this fundamentally alters the workload to the storage from mixed read writes to a purely bursty write biased workload of varying IO sizes. Maintaining a constant batch size in the destager that is agnostic of the actual capability of the storage backend results in sub-optimal write throughput accompanied by high latencies. The problem is further compounded when multiple destagers in the cluster write to the same shared storage. Finally, every destager I/O also involves reading from an acceleration tier the behavior of which should also be factored.