中国科学院软件研究所机构知识库
Advanced  
ISCAS OpenIR  > 软件工程技术研究开发中心  > 学位论文
Title:
面向PaaS的分布式缓存服务关键技术研究
Author: 秦秀磊
Issued Date: 2013-11
Supervisor: 黄涛
Major: 计算机软件与理论
Degree Grantor: 中国科学院研究生院
Place of Degree Grantor: 北京
Degree Level: 博士
Keyword: 分布式缓存 ; 缓存策略 ; 数据迁移 ; 性能隔离 ; 多租户
Abstract:
随着云计算的进一步发展,当前Web应用呈现出规模不断增大、业务逻辑更加复杂和用户群体庞大的发展趋势。针对大用户量访问、高并发请求处理,传统数据库频繁面临I/O访问瓶颈、难于扩展等挑战。在这一背景下,分布式缓存技术正逐步得到广泛应用。它将数据均匀分布到多个缓存服务节点,在内存中管理数据,对外提供统一的数据访问接口,基于冗余备份机制实现高可用支持;可有效降低后台数据库的访问压力,拉近数据与应用间的距离,是云计算环境下提升应用性能的一种重要手段。
从云计算的三层服务模式(IaaS, PaaS, SaaS)角度分析,分布式缓存作为一种中间件,主要运行于PaaS层。作为云服务家族的重要成员,分布式缓存在云应用运行支撑和云状态存储方面发挥着日益突出的作用。与此同时,云平台固有的开放性、动态性以及多租户、弹性资源供给、自适应性、可用性等特点和需求,也给缓存服务的运行、维护和管理带来了新的问题与挑战,现有分布式缓存技术与云计算实际需求间仍存在一定差距。鉴于目前业界对具有云特性的缓存服务的迫切需求,本论文借鉴自治计算的思想,深入研究面向PaaS的分布式缓存服务关键技术,重点解决缓存策略自适应重配、缓存数据迁移优化和缓存服务性能隔离等方面的问题,建立具有云特性的缓存服务框架,并进行原型系统的设计与实现。本论文的主要贡献如下: 
1) 缓存策略自适应重配方法研究:不同缓存策略往往针对不同的问题场景提出,鉴于Web应用的访问量、访问模式具有时变性的特点,使用单一策略配置或静态策略配置,通常难以适应环境与需求的动态变化。针对最优缓存策略如何在线选择这一问题,本文提出一种基于机器学习的缓存策略自适应重配方法。着力解决如何持续优化离线训练得到的负载分类模型,以及如何有效降低缓存策略重配开销的问题。提出两种分类模型的增强机制;通过状态转换图、缓存对象同步算法以及策略重配优化机制来保障自适应操作的稳定、高效执行。同已有工作相比,论文方法支持负载分类模型的在线演化,自适应操作及模型优化对系统性能的影响较小。相比于静态策略配置,该方法可提升系统吞吐率15-31.5%。
2) 缓存数据迁移优化方法研究:数据迁移是实现分布式缓存动态扩展与负载均衡的核心技术。如何降低数据迁移的开销是云服务提供商着力解决的问题。已有研究工作大多针对非虚拟化环境下的数据迁移问题,这些方法对于云缓存服务而言往往并不适用。针对这一问题,论文研究了虚拟化环境对缓存数据迁移的重要影响,在此基础上,提出一种基于面积的迁移开销模型,该模型一方面可以有效权衡迁移时间与性能衰减值,另一方面可以感知底层I/O操作的细节并刻画虚拟机性能干扰的程度。基于上述模型,本文给出了一种开销敏感的数据迁移算法,为迁移决策的制订和优化提供支持。本文方法在吞吐率和平均响应时间方面,分别优于已有方法11-23%、8-18%。
3) 缓存服务性能隔离方法研究:对缓存服务而言,数据量大、频繁访问的租户往往会侵占其他租户资源,从而产生性能干扰。现有平台服务商未提供面向SLA保障的缓存性能隔离机制,使得租户应用的性能变得难以预测。论文围绕缓存空间与带宽资源的公平分配问题展开研究。首先,提出一种支持租户间内存配额动态调整的新的缓存空间划分机制,动态调整的目标是使每个租户的资源量与负载量相匹配,因此该机制具有较优的灵活性与扩展性;在此基础上,提出一种租户敏感的缓存替换算法,保障各租户使用的缓存空间大小接近其配额。针对网络资源竞争,提出一种租户带宽分配机制和请求调度算法。论文方法可有效消除租户间的性能干扰,平均响应时间优于已有方法7-18%,引入的性能开销低于5%。 
本论文的研究成果对自适应软件系统以及云平台资源管理等领域的研究具有一定的参考价值,可进一步应用于云缓存服务的维护和管理。综合上述研究成果,论文设计并实现了一个面向PaaS的缓存服务支撑软件系统ElastiCamel。该系统主要由缓存服务器、节点管理器、主节点和缓存客户端四部分组成。同时,基于Eclipse SWT技术实现了一个图形化的管理控制台,便于租户和管理员进行操作。
English Abstract:
With the rapid development of cloud computing, Web applications are becoming larger-scale and more complex. They are often demanded to provide highly- responsive, low latency service to a vast number of users. This brings new challenges to the traditional 3-tier architecture model. One major factor that hits developers big time is the I/O bottleneck in database. Besides, the background database is always hard to scale. This confluence of trends requires a new computing paradigm. In recent years, distributed cache is more widely used to remove bottlenecks from disk I/O. It uses a count of loosely-coupled RAM-based data caches to store objects and provides a unified data view to the applications. As one important way of boosting the performance of Web applications for the Cloud, distributed cache distributes cache data transparently and evenly to the entire cluster, and narrows the distance between data and Web applications. High availability is ensured by replication and redundancy. From the view of IaaS, PaaS and SaaS, cache belongs to a special type of middleware and mainly works on PaaS tier. As an important part of cloud services, distributed caching service plays a critical role in providing runtime support for cloud-based applications and storing their states. However, due to the open and highly dynamic nature of cloud platform and its multi-tenancy, elastic supply, self-adaptation and high availability features, the running, maintenance and management of caching service face a range of new challenges. That is to say, a wide gap still remains between the existing caching technologies and the requirements of cloud computing. Considering that there is an increasingly urgent need for the development of cloud-based caching services, in this thesis, we draw lessons from automatic computing, and conduct an in-depth study of the key technologies of PaaS-oriented distributed caching service, focusing on how to achieve self-reconfiguration of cache strategies, how to optimize the cost of data migration and how to enable per-tenant performance isolation and fairness. We also build a caching service framework and develop a prototype. The detailed research issues are described as follows:
1) Self-reconfiguration of cache strategies. Different cache strategies are often designed for different scenarios. Considering that the number of concurrent users and traffic patterns of Web applications are time-varying, using single strategy or static configuration often seems difficult to adapt to the environmental dynamics and demand changes. To determine the optimal cache strategy, we propose a machine learning based approach, and focus on solving the problems of how to continuously optimize the offline classification model and how to effectively reduce the reconfiguration overhead. Two mechanisms are proposed to enhance the offline model. Reconfiguration actions can be executed stably and effectively by using state transition diagram, cache entries synchronization algorithm as well as two optimization mechanisms. Compared with the existing works, our approach supports online optimization of classification model with low overheads; the impacts brought by reconfiguration actions are quite small. Compared with static strategy configuration, our approach can increase the system throughput by 15-31.5%. 2) Optimization of cost of data migration. Data migration is the key technology to the dynamic scaling and load rebalancing of distributed cache. Cloud service providers are focused on how to reduce the cost of data migration. Existing works mainly use non-virtualized environment as the research background. Thus these approaches cannot be directly applicable to the caching service in the cloud. To solve this problem, we firstly study how virtualization poses impacts on data migration, and then build an area-based cost model for data migration. It can effectively make tradeoffs between migration time and performance impact for each migration action. It could also be aware of the underlying details and I/O interference. Based on this model, we develop a cost-aware data migration algorithm to determine an optimal set of migration actions. Compared with the existing works, our approach performs better, with 11-23% higher throughput and 8-18% lower response time. 3) Enabling per-tenant performance isolation and fairness. For caching service, frequently accessed tenants (Web applications) or tenants who own large volumes of data often tend to eat other tenants’ resources, resulting in performance interference. Existing caching service providers also donot provide performance isolation mechanism, which targets at per-tenant SLA guarantees. This makes the performance of tenants unpredictable. In this chapter, we focus on how to enforce fairness in the allocation of cache space and bandwidth resources among tenants. We firstly propose a new mechanism that supports dynamic weight adjustment to match tenants’ variable demands. The mechanism can achieve more flexibility and scalability. We then present a tenant-aware replacement algorithm. It is applied to guarantee the amount of resources consumed by each tenant is close to its allocation weight. To deal with the problem of network I/O contention, we propose a bandwidth allocation mechanism and a request scheduling algorithm. Experimental results indicate that, our approach can effectively get rid of performance interference among tenants, with 7-18% lower response time while its overhead is probably below 5%.
The research achievements can provide some reference values to the fields such as adaptive software systems and resource management of cloud. They can also be applied to the maintenance and management of caching service. Based on the issues mentioned above, we have designed and developed a PaaS-oriented distributed caching system named ElastiCamel. It includes four parts, namely cache server, node agent, master node and cache client. It also provides a powerful graphical management console using Eclipse SWT to facilitate operations for administrators and tenants.
Language: 中文
Content Type: 学位论文
URI: http://ir.iscas.ac.cn/handle/311060/16378
Appears in Collections:软件工程技术研究开发中心 _学位论文

