A high-throughput, persistent, distributed, publish-subscribe messaging system based on memory mapped file and Thrift RPC