论文部分内容阅读
随着互联网技术的飞速发展,Web应用的访问量和其产生的数据量规模不断增加。现阶段,大多数的Web应用都将数据存放在关系型数据库(RDBMS)中,但是由于RDBMS处理数据效率较低,数据库性能已然成为了当下大型Web应用的瓶颈。为了解决这个问题,近年来一些内存对象缓存系统应运而生,其中Memcached正是典型代表。Memcached利用服务器的内存对数据进行缓存,这样一来,已经处理过的数据可以直接从Memcached服务器读取出来,一定程度上缓解了数据库的访问压力,再加上服务器内存极高的处理效率,使得数据库操作的性能瓶颈从根本上得到了解决。目前Memcached已被广泛应用,由于Memcached承担的数据缓存量较大,分布式Memcached是Memcached主要应用形式。作为分布式系统,分布式Memcached不得不考虑容错问题,即当有服务器节点宕机时,系统应将缓存在该节点中的数据重构出来,避免相应的数据操作压力重新落回到数据库上,遗憾的是传统分布式Memcached并不具备上述容错能力。为了使分布式Memcached具备容错能力,相关研究工作已经逐渐展开并取得了一定成果:如Cocytus将纠删码Reed-Solomon(RS)码技术与分布式协议相结合,使分布式Memcached具备了基本的容错能力。但是RS码本身较为复杂的计算、数据重构时较高的网络传输代价很容易成为制约Memcached数据重构的性能瓶颈。针对以上问题,本文设计并实现了新的分布式Memcached容错框架。该框架简化了数据重构流程,并实现了基于奇偶校验阵列码RDP码双容错,在保证分布式Memcached容错能力的基础上,优化了数据重构的计算性能。同时,为了进一步减少数据重构过程中的网络传输开销,本文还在容错框架中实现了阵列码的重构优化方案RDOR,使分布式Memcached真正具备高性能的容错能力。