论文部分内容阅读
随着云计算技术在各个专业领域的广泛渗透,人们对海量数据提出了更高的处理要求。传统的关系型数据库保证了数据的永久性存储,但是由于事务操作的严谨性和存储设备的读写速度导致了关系型数据库在面对海量数据请求时服务不够高效的问题。人们考虑到计算机内存的读写速度是磁盘等底层设备的数十倍,开始研究内存数据库,并逐渐将内存数据库应用到系统的缓存技术中帮助提升整体的数据服务性能。本文对内存数据库Memcached进行了优化,提出了云环境下内存缓存系统LMCached的设计方案。首先本文分析了云计算环境中的数据特点和相关技术,包括分布式计算,内存缓存等,然后对Memcached数据库进行了分析。传统的Memcached在存储服务器端没有实现通信机制,这就使得系统存在着单点失效的隐患,同时对于海量的请求访问,由于Memcached自身对于哈希表管理上的锁机制,每次访问时锁住整张表,降低了并发处理能力。为了将内存数据库更好的应用在云计算环境下,本文基于高可靠,高并发的目标提出了LMCached内存缓存系统的设计需求。然后本文对LMCached中的负载均衡层、系统控制层、数据处理层和公共服务层以及各个模块的设计与实现给出了详细的描述。负载均衡层利用Keepalived+LVS技术对到来的用户请求进行负载,保证系统的高并发处理能力和可靠性;系统控制层的读写代理模块中利用代理模型对用户的请求进行逻辑分类并实现了代理集群的自主选举,避免写代理的单点问题。通过路由信息模块将键值对的访问路由进行记录与维护。系统配置管理模块中利用抽象类和提供的函数接口对配置文件实现了规范化管理;数据处理层负责处理数据存储和数据容灾。存储数据时在代理本地建立缓存,实现了系统的多级缓存架构,同时利用锁分离策略优化了分布式缓存中对于哈希表的管理方式;数据容灾模块采用主备集群同步备份,利用版本控制的方式保证数据一致性,在一定程度上解决了传统Memcached的单点失效问题;公共服务层中的日志模块和监控模块主要为系统的运维人员提供技术支持。最后本文部署了测试环境,对LMCached内存缓存系统进行功能测试和性能测试。通过和Memcached进行对比分析,结果表明LMCached系统能够在海量并发的情况下保证较好的可用性和并发性,具备一定的容灾能力。