论文部分内容阅读
内存对象缓存系统在通信方面受制于传统以太网的低效率,在存储方面受限于服务器节点的内存容量,亟需融合新一代高性能IO技术提升性能。本文对以Memcached为代表的内存对象缓存系统的通信性能优化和存储扩展问题进行了深入的研究,设计并实现了基于RDMA和用户级SSD访问的高性能内存对象缓存系统U2Cache。 本文的主要工作和贡献为: 1.提出了一种基于RDMA的Memcached通信加速方法。本文采用高性能的RDMA通信替代Socket通信,并根据操作类型和消息大小的不同分别设计通信策略,以进一步降低整体延迟。在传输小消息时,采用有拷贝的RDMA通信方法,以减少RDMA通信次数;在传输大消息时,采用内存拷贝与RDMA通信并行流水的方法,隐藏Java客户端数据拷贝的延迟。另外,在需要传输大消息的写缓存操作中,采用RME(Rendezvous Mixed with Eager)通信协议,隐藏握手延迟。 2.设计了一种基于用户级SSD访问的Memcached存储扩展机制。针对Memcached服务器受节点内存容量限制的问题,本文采取在Memcached服务器内部集成SSD的方法扩展存储空间,并通过实现用户级SSD访问降低SSD访问延迟。当Memcached服务器要发送位于SSD数据区的较长数据时,本文通过SSD读操作和RDMA通信的并行流水,隐藏RDMA通信的延迟。 3.设计并实现了一个基于RDMA和用户级SSD访问的缓存系统U2Cache。U2Cache服务器与客户端的通信采用本文提出的基于RDMA的通信加速方法,服务器内部采用用户级SSD访问以扩展存储空间。在服务器仅访问内存数据区时,相比采用未流水化的RDMA通信方法,优化后读缓存操作的延迟降低了13%~26%,写缓存操作的延迟降低了7%~28%。在服务器需要访问SSD数据区时,相比采用内核NVMe驱动,优化后读缓存操作的延迟降低了7%~31%。