CN104375961A - 用于在数据存储子系统中进行数据访问的方法和装置 - Google Patents
用于在数据存储子系统中进行数据访问的方法和装置 Download PDFInfo
- Publication number
- CN104375961A CN104375961A CN201310357278.XA CN201310357278A CN104375961A CN 104375961 A CN104375961 A CN 104375961A CN 201310357278 A CN201310357278 A CN 201310357278A CN 104375961 A CN104375961 A CN 104375961A
- Authority
- CN
- China
- Prior art keywords
- copy
- data
- ssd
- region
- copy region
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
根据本发明实施例的在数据存储子系统中访问数据的方法,所述数据存储子系统包括HDD和至少分为副本区和非副本区的SSD,该方法包括:接收针对数据的访问请求;判断所述数据位于所述非副本区还是位于HDD;如果所述数据位于所述非副本区,基于所述数据构造对所述访问请求的响应;如果所述数据位于HDD,进一步判断在所述副本区是否包括所述数据的SSD副本;如果在副本区包括所述数据的SSD副本,根据所述SSD副本构造对所述访问请求的响应;以及如果在副本区不包括所述数据的SSD副本,基于HDD中的所述数据在副本区创建新SSD副本。根据本发明实施例的方案提高了对SSD的使用效率。
Description
·技术领域
本发明涉及计算机技术,更具体地说,涉及用于在数据存储子系统中进行数据访问的方法和设备。
·背景技术
在一些计算机系统中,需要频繁地从数据存储子系统读取数据,或者向数据存储子系统写入数据。相应地,数据存储子系统的数据IO速度是制约系统性能的主要瓶颈之一。典型的数据存储子系统包含基于磁盘(magnetic disk)技术的硬盘驱动器(Hard Disk Drive,HDD)。HDD能够支持的数据IO速度受到磁片旋转和磁头移动等机械操作的速度的制约。
固态盘(Solid State Disk,SSD)是基于闪存技术的存储介质。由于避免了磁片旋转和磁头移动等机械操作,SSD的数据IO速度远远高于HDD的数据IO速度。然而,SSD的成本也高于HDD。因此,SSD需要与磁盘结合起来形成数据存储子系统。当前使用SSD的方法主要为以下两种。
第一种,将SSD作为独立的存储层级(tier)。典型的存储层级包括高速缓存(cache)、内存(memory)和HDD。本领域技术人员可以理解,CPU只能直接访问高速缓存。如果CPU要访问HDD上的数据,则需要从HDD向内存加载该数据的副本(copy),该副本称为内存副本;然后从内存向高速缓存加载该数据的另一副本以便CPU访问,所述另一副本可以称为高速缓存副本。可以将更靠近CPU的存储层级称为高层级,将更远离CPU的存储层级称为低层级。由于数据IO速度从高层级到低层级递减,因此如果将数据副本保留在高层级中,则可以加快访问该数据的速度;但是,由于高层级的数据容量小于低层级,因此在高层级中只能保留对应于低层级中的一部分数据的副本,这就需要在高层级中设置控制逻辑来确定保留哪些副本。
SSD的数据IO速度高于磁盘而低于内存,则可以作为存储层级中介于内存和HDD中间的一级,则在SSD中创建对应于HDD上的一部分数据的SSD副本。对于在SSD中具有对应的SSD副本的这一部分数据,由于SSD的数据IO速度高于HDD,因此其被加载到内存的速度得到了提高。但是,由于SSD的数据容量小于HDD,因此在SSD中只能保留对应于HDD中的一部分数据的SSD副本。但是,这种方法不适用于比较关键但使用频率不高的数据,例如初始化数据或灾备数据。
第二种,将SSD作为与磁盘并列的存储层级。一部分数据存储在SSD中,并且可以直接从SSD加载到内存;另一部分数据存储在磁盘中,并且也可以直接从磁盘加载到内存。也就是说,SSD中存储的数据并非磁盘中存储的数据的副本,而是独立的数据。本领域技术人员可以理解,存储在SSD中的应该是使用频率较高的数据,存储在磁盘中的应该是使用频率较低的数据,从而提高整个数据存储子系统的性能。但是,如何确定将数据存储在SSD还是HDD,需要系统管理人员根据经验确定。另外,随着数据使用频率的变化,可以在磁盘和SSD之间进行数据迁移,即将使用频率较高的数据从磁盘迁移到SSD,将使用频率较低的数据从SSD迁移到磁盘。这种方法面临另一个两难选择:如果迁移间隔太短,则迁移本身所需要消耗的额外系统资源可能抵消了迁移所能带来的数据IO速度提高;如果迁移间隔太长,则可能无法及时反映数据使用频率的变化。
因此,需要一种新的用于在SSD和HDD的数据存储子系统中进行数据存储的解决方案。
·发明内容
本发明实施例提供了用于在数据存储子系统中进行数据访问的方法和系统。
根据本发明实施例,所述数据存储子系统包括HDD和SSD,其中SSD至少包括副本区和非副本区,其中所述副本区用于存储HDD中的数据的SSD副本,所述非副本区用于存储与HDD中的数据独立的非副本数据。
根据本发明实施例的用于在数据存储子系统中进行数据访问的方法包括:接收针对数据存储子系统中的数据的访问请求;判断所述数据位于所述非副本区还是位于HDD;如果所述数据位于所述非副本区,基于所述数据构造对所述访问请求的响应;如果所述数据位于HDD,进一步判断在所述副本区是否包括所述数据的SSD副本;如果在副本区包括所述数据的SSD副本,根据所述SSD副本构造对所述访问请求的响应;以及如果在副本区不包括所述数据的SSD副本,基于HDD中的所述数据在副本区创建新SSD副本,以便基于所述新SSD副本构造对所述访问请求的响应。
根据本发明实施例的用于在数据存储子系统中进行数据访问的设备包括:接收装置,配置为接收针对数据存储子系统中的数据的访问请求;数据位置判断装置,配置为判断所述数据位于所述非副本区还是位于HDD;非副本区响应构造装置,配置为如果所述数据位于所述非副本区,基于所述数据构造对所述访问请求的响应;副本判断装置,配置为如果所述数据位于HDD,进一步判断在所述副本区是否包括所述数据的SSD副本;副本区响应构造装置,配置为如果在副本区包括所述数据的SSD副本,根据所述SSD副本构造对所述访问请求的响应;以及副本创建装置,配置为如果在副本区不包括所述数据的SSD副本,基于HDD中的所述数据在副本区创建新SSD副本,以便基于所述新SSD副本构造对所述访问请求的响应。
根据本发明实施例的方法提高了在HDD和SSD混合的数据存储子系统中对SSD的利用效率。
·附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1是适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
图2是根据本发明实施例的存储层级结构;
图3是根据本发明实施例的访问数据的方法的流程图;
图4是根据本发明实施例的存储层级结构;
图5是根据本发明实施例的存储层级结构;
图6是根据本发明实施例的访问数据的设备的方框图。
·具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、时频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
下面结合图2和图3描述根据本发明实施例的用于数据存储的方法。根据本发明实施例,数据存储子系统包括HDD和SSD,SSD被分为副本区和非副本区。所述副本区用于存储HDD中的数据的SSD副本;所述非副本区用于存储与HDD中的数据独立的数据即非副本数据。这种层级结构如图2所示。图2中的箭头表示数据读取的方向。本领域技术人员可以理解,数据写入的方向与数据读取的方向相反。
在将数据存储到数据存储子系统时,可以选择是存储到非副本区还是HDD。例如,在安装程序时,可以通过例如指定安装目录而选择将程序安装到非副本区还是HDD。此后,也可以根据数据被使用的频率,将数据从非副本区迁移到HDD,或者从HDD迁移到非副本区。如何在SSD和HDD之间进行数据迁移是本领域的常用技术,在此不再赘述。
步骤301,接收对所述数据存储子系统中的数据进行访问的访问请求。
如前所述,CPU在需要访问数据时,会先检查高速缓存中是否存在该数据的高速缓存副本;如果没有,则进一步检查内存中是否存在该数据的内存副本;如果还没有,则向数据存储子系统发出进行数据访问的访问请求。
一般来说,采用数据地址来作为数据的标识符。例如,数据存储子系统常用的寻址方式是逻辑块地址(Logic Block Address,LBA),即用数据存储子系统中存储某数据的存储器地址来指代该数据。如果在高速缓存保留有该数据的高速缓存副本,则高速缓存记录该数据的LBA;如果在内存中保留有该数据的内存副本,则内存记录该数据的LBA。当CPU需要该数据时,利用所述LBA作为关键词检索高速缓存或内存,从而确定在告诉缓存或内存中是否存在该数据的副本。如果高速缓存和内存中均不存在该数据的副本,则将所述LBA包含在所述访问请求中发给数据存储子系统,以便数据存储子系统根据所述LBA取出数据。
本领域技术人员也可以采用其他方式来对数据进行标识。
步骤302,判断所述数据位于非副本区还是位于HDD。
数据存储子系统接收到所述访问请求后,提取数据的LBA,从而从数据的LBA确定该数据位于非副本区还是位于HDD。
步骤303,如果所述数据位于非副本区,基于所述数据构造对所述访问请求的响应。
数据存储子系统对数据访问访问请求的响应至少应包括所述数据的内容。因此,构造对所述访问请求的响应,即为将数据的内容包含在响应中。如前所述,内存根据该响应,在内存中创建该数据的内存副本,然后根据该副本构造内存对高速缓存的响应;高速缓存根据所述内存对高速缓存的响应,在高速缓存中创建该数据的高速缓存副本,从而使得CPU可以访问该高速缓存副本。
根据本发明实施例,在数据位于非副本区的情况下,存储层级自高至低为:高速缓存、内存、和非副本区。
步骤304,如果所述数据位于HDD,判断在副本区是否包括所述数据的副本。
根据本发明实施例,在数据位于HDD的情况下,存储层级自高至低为:高速缓存、内存、副本区、和HDD。这样,HDD中的一部分数据副本区中具有对应的SSD副本,这一部分数据的子集可能进一步在内存中具有对应的内存副本,更小的子集可能进一步在高速缓存中具有对应的高速缓存副本。因此,对于HDD中的某些数据而言,可能存在SSD副本而不存在内存副本和高速缓存副本。
类似内存和高速缓存,如果副本区中存在某数据的SSD副本,则副本区记录该数据的LBA。这样就可以快速地判断副本区是否存在该数据的SSD副本。
步骤305,如果在副本区包括所述数据的SSD副本,根据所述SSD副本构造对所述访问请求的响应。
在所述响应中包含数据的内容。内存根据该响应,在内存中创建该数据的内存副本,然后根据该副本构造内存对高速缓存的响应;高速缓存根据所述内存对高速缓存的响应,在高速缓存中创建该数据的高速缓存副本,从而使得CPU可以访问该高速缓存副本。
步骤306,如果在副本区不包括所述数据的SSD副本,基于HDD中的所述数据在副本区创建该数据的副本,以便基于所述副本构造对所述访问请求的响应。
在副本区创建该数据的SSD副本,相应地也在SSD中记录该数据的标识,例如LBA。进而,可以根据该SSD副本构造对所述访问请求的响应。内存根据该响应,在内存中创建该数据的内存副本,然后根据该副本构造内存对高速缓存的响应;高速缓存根据所述内存对高速缓存的响应,在高速缓存中创建该数据的高速缓存副本,从而使得CPU可以访问该高速缓存副本。
本领域技术人员可以理解,如果数据位于HDD中,那么CPU要访问该数据,通常会在副本区、内存和高速缓存中均创建该数据的副本。如果该数据的使用频率不够高,那么其在高速缓存、内存或副本区的副本可能被逐出;如果该数据的使用频率足够高,那么其在高速缓存、内存或副本区的副本可能被保留。
根据图3所示的方法,一部分SSD作为HDD和内存之间的存储层级,另一部分SSD作为独立的存储空间。对于比较关键但使用频率不高的数据,可以在将该数据存储到数据存储子系统时,通过例如指定存储目录而选择将该数据存储在非副本区。这样,就不会因为该数据的使用频率不高而被迁移到HDD。
图3所示的方法也解决了关于迁移间隔的两难选择问题。迁移间隔可以设置得较长,以避免迁移本身所需要消耗的额外系统资源抵消迁移所能带来的数据IO速度提高。在两次数据迁移之间,对于被存储到HDD之中的数据,如果该数据被经常使用,那么该数据的副本将会被保留在副本区中,从而CPU对该数据的存取速率也得到了提高。对于被存储到HDD之中的数据,如果该数据被经常使用,那么该数据的副本将会被保留在副本区中,从而CPU对该数据的存取速率也得到了提高,从而克服了迁移间隔过长带来的无法及时反映数据使用频率变化的问题。
根据本发明实施例,将SSD存储空间分配给副本区和非副本区的比例是固定的。如果副本区已经全部被占用,那么在步骤306中,可能不存在足够的副本区的存储空间来创建新的SSD副本。可以将副本区中已有的SSD副本进行逐出,从而回收副本区的存储空间以便创建新的SSD副本。例如,可以将最近不曾被CPU访问过的数据所对应的SSD副本逐出副本区;也可以将最早创建的SSD副本逐出副本区。如果非副本区已经全部被占用,那么在需要向非副本区存储新的数据时,则需要将非副本区已有数据中的一部分迁移到HDD中。被迁移的数据可以例如是非副本区中使用频率最低的数据。非副本区中的数据,可能由于某些原因而被删除,例如,卸载之前安装在非副本区中的应用程序,或者由于数据属性变化而将之前存储在非副本区的数据迁移到HDD中。那么根据本实施例,非副本区中的数据保持空闲状态,并且可以用于在非副本区中存储新的数据。
一般来说,非副本区中的数据要么是比较关键的,要么是有较大概率需要经常使用的。应该尽可能保证非副本区对SSD存储空间的使用。根据本发明的另一个实施例,将SSD存储空间分配给副本区和非副本区的比例是可变的,并且非副本区对SSD存储空间的使用应该比副本区对SSD存储空间的使用具有更高的优先级。
一方面,并不预先将一定容量的SSD存储空间固定地分配给副本区或非副本区;而是将实际存储非副本数据的SSD存储空间作为非副本区,将未被非副本数据占用的SSD存储空间均作为副本区。本领域技术人员可以理解,随着CPU对位于HDD的数据的访问,副本区会使用全部的未被非副本区占用的SSD存储空间。这是因为,在SSD中还存在空闲存储空间时,就会为CPU访问HDD上的数据而创建新的SSD副本,直到SSD中不存在空闲存储空间来创建新的SSD副本。
非副本区中的数据,可能由于某些原因而被删除,例如,卸载之前安装在非副本区中的应用程序,或者由于数据属性变化而将之前存储在非副本区的数据迁移到HDD中。根据上述实施例,所释放的SSD存储空间被用来创建新的SSD副本。
另一方面,在有新的非副本数据需要存储到SSD时,则将一部分之前分配给副本区的存储空间重新分配给非副本区。如前所述,副本区会使用全部的未被非副本区占用的SSD存储空间。因此,需要从所述副本区中逐出一部分SSD副本,从而回收副本区的存储空间,以便实现所述重新分配。
根据本发明实施例,优先使用来自比较稳定的SSD块的副本区来创建新的SSD副本。不同的SSD块可能具有不同的稳定性。这里的SSD块指的是物理上或者逻辑上作为一个独立单元的SSD存储空间,而稳定性指的是向该SSD块增加新的非副本数据,或者从该SSD块减少非副本数据的频率。可以理解,如果频繁地对某个SSD块增减非副本数据,则该SSD块的稳定性较低。
如果不断有新的非副本数据需要存储到SSD,那么按照上面的做法有可能耗尽副本区的存储空间,从而使得无法为存储在HDD中的数据在SSD中创建副本。这样,如果高速缓存和内存中均不存在存储在HDD中的某数据的副本,就只能从HDD中读取该数据。这样,数据存储子系统的整体性能就会降低。
图4是根据本发明另一实施例的层级结构。其中,数据存储子系统包括HDD和SSD,SSD被分为副本区和非副本区。所述副本区用于存储HDD中的数据的SSD副本;所述非副本区用于存储与HDD中的数据独立的数据即非副本数据。与图2所示的层级结构相比,图4所示的层级结构中,副本区被进一步划分为专用副本区和动态副本区。其中,专用副本区的存储空间不能被重新分配给非副本区,而动态副本区的存储空间可以被重新分配给非副本区。
在非副本区对SSD存储空间的使用比副本区对SSD存储空间的使用具有更高的优先级的情况下,如果有新的非副本数据需要存储到SSD,例如在安装新的应用程序时指定安装在非副本区,或者将HDD上的经常使用的数据迁移到非副本区,那么首先判断非副本区是否有足够的空闲存储空间来满足所述安装或者迁移的要求。
如果非副本区已经全部被占用从而无法满足所述安装或者迁移的要求,则将一部分之前分配给副本区的存储空间重新分配给非副本区。由于副本区进一步分为专用副本区和动态副本区,并且只有动态副本区的存储空间可以被重新分配给非副本区,因此只判断动态副本区是否有空闲存储空间来满足所述重新分配的要求。
如果动态副本区的空闲存储空间不能满足所述重新分配的要求,则从所述动态副本区中逐出一部分SSD副本,从而回收动态副本区的存储空间,以便实现所述重新分配。如果所回收的动态副本区的存储空间依然不能满足所述重新分配的要求,则发出消息指示SSD中没有足够的存储空间存储所述新的数据。在后续处理中,可以将非副本区中的一部分数据迁移到HDD中,从而释放非副本区中的存储空间来存储所述新的数据;也可以放弃将所述新的非副本数据存储到SSD。
根据本发明实施例,在副本区分为专用副本区和动态副本区的情况下,当所述访问请求所指示的数据位于HDD时,首先使用专用副本区来创建所述SSD副本;当专用副本区的存储空间不足以创建新的SSD副本时,才使用动态副本区来创建所述SSD副本。
本领域技术人员可以理解,虽然只能从动态副本区逐出SSD副本来重新分配给非副本区,但是动态副本区中的SSD副本可能比专用副本区中的SSD副本更需要保留在SSD中。换句话说,动态副本区中的SSD副本可能比专用副本区中的SSD副本具有更低的逐出指数(measurement)。
如前所述,随着CPU对位于HDD的数据的访问,副本区会使用全部的未被非副本区占用的SSD存储空间。此时如果CPU需要访问位于HDD的新数据,则只能从副本区逐出旧SSD副本以便释放空间来为所述新数据创建SSD副本。这个过程称为副本区更新。一般来说,将动态副本区和专用副本区作为整体考虑来进行副本区更新。根据本发明实施例,为了配合只能将动态副本区的存储空间重新分配给非副本区的设置,可以在副本区更新时,优先对专用副本区的SSD副本进行逐出。这样,在对动态副本区中的SSD副本进行逐出以释放存储空间给非副本区时,专用副本区中的SSD副本有较大的概率比动态副本区中的SSD副本具有更低的逐出指数,从而更需要保留在SSD中。相应地,对动态副本区中的SSD副本进行逐出,就有比较大的概率将具有更高逐出指数的SSD副本逐出副本区。
例如,数据存储子系统可以被配置为在副本区更新时将被CPU访问次数最少的数据所对应的SSD副本逐出副本区,即SSD副本的逐出指数与对应的数据被CPU访问的次数成单调递减函数。那么在计算动态副本区中的SSD副本所对应的数据的被访问次数时,可以乘以一个大于1的权重。这样,如果动态副本区中的第一SSD副本和专用副本区中的第二SSD副本所分别对应的数据被CPU访问的次数一样多,则会逐出专用副本区中的第二SSD副本。
又例如,数据存储子系统也可以被配置为在副本区更新时将将最早创建的SSD副本逐出副本区,即SSD副本的逐出指数与该SSD副本在副本区中的存在时间成单调递增函数。那么在计算专用副本区中的SSD副本的存在时间时,可以乘以一个大于1的权重。这样,如果动态副本区中的第三SSD副本和专用副本区中的第四SSD副本的存在时间一样长,则会逐出专用副本区中的第四SSD副本。
根据本发明另一个实施例,在副本区更新时,仍然将动态副本区和专用副本区作为整体考虑,即在为了副本区更新而计算SSD副本的逐出指数时,并不区分该SSD副本时位于动态副本区还是专用副本区。在需要将动态副本区的SSD副本逐出以释放存储空间给非副本区时,首先选出动态副本区中第一候选SSD副本,从专用副本区中选出第二候选SSD副本。其中第一候选SSD副本是动态副本区的所有SSD副本中逐出指数最高的SSD副本,例如是对应于CPU访问次数最少的SSD副本,或者是存在时间最长的SSD副本;第二候选SSD副本是专用副本区的所有SSD副本中逐出指数最高的SSD副本。然后,比较第一候选SSD副本的逐出指数和第二候选SSD副本的逐出指数。如果第一候选SSD副本的逐出指数大于第二候选SSD副本的逐出指数,则直接从动态副本区中逐出第一候选SSD副本;如果第一候选SSD副本的逐出指数小于第二候选SSD副本的逐出指数,则从专用副本区中逐出第二候选SSD副本,然后将第一候选SSD副本从动态副本区迁移到专用副本区。
本领域技术人员根据上述描述,设计出其他的方案来使得在从动态副本区中逐出SSD副本以释放空间给非副本区时,保留在副本区中的SSD副本有较大的概率具有较低的逐出指数。
图5是根据本发明再一个实施例的层级结构。其中,数据存储子系统包括HDD和SSD,SSD被分为副本区和非副本区。所述副本区用于存储HDD中的数据的SSD副本;所述非副本区用于存储与HDD中的数据独立的数据即非副本数据。副本区被进一步划分为专用副本区和动态副本区。其中,专用副本区的存储空间不能被重新分配给非副本区,而动态副本区的存储空间可以被重新分配给非副本区。与图4所示的层级结构相比,图5所示的层级结构中进一步设置有缓冲区。
如前所述,将SSD存储空间分配给副本区和非副本区的比例是可变的,并且非副本区对SSD存储空间的使用应该比副本区对SSD存储空间的使用具有更高的优先级。一方面,副本区可以使用未被非副本区非副本区占用的SSD存储空间,并且副本区实际上会使用全部的未被非副本区占用的SSD存储空间。另一方面,在有新的非副本数据需要存储到SSD时,则将一部分之前分配给副本区的存储空间重新分配给非副本区。这样,在有新的非副本数据需要存储到SSD时,必须首先进行所述重新分配的步骤,从而可能影响所述新的非副本数据的写入速度。
缓冲区实际上是为非副本区保留的SSD存储空间,即副本区只能使用未被非副本区和缓冲区占用的SSD存储空间。缓冲区与非副本区的区别是,非副本区中存储有非副本数据,而缓冲区是空闲的存储空间。当有新的非副本数据需要存储到SSD时,首先使用缓冲区的存储空间而不是直接进行所述重新分配的步骤。数据存储子系统定期地检查缓冲区的容量,如果所述容量低于缓冲区阈值,则将一部分之前分配给副本区的存储空间重新分配给缓冲区。数据存储子系统也可以响应于特定事件,例如接收到检查缓冲区容量的命令,而不定期地执行所述检查。这样,在有新的非副本数据需要存储到SSD时,不用首先进行所述重新分配的步骤,从而避免了影响所述新的非副本数据的写入速度。本领域技术人员可以理解,虽然图5中同时示出了非副本区、缓冲区、动态副本区和专用副本区,但是并不表示这些分区都需要同时被设置。例如,可以只设置非副本区、缓冲区和副本区,而不再进一步将副本区划分为动态副本区和专用副本区。
图6示出了根据本发明实施例的用于在数据存储子系统中进行数据访问的设备。所述数据存储子系统包括HDD和SSD,其中SSD至少包括副本区和非副本区,其中所述副本区用于存储HDD中的数据的SSD副本,所述非副本区用于存储与HDD中的数据独立的非副本数据。
根据本发明实施例的设备包括:
接收装置,配置为接收针对数据存储子系统中的数据的访问请求,
数据位置判断装置,配置为判断所述数据位于所述非副本区还是位于HDD,
非副本区响应构造装置,配置为如果所述数据位于所述非副本区,基于所述数据构造对所述访问请求的响应,
副本判断装置,配置为如果所述数据位于HDD,进一步判断在所述副本区是否包括所述数据的SSD副本,
副本区响应构造装置,配置为如果在副本区包括所述数据的SSD副本,根据所述SSD副本构造对所述访问请求的响应,以及
副本创建装置,配置为如果在副本区不包括所述数据的SSD副本,基于HDD中的所述数据在副本区创建新SSD副本,以便基于所述新SSD副本构造对所述访问请求的响应。
其中所述SSD中存储非副本数据的存储空间作为所述非副本区,以及所述SSD中未被所述非副本区占用的SSD存储空间作为所述副本区。
该设备进一步包括:
副本区空间释放装置,配置为在有新的非副本数据需要存储到SSD的情况下,释放所述副本区的至少一部分存储空间,以及
副本区空间重新分配装置,配置为将所释放的存储空间重新分配给非副本区以存储所述新的非副本数据。
其中所述SSD中存储非副本数据的存储空间作为所述非副本区,所述SSD中一部分空闲存储空间作为所述缓冲区,以及未被所述非副本区和所述缓冲区占用的SSD存储空间作为所述副本区。
该设备进一步包括:
缓冲区存储装置,配置为在有新的非副本数据需要存储到SSD的情况下,使用所述缓冲区的存储空间来存储所述新的非副本数据。
所述设备进一步包括:
缓冲区容量检查装置,配置为检查缓冲区的容量,
副本区空间释放装置,配置为如果所述容量低于缓冲区阈值,则释放所述副本区的至少一部分存储空间,以及
副本区空间重新分配装置,配置为将所释放的存储空间重新分配给所述缓冲区。
其中所述副本区被进一步划分为专用副本区和动态副本区,并且其中副本区空间释放装置包括:
配置为仅释放动态副本区的至少一部分存储空间的装置。
其中配置为仅释放动态副本区的至少一部分存储空间的装置包括:
配置为从动态副本区中逐出至少一部分SSD副本以释放存储空间的装置,其中保留在所述副本区中的SSD副本具有较低的逐出指数。
其中所述副本创建装置包括:
配置为优先使用专用副本区的存储空间来创建所述新SSD副本的装置,以及
配置为在专用副本区的存储空间不足以创建所述新SSD副本的情况下,使用动态副本区的存储空间来创建所述新SSD副本的装置。
其中所述副本创建装置包括:
配置为优先使用来自具有较高稳定性的SSD块的副本区来创建所述新SSD副本的装置,其中所述稳定性指的是向该SSD块增减非副本数据的频率。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (20)
1.一种用于在数据存储子系统中进行数据访问的方法,所述数据存储子系统包括硬盘驱动器HDD和固态盘SSD,其中SSD至少包括副本区和非副本区,其中所述副本区用于存储HDD中的数据的SSD副本,所述非副本区用于存储与HDD中的数据独立的非副本数据,该方法包括:
接收针对数据存储子系统中的数据的访问请求,
判断所述数据位于所述非副本区还是位于HDD,
如果所述数据位于所述非副本区,基于所述数据构造对所述访问请求的响应,
如果所述数据位于HDD,进一步判断在所述副本区是否包括所述数据的SSD副本,
如果在副本区包括所述数据的SSD副本,根据所述SSD副本构造对所述访问请求的响应,以及
如果在副本区不包括所述数据的SSD副本,基于HDD中的所述数据在副本区创建新SSD副本,以便基于所述新SSD副本构造对所述访问请求的响应。
2.如权利要求1所述的方法,其中所述SSD中存储非副本数据的存储空间作为所述非副本区,以及所述SSD中未被所述非副本区占用的SSD存储空间作为所述副本区。
3.如权利要求2所述的方法,进一步包括:
在有新的非副本数据需要存储到SSD的情况下,释放所述副本区的至少一部分存储空间,以及
将所释放的存储空间重新分配给非副本区以存储所述新的非副本数据。
4.如权利要求1所述的方法,其中所述SSD中存储非副本数据的存储空间作为所述非副本区,所述SSD中一部分空闲存储空间作为所述缓冲区,以及未被所述非副本区和所述缓冲区占用的SSD存储空间作为所述副本区。
5.如权利要求4所述的方法,进一步包括:
在有新的非副本数据需要存储到SSD的情况下,使用所述缓冲区的存储空间来存储所述新的非副本数据。
6.如权利要求5所述的方法,进一步包括:
检查缓冲区的容量,
如果所述容量低于缓冲区阈值,则释放所述副本区的至少一部分存储空间,以及
将所释放的存储空间重新分配给所述缓冲区。
7.如权利要求3或6所述的方法,其中所述副本区被进一步划分为专用副本区和动态副本区,并且其中释放所述副本区的至少一部分存储空间包括:
仅释放动态副本区的至少一部分存储空间。
8.如权利要求7所述的方法,其中仅释放动态副本区的至少一部分存储空间包括:
从动态副本区中逐出至少一部分SSD副本以释放存储空间,其中保留在所述副本区中的SSD副本具有较低的逐出指数。
9.如权利要求7所述的方法,其中基于HDD中的所述数据在副本区创建新SSD副本包括:
优先使用专用副本区的存储空间来创建所述新SSD副本,以及
在专用副本区的存储空间不足以创建所述新SSD副本的情况下,使用动态副本区的存储空间来创建所述新SSD副本。
10.如权利要求1到6中任意一项所述的方法,其中基于HDD中的所述数据在副本区创建新SSD副本包括:
优先使用来自具有较高稳定性的SSD块的副本区来创建所述新SSD副本,其中所述稳定性指的是向该SSD块增减非副本数据的频率。
11.一种用于在数据存储子系统中进行数据访问的设备,所述数据存储子系统包括硬盘驱动器HDD和固态盘SSD,其中SSD至少包括副本区和非副本区,其中所述副本区用于存储HDD中的数据的SSD副本,所述非副本区用于存储与HDD中的数据独立的非副本数据,该设备包括:
接收装置,配置为接收针对数据存储子系统中的数据的访问请求,
数据位置判断装置,配置为判断所述数据位于所述非副本区还是位于HDD,
非副本区响应构造装置,配置为如果所述数据位于所述非副本区,基于所述数据构造对所述访问请求的响应,
副本判断装置,配置为如果所述数据位于HDD,进一步判断在所述副本区是否包括所述数据的SSD副本,
副本区响应构造装置,配置为如果在副本区包括所述数据的SSD副本,根据所述SSD副本构造对所述访问请求的响应,以及
副本创建装置,配置为如果在副本区不包括所述数据的SSD副本,基于HDD中的所述数据在副本区创建新SSD副本,以便基于所述新SSD副本构造对所述访问请求的响应。
12.如权利要求11所述的设备,其中所述SSD中存储非副本数据的存储空间作为所述非副本区,以及所述SSD中未被所述非副本区占用的SSD存储空间作为所述副本区。
13.如权利要求12所述的设备,该设备进一步包括:
副本区空间释放装置,配置为在有新的非副本数据需要存储到SSD的情况下,释放所述副本区的至少一部分存储空间,以及
副本区空间重新分配装置,配置为将所释放的存储空间重新分配给非副本区以存储所述新的非副本数据。
14.如权利要求11所述的设备,其中所述SSD中存储非副本数据的存储空间作为所述非副本区,所述SSD中一部分空闲存储空间作为所述缓冲区,以及未被所述非副本区和所述缓冲区占用的SSD存储空间作为所述副本区。
15.如权利要求14所述的设备,进一步包括:
缓冲区存储装置,配置为在有新的非副本数据需要存储到SSD的情况下,使用所述缓冲区的存储空间来存储所述新的非副本数据。
16.如权利要求15所述的设备,进一步包括:
缓冲区容量检查装置,配置为检查缓冲区的容量,
副本区空间释放装置,配置为如果所述容量低于缓冲区阈值,则释放所述副本区的至少一部分存储空间,以及
副本区空间重新分配装置,配置为将所释放的存储空间重新分配给所述缓冲区。
17.如权利要求13或16所述的设备,其中所述副本区被进一步划分为专用副本区和动态副本区,并且其中副本区空间释放装置包括:
配置为仅释放动态副本区的至少一部分存储空间的装置。
18.如权利要求17所述的设备,其中配置为仅释放动态副本区的至少一部分存储空间的装置包括:
配置为从动态副本区中逐出至少一部分SSD副本以释放存储空间的装置,其中保留在所述副本区中的SSD副本具有较低的逐出指数。
19.如权利要求17所述的设备,其中所述副本创建装置包括:
配置为优先使用专用副本区的存储空间来创建所述新SSD副本的装置,以及
配置为在专用副本区的存储空间不足以创建所述新SSD副本的情况下,使用动态副本区的存储空间来创建所述新SSD副本的装置。
20.如权利要求11到6中任意一项所述的设备,其中所述副本创建装置包括:
配置为优先使用来自具有较高稳定性的SSD块的副本区来创建所述新SSD副本的装置,其中所述稳定性指的是向该SSD块增减非副本数据的频率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310357278.XA CN104375961A (zh) | 2013-08-16 | 2013-08-16 | 用于在数据存储子系统中进行数据访问的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310357278.XA CN104375961A (zh) | 2013-08-16 | 2013-08-16 | 用于在数据存储子系统中进行数据访问的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104375961A true CN104375961A (zh) | 2015-02-25 |
Family
ID=52554888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310357278.XA Pending CN104375961A (zh) | 2013-08-16 | 2013-08-16 | 用于在数据存储子系统中进行数据访问的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104375961A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9785562B2 (en) | 2014-05-30 | 2017-10-10 | International Business Machines Corporation | Adjusting allocation of storage devices |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100211731A1 (en) * | 2009-02-19 | 2010-08-19 | Adaptec, Inc. | Hard Disk Drive with Attached Solid State Drive Cache |
US20110179219A1 (en) * | 2004-04-05 | 2011-07-21 | Super Talent Electronics, Inc. | Hybrid storage device |
CN102136274A (zh) * | 2009-12-30 | 2011-07-27 | 爱国者电子科技有限公司 | 一种具有两种存储介质的移动硬盘 |
US20110246821A1 (en) * | 2010-03-30 | 2011-10-06 | International Business Machines Corporation | Reliability scheme using hybrid ssd/hdd replication with log structured management |
CN102317926A (zh) * | 2009-02-13 | 2012-01-11 | 韩商英得联股份有限公司 | 将高速存储装置作为缓存使用的存储系统 |
CN102364474A (zh) * | 2011-11-17 | 2012-02-29 | 中国科学院计算技术研究所 | 用于机群文件系统的元数据存储系统和管理方法 |
-
2013
- 2013-08-16 CN CN201310357278.XA patent/CN104375961A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110179219A1 (en) * | 2004-04-05 | 2011-07-21 | Super Talent Electronics, Inc. | Hybrid storage device |
CN102317926A (zh) * | 2009-02-13 | 2012-01-11 | 韩商英得联股份有限公司 | 将高速存储装置作为缓存使用的存储系统 |
US20100211731A1 (en) * | 2009-02-19 | 2010-08-19 | Adaptec, Inc. | Hard Disk Drive with Attached Solid State Drive Cache |
CN102136274A (zh) * | 2009-12-30 | 2011-07-27 | 爱国者电子科技有限公司 | 一种具有两种存储介质的移动硬盘 |
US20110246821A1 (en) * | 2010-03-30 | 2011-10-06 | International Business Machines Corporation | Reliability scheme using hybrid ssd/hdd replication with log structured management |
CN102364474A (zh) * | 2011-11-17 | 2012-02-29 | 中国科学院计算技术研究所 | 用于机群文件系统的元数据存储系统和管理方法 |
Non-Patent Citations (1)
Title |
---|
李晋琳: ""RAID中固态盘二级缓存机制研究与实现"", 《信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9785562B2 (en) | 2014-05-30 | 2017-10-10 | International Business Machines Corporation | Adjusting allocation of storage devices |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108733313B (zh) | 利用预备盘建立多级闪速缓存的方法、设备和计算机可读介质 | |
US10795586B2 (en) | System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash | |
JP5489434B2 (ja) | フラッシュメモリ搭載ストレージ装置 | |
JP6496626B2 (ja) | 異種統合メモリ部及びその拡張統合メモリスペース管理方法 | |
US8533397B2 (en) | Improving performance in a cache mechanism by way of destaging data in partial strides | |
US20190050327A1 (en) | Method and system for rearranging a write operation in a shingled magnetic recording device | |
US10019352B2 (en) | Systems and methods for adaptive reserve storage | |
US8595451B2 (en) | Managing a storage cache utilizing externally assigned cache priority tags | |
US7979631B2 (en) | Method of prefetching data in hard disk drive, recording medium including program to execute the method, and apparatus to perform the method | |
JP5646633B2 (ja) | ストレージ装置 | |
US11126561B2 (en) | Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive | |
CN107908571B (zh) | 一种数据写入方法、闪存装置及存储设备 | |
US20200167252A1 (en) | Method and apparatus for managing storage system | |
JP2005293205A (ja) | 記憶制御装置、制御方法、および制御プログラム。 | |
JP2014186412A (ja) | 制御装置,ストレージ装置,及び制御プログラム | |
US11204869B2 (en) | System and method for facilitating data storage with low-latency input/output and persistent data | |
CN109478164B (zh) | 用于存储用于高速缓存条目传输的高速缓存位置信息的系统和方法 | |
JP4734432B2 (ja) | データ記憶システム | |
US10162573B2 (en) | Storage management system, storage management method, storage medium and information processing system | |
US20200233609A1 (en) | Method and apparatus for performing pipeline-based accessing management in a storage server | |
US10891239B2 (en) | Method and system for operating NAND flash physical space to extend memory capacity | |
CN104375961A (zh) | 用于在数据存储子系统中进行数据访问的方法和装置 | |
US11354233B2 (en) | Method and system for facilitating fast crash recovery in a storage device | |
US11281575B2 (en) | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks | |
US20210191851A1 (en) | System and method for facilitating reduction of latency and mitigation of write amplification in a multi-tenancy storage drive |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150225 |