Mainframe and Beyond: High Performance Caching for Distributed Applications