CN101763226B - 一种虚拟存储设备的缓存方法 - Google Patents
一种虚拟存储设备的缓存方法 Download PDFInfo
- Publication number
- CN101763226B CN101763226B CN2010100345136A CN201010034513A CN101763226B CN 101763226 B CN101763226 B CN 101763226B CN 2010100345136 A CN2010100345136 A CN 2010100345136A CN 201010034513 A CN201010034513 A CN 201010034513A CN 101763226 B CN101763226 B CN 101763226B
- Authority
- CN
- China
- Prior art keywords
- virtual memory
- facilities
- memory facilities
- virtual
- policy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提出了一种虚拟存储设备的缓存方法,在现有的虚拟机监视器VMM的虚拟存储设备模拟器中,加入了缓存管理模块和策略模块,首先在创建虚拟存储设备时,由缓存管理模块为每个虚拟存储设备分配各自独立的缓存,其次在访问虚拟存储设备时,策略模块为每个虚拟存储设备实例指定的预取策略和替换策略,并动态地调整预取策略。本发明提出的缓存方法使得预取数据的命中率提高,从而进一步提高了虚拟存储设备的访问性能。
Description
技术领域
本发明提出的一种虚拟存储设备的缓存机制,具体涉及虚拟化技术、缓存技术和预取技术领域。
背景技术
虚拟机技术逐渐成为当前工业界和学术界的研究热点,虚拟机监视器(VMM)在软件层实现硬件抽象,将物理资源映射到多个上层客户操作系统中,通过对硬件资源的虚拟化,实现同时运行多个操作系统并相互隔离,而磁盘作为其中一项重要的硬件资源,将虚拟技术应用于其存储领域也必然成为关注的焦点。新存储实体对原存储实体的存储资源和存储管理进行变化和转换的过程称为存储虚拟化,存储资源包括存储的读写方式、连接方式、存储的格式或结构等,而存储管理包括统一管理、分散管理、性能动态调整等。
为虚拟机提供的虚拟存储设备可以有以下几种方式:物理硬盘或其分区,包括iSCSI(Internet小型计算机系统接口)磁盘或GNBD(Global Network Block Device)卷;网络存储协议,包括NFS(网络文件系统)等网络或并行文件系统,这种方式适合于一些使用NFS等的网络存储设备;基于逻辑卷(Logical Volume Manager,简称LVM);基于文件的虚拟存储设备,也称为虚拟磁盘镜像(Virtual Disk Image)。无论采用的是哪一种方式的虚拟存储设备,对于虚拟机来说对虚拟存储设备的访问都是通过VMM中的I/O子系统进行访问。参考Xen存储虚拟化研究,目前虚拟存储设备缓存机制模型的结构如图1所示,虚拟机通过虚拟存储设备驱动器访问自己的虚拟存储设备,每个虚拟机可以有多个虚拟存储设备,而每个虚拟存储设备仅属于一个虚拟机;每个虚拟存储设备对应了一个虚拟存储设备实例,如1图中所示的虚拟存储设备A实例对应着虚拟机A所要访问的虚拟存储设备;VMM中的虚拟存储设备模拟器负责模拟出虚拟存储设备对应的虚拟存储设备实例。虚拟存储设备模拟器包括虚拟存储设备管理模块、虚拟存储设备实例池以及映射器。当创建一个虚拟存储设备时,首先由虚拟存储设备管理模块,通过虚拟存储设备的配置文件创建出虚拟存储设备实例放入到虚拟存储设备实例池中;然后映射器负责虚拟存储设备实例与物理存储设备之间的映射关系,当访问虚拟存储设备时,通过映射器中的映射关系,由VMM的I/O子系统对物理存储设备进行访问。在VMM中是利用所有剩下的空闲内存(即共享缓存)作为所有虚拟存储设备的共享缓存的。这种通过共享缓存的缓存机制存在一定的弊端,一方面当虚拟存储设备A实例与虚拟存储设备B实例同时访问时,可能出现当虚拟存储设备A实例的缓存刚放进共享缓存,就被虚拟存储设备B实例的缓存替换,然后虚拟存储设备A实例访问未命中时又会将虚拟存储设备B实例的缓存替换的情况,以此下去,命中率极低,尤其是在多个虚拟存储设备同时访问时;另一方面,虽然不同的虚拟存储设备使用相应的预取策略能大大提高命中率,但是共享缓存为所有的虚拟存储设备提供了相同的预取策略,难免使预取的命中率降低。
发明内容
本发明提出的一种虚拟存储设备的缓存方法,在现有的虚拟机监视器VMM中的虚拟存储设备模拟器中,加入了缓存管理模块和策略模块,缓存管理模块负责为每个虚拟存储设备分配各自独立的缓存,策略模块负责为每个虚拟存储设备实例指定和调整不同的预取策略。
当一个虚拟存储设备被创建时,虚拟存储模拟器中的虚拟存储设备管理模块根据该虚拟存储设备的配置文件创建虚拟存储设备实例放到虚拟存储模拟器中的虚拟存储设备实例池中,同时缓存管理模块根据该虚拟存储设备的配置文件中的缓存参数来为所创建的虚拟存储设备实例分配独立的缓存,并根据系统支持的预取策略的类型数量将所分配的独立缓存划分成对应几个部分,最后映射器建立虚拟存储设备实例与物理存储设备之间的映射关系。虚拟机访问虚拟存储设备,当虚拟存储设备实例的独立缓存命中时,直接访问独立缓存,当虚拟存储设备实例的独立缓存未命中时,通过映射器中的映射关系,由VMM的I/O子系统对物理存储设备进行访问。在访问虚拟存储设备的过程中,策略模块根据独立缓存中内容的命中情况动态地调整该缓存的预取策略,从而提高虚拟存储设备的缓存的命中率。
本发明提供的一种虚拟机存储设备的缓存方法,具体运行中包含以下执行步骤:
步骤1,系统进行加电完成初始化,虚拟存储设备模拟器加载,由虚拟存储设备管理模块管理所有的虚拟存储设备实例,缓存管理模块负责动态管理各虚拟存储设备实例的缓存,调度策略模块动态地调整各虚拟存储设备实例对应各独立缓存的预取策略;
步骤2,虚拟存储设备被创建时,虚拟存储设备管理模块创建对应的虚拟存储设备实例,并放入虚拟存储设备实例池中,然后缓存管理模块根据所要创建的虚拟存储设备的配置文件中的缓存参数,为虚拟存储设备实例分配缓存并指定预取策略,最后由虚拟存储设备模拟器中的映射器建立虚拟存储设备实例与物理存储设备之间的映射关系;
缓存管理模块根据虚拟存储设备的配置文件中的缓存参数,来为虚拟存储设备分配缓存,并根据系统支持的预取策略的类型数量将缓存划分为相应的几个部分,缓存参数由管理员设定,包括缓存大小和采用的主预取策略,因为系统可以指定支持几种预取策略,则在配置文件中指定该缓存的主预取策略,主预取策略对应的缓存包括存储地址和数据内容,而从预取策略对应的缓存只包括存储地址;
步骤3,当虚拟机对虚拟存储设备进行访问时,首先访问对应虚拟存储设备实例的独立缓存,若命中,缓存管理模块通知策略模块,策略模块更新各预取策略的统计信息(由用户根据需要设定,可以是命中率的大小、访存的概率等等),当所要访问的数据不在独立缓存中时,即未命中,虚拟机根据映射器中的映射关系,通过VMM的I/O子系统访问物理存储设备,并通知缓存管理模块检查该独立缓存是否已满,若未满则将未命中的内容写入该独立缓存中,若已满则应用指定的替换策略将未命中的内容替换入独立缓存中,同时缓存管理模块通知策略模块更新各预取策略的统计信息;策略模块通过周期性地比较各预取策略的统计信息,将统计信息最优的预取策略作为主预取策略,实现动态地调整预取策略。
相比现有技术,本发明具有以下优点和积极效果:
(1)更好的性能
本发明提出的缓存方法,为每一个虚拟存储设备分配一个独立的缓存,并指定相应的预取策略,使得命中率提高,从而进一步提高了虚拟存储设备的访问性能。
(2)更好的灵活性和适应性
传统的缓存机制中,一般都是使用固定的预取策略,而在本发明提出的缓存方法中引入了策略模块,该模块在虚拟存储设备访问过程中,动态地调整预取策略,如,根据当前应用的不同、命中率的情况相应的改变预取策略,从而使访问虚拟存储设备的命中率提高,增加了系统的灵活性和适应性。
附图说明
图1是传统的虚拟存储设备缓存机制模型的结构示意图;
图2是本发明缓存方法的应用模型的结构示意图;
图3是本发明的缓存方法的步骤流程图;
图4是本发明实施例策略模块与一个独立缓存之间的关系示意图。
具体实施方式
下面结合附图对本发明作进一步的详细说明。
如图2所示,本发明所涉及的虚拟机系统包含以下组成部分:虚拟机监视器VMM1,虚拟存储设备模拟器2,虚拟存储设备实例池21,映射器22,虚拟存储设备管理模块23,缓存管理模块24,策略模块25,VMM的I/O子系统3,物理存储设备4。其中,缓存管理模块24和策略模块25是本发明新添加的模块。虚拟存储设备管理模块23根据各虚拟机的虚拟存储设备的配置文件创建对应的虚拟存储设备实例,虚拟机A、虚拟机B、虚拟机C分别通过虚拟存储设备驱动器来访问自身的虚拟存储设备,虚拟存储设备A实例是属于虚拟机A的虚拟存储设备,虚拟存储设备B实例是属于虚拟机B的虚拟存储设备,虚拟存储设备C实例是属于虚拟机C的虚拟存储设备。同时每个虚拟存储设备实例都分配了相应的独立缓存,这些独立缓存是从共享内存中分配出来的,共享内存是指VMM1中所有剩余的空闲内存资源。
缓存管理模块24负责管理各虚拟存储设备的缓存,在虚拟存储设备创建的过程中,通过虚拟存储设备的配置文件为其对应的虚拟存储设备实例分配独立的缓存,并将该独立缓存划分为系统预设的预取策略类型数量对应的几个部分。此外,在访问虚拟存储设备的过程中,缓存管理模块24负责通知策略模块25更新各预取策略的统计信息。
策略模块25负责动态地调整各虚拟存储设备实例的独立缓存的预取策略。
当创建虚拟存储设备时,虚拟存储设备管理模块23根据虚拟存储设备的配置文件创建虚拟存储设备实例,并将实例放入虚拟存储设备实例池21中,同时缓存管理模块24为虚拟存储设备实例分配独立缓存,其独立缓存的大小和主预取策略由配置文件指定,最后由映射器22建立虚拟存储设备实例与物理存储设备4之间的映射关系;当访问虚拟存储设备,命中时,缓存管理模块24通知策略模块25,策略模块25更新各预取策略的统计信息,未命中时,虚拟机到物理存储设备4中访问,并由缓存管理模块24通知策略模块25,策略模块25更新各预取策略的统计信息。
本发明提出一种虚拟存储设备的缓存方法,具体运行过程如图3所示,包含以下步骤:
步骤一:系统启动时虚拟存储设备模拟器2加载做好初始化工作。
如图2所示,当系统加电完成启动后,虚拟存储设备模拟器2加载,由虚拟存储设备管理模块23负责管理所有的虚拟存储设备,缓存管理模块24负责动态管理各虚拟存储设备的独立缓存,调度策略模块25动态地调整各虚拟存储设备实例的独立缓存的预取策略和替换策略。
步骤二:创建虚拟存储设备,即创建虚拟存储设备实例。当创建虚拟存储设备时,虚拟存储设备管理模块23会根据虚拟存储设备的配置文件创建虚拟存储设备实例;然后缓存管理模块24会根据虚拟存储设备的配置文件中的缓存参数来为虚拟存储设备实例分配独立缓存,缓存参数由管理员设定,一般包括缓存大小和采用的主预取策略,因为系统可以指定支持几种预取策略,所以在配置文件中会指定该缓存的主预取策略,并根据系统支持的预取策略的类型数量将缓存划分为相应的几个部分,主预取策略对应的缓存存储内容包括存储地址和数据内容,占用整个独立缓存的大部分资源,而从预取策略对应的缓存仅存储有存储地址,因此其大小仅仅占整个独立缓存中非常小的一部分;最后映射器22建立虚拟存储设备实例与物理存储设备4之间的映射关系。
例如,当系统支持三种预取策略时,在策略模块25中为每一个独立缓存建立有一个策略列表,策略列表中包括了系统预设的三种预取策略,其中将所要创建的虚拟存储设备的配置文件中指定的预取策略定为主预取策略,其余的预取策略为从预取策略。
如图2中所示,当虚拟机A需要创建一个虚拟存储设备时,首先由虚拟存储设备管理模块23读取该虚拟存储设备的配置文件,根据配置文件的参数创建虚拟存储设备A实例放入到虚拟存储设备实例池21中;然后缓存管理模块24会根据配置文件中的缓存参数来为虚拟存储设备A实例分配独立缓存,此时若系统支持三种预取策略,则缓存管理模块24将该独立缓存划分为三个部分,每一部分对应了一种预取策略。
如图4所示,策略模块25与一个独立缓存间的关系,此虚拟存储设备实例对应的独立缓存被分成三部分,其中,预取策略一是主预取策略,其对应的缓存部分是真正意义上的缓存,包括存储地址(Tag)和数据内容,预取策略二、预取策略三都是从预取策略,各自对应的缓存部分只包括存储地址(Tag)。主预取策略和从预取策略是同时工作的,不同点在于主预取策略是真正意义上的更新缓存内容,而从预取策略仅仅更新地址信息。策略模块25为每种策略做出一个统计信息,该统计信息由用户根据需要设定,可以是命中率的大小、访存的概率等等,然后根据这些统计信息动态地调整缓存的预取策略。
步骤三:访问虚拟存储设备,虚拟机访问虚拟存储设备时,策略模块25将动态调整对应虚拟存储设备实例的独立缓存的预取策略。
虚拟机访问虚拟存储设备时,策略模块25中的主从预取策略同时工作。当独立缓存命中时直接从虚拟存储设备实例的独立缓存访问,同时缓存管理模块24通知策略模块25更新各预取策略对应的统计信息。当独立缓存未命中时,虚拟机则通过映射器22中与物理存储设备4的映射关系,由VMM的I/O子系统3对物理存储设备4进行访问,并通知缓存管理模块24检查该虚拟存储设备实例的独立缓存是否已满,若未满则将未命中的内容写入该缓存中,若已满则应用指定的替换策略将未命中的内容替换入该缓存中,同时缓存管理模块24通知策略模块25更新各预取策略对应的统计信息。
策略模块25会周期性地读取各预取策略的统计信息,来决策当前哪种策略作为主预取策略。如图4所示,初始时,预取策略一为主预取策略,当运行一段时间后,策略模块25发现预取策略二的统计信息优于预取策略一的统计信息,则策略模块25将预取策略二定为主预取策略,同时将所有的预取策略对应的统计信息清零。
Claims (4)
1.一种虚拟存储设备的缓存方法,其特征在于,在现有虚拟机监视器VMM中的虚拟存储设备模拟器中,加入了缓存管理模块和策略模块,具体运行包括以下步骤:
步骤一,系统进行加电完成初始化,
对虚拟存储设备模拟器加载,由虚拟存储设备模拟器中的虚拟存储设备管理模块管理所有的虚拟存储设备实例,缓存管理模块负责动态管理各虚拟存储设备的缓存,调度策略模块动态地调整各虚拟存储设备实例对应的各独立缓存的预取策略;
步骤二,创建虚拟存储设备,
当创建虚拟存储设备时,虚拟存储设备管理模块创建对应的虚拟存储设备实例,并放入虚拟存储设备实例池中,然后缓存管理模块根据虚拟存储设备的配置文件中的缓存参数,为虚拟存储设备实例分配独立缓存并指定预取策略,最后由虚拟存储设备模拟器中的映射器建立虚拟存储设备实例与物理存储设备之间的映射关系;
步骤三,访问虚拟存储设备,
当虚拟机对虚拟存储设备进行访问时,首先访问对应虚拟存储设备实例的独立缓存中的数据,若命中,缓存管理模块通知策略模块,策略模块更新各预取策略的统计信息,当所要访问的数据不在独立缓存中,即未命中时,虚拟机根据映射器中的映射关系,通过VMM的I/O子系统访问物理存储设备,并通知缓存管理模块检查该独立缓存是否已满,若未满则将不命中的内容写入该独立缓存中,若已满则用指定的替换策略将不命中的内容替换入独立缓存中,同时缓存管理模块通知策略模块更新各预取策略的统计信息;策略模块通过周期性地比较各预取策略的统计信息,将统计信息最优的预取策略作为主预取策略,实现动态地调整预取策略。
2.根据权利要求1所述的一种虚拟存储设备的缓存方法,其特征在于,步骤二中所述虚拟存储设备的配置文件中的缓存参数,由管理员设定,包括缓存大小和采用的主预取策略。
3.根据权利要求1所述的一种虚拟存储设备的缓存方法,其特征在于,步骤二所述的独立缓存,根据系统支持的预取策略的类型数量划分为相应的部分,主预取策略由虚拟存储设备的配置文件中缓存参数指出,主预取策略对应的缓存存储有存储地址和数据内容,占用独立缓存的大部分资源,而从预取策略为系统中其他预取策略,对应的缓存只存储存储地址。
4.根据权利要求1所述的一种虚拟存储设备的缓存方法,其特征在于,步骤三中所述的统计信息,由用户指定,包括命中率的大小、访存的概率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010100345136A CN101763226B (zh) | 2010-01-19 | 2010-01-19 | 一种虚拟存储设备的缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010100345136A CN101763226B (zh) | 2010-01-19 | 2010-01-19 | 一种虚拟存储设备的缓存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101763226A CN101763226A (zh) | 2010-06-30 |
CN101763226B true CN101763226B (zh) | 2012-05-16 |
Family
ID=42494409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010100345136A Expired - Fee Related CN101763226B (zh) | 2010-01-19 | 2010-01-19 | 一种虚拟存储设备的缓存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101763226B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043731A (zh) * | 2010-12-17 | 2011-05-04 | 天津曙光计算机产业有限公司 | 一种存储系统的缓存系统 |
US8874848B2 (en) * | 2011-09-30 | 2014-10-28 | Net App, Inc. | Intelligence for controlling virtual storage appliance storage allocation |
CN102541468B (zh) * | 2011-12-12 | 2015-03-04 | 华中科技大学 | 虚拟化环境下的脏数据回写系统 |
CN106095524B (zh) * | 2011-12-22 | 2019-04-02 | 中国移动通信集团公司 | 一种虚拟机部署方法、系统和装置 |
CN102609485B (zh) * | 2012-01-20 | 2013-11-13 | 无锡众志和达数据计算股份有限公司 | 基于Linux文件系统的NFS数据I/O加速方法 |
CN102999444A (zh) * | 2012-11-13 | 2013-03-27 | 华为技术有限公司 | 一种用于替换缓存模块中数据的方法及装置 |
CN103631972B (zh) * | 2013-12-23 | 2016-09-21 | 济南大学 | 一种列访问感知的数据缓存方法及系统 |
US20150286571A1 (en) * | 2014-04-04 | 2015-10-08 | Qualcomm Incorporated | Adaptive cache prefetching based on competing dedicated prefetch policies in dedicated cache sets to reduce cache pollution |
US20150381423A1 (en) * | 2014-06-26 | 2015-12-31 | Futurewei Technologies, Inc. | System and Method for Virtual Network Function Policy Management |
CN104461940A (zh) * | 2014-12-17 | 2015-03-25 | 南京莱斯信息技术股份有限公司 | 网络虚拟磁盘客户端高效缓存及延迟写入方法 |
CN104657298A (zh) * | 2015-02-11 | 2015-05-27 | 昆腾微电子股份有限公司 | 读控制装置和方法 |
CN107430556B (zh) * | 2015-03-27 | 2021-07-20 | 英特尔公司 | 动态高速缓存分配 |
DE102015214424A1 (de) * | 2015-07-29 | 2017-02-02 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Kommunizieren zwischen virtuellen Maschinen |
CN107229546A (zh) * | 2016-03-23 | 2017-10-03 | 上海复旦微电子集团股份有限公司 | 缓存的模拟方法及装置 |
CN110597451B (zh) | 2018-06-12 | 2021-02-23 | 华为技术有限公司 | 一种虚拟化缓存的实现方法及物理机 |
CN111258706B (zh) * | 2018-11-30 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 虚拟机系统及其控制方法以及电子设备 |
CN110377572B (zh) * | 2019-07-18 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 一种缓存空间管理方法、装置、设备及介质 |
CN110471734B (zh) * | 2019-08-19 | 2023-01-13 | 东软集团股份有限公司 | 一种显示控制方法及装置 |
CN114697325A (zh) * | 2022-03-15 | 2022-07-01 | 浪潮云信息技术股份公司 | 一种集群虚拟化资源管理平台缓存设备的自动化部署方法及运维装置 |
-
2010
- 2010-01-19 CN CN2010100345136A patent/CN101763226B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101763226A (zh) | 2010-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101763226B (zh) | 一种虚拟存储设备的缓存方法 | |
US20210374056A1 (en) | Systems and methods for scalable and coherent memory devices | |
US10365938B2 (en) | Systems and methods for managing data input/output operations in a virtual computing environment | |
US10042750B2 (en) | Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor | |
Bila et al. | Jettison: Efficient idle desktop consolidation with partial VM migration | |
KR101697937B1 (ko) | 멀티프로세서 시스템에서 동적 태스크 마이그레이션을 위한 방법 및 시스템 | |
US20130124794A1 (en) | Logical to physical address mapping in storage systems comprising solid state memory devices | |
US20120047313A1 (en) | Hierarchical memory management in virtualized systems for non-volatile memory models | |
US20080104589A1 (en) | Adaptive, Scalable I/O Request Handling Architecture in Virtualized Computer Systems and Networks | |
EP3382557B1 (en) | Method and apparatus for persistently caching storage data in a page cache | |
CN108604197A (zh) | 模块化数据操作系统 | |
CN110597451A (zh) | 一种虚拟化缓存的实现方法及物理机 | |
US20120117298A1 (en) | Managing Memory Across a Network of Cloned Virtual Machines | |
CN106095524A (zh) | 一种虚拟机部署方法、系统和装置 | |
Anagnostopoulou et al. | Barely alive memory servers: Keeping data active in a low-power state | |
CN108932150A (zh) | 基于ssd和磁盘混合存储的缓存方法、装置及介质 | |
CN112988388A (zh) | 一种内存页管理方法及计算设备 | |
US11055223B2 (en) | Efficient cache warm up based on user requests | |
US8543700B1 (en) | Asynchronous content transfer | |
Tang et al. | A block-level caching optimization method for mobile transparent computing | |
CN102043731A (zh) | 一种存储系统的缓存系统 | |
US11132128B2 (en) | Systems and methods for data placement in container-based storage systems | |
CN112860381B (zh) | 基于申威处理器的虚拟机内存扩容方法及系统 | |
CN115087961B (zh) | 用于相干及非相干存储器请求的仲裁方案 | |
US11687443B2 (en) | Tiered persistent memory allocation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120516 Termination date: 20140119 |