Files in This Item:
File Name/ File Size Content Type Version Access License
面向PaaS的分布式缓存服务关键技术研究.pdf(5689KB)----限制开放 联系获取全文

Recommended Citation:
秦秀磊. 面向PaaS的分布式缓存服务关键技术研究[D]. 北京. 中国科学院研究生院. 2013-11-01.
Service
Recommend this item
Sava as my favorate item
Show this item's statistics
Export Endnote File
Google Scholar
Similar articles in Google Scholar
[秦秀磊]'s Articles
CSDL cross search
Similar articles in CSDL Cross Search
[秦秀磊]‘s Articles
Related Copyright Policies
Null
Social Bookmarking
Add to CiteULike Add to Connotea Add to Del.icio.us Add to Digg Add to Reddit
所有评论 (0)
暂无评论
 
评注功能仅针对注册用户开放,请您登录
您对该条目有什么异议,请填写以下表单,管理员会尽快联系您。
内 容:
Email:  *
单位:
验证码:   刷新
您在IR的使用过程中有什么好的想法或者建议可以反馈给我们。
标 题:
 *
内 容:
Email:  *
验证码:   刷新

Items in IR are protected by copyright, with all rights reserved, unless otherwise indicated.

 

 

Valid XHTML 1.0!
Copyright © 2007-2019  中国科学院软件研究所 - Feedback
Powered by CSpace