一种数据处理方法、装置及系统的制作方法

文档序号:6363064阅读:128来源:国知局
专利名称:一种数据处理方法、装置及系统的制作方法
技术领域
本发明涉及计算机领域,尤其涉及一种数据处理方法、装置及系统。
背景技术
如何解决IO瓶颈是服务器领域最热门的话题。信息数据的爆炸使存储容量成倍增长,但存储和IO技术的增长无法跟上信息数据量增长的速度,造成IO的负担越发严重。 压缩技术利用富余的处理器计算能力,既可以减少数据存储的容量,又可以降低IO传输带宽;缓存技术(SSD缓存,Page Cache)将热点数据放置在速度更快的存储模块,降低IO瓶颈。操作系统厂商提供文件系统和内存的数据压缩功能;存储厂商提供存储压缩功能;数据库厂商提供数据库压缩功能;各厂商力争各自的压缩功能做到透明,避免对其它模块功能的影响。但是,内存、文件系统等实时压缩的功能对不同类型数据块统一处理,实时压缩算法压缩比例并不高,这些都造成目前的压缩技术存在诸多缺陷(I)从内存到文件系统到存储,各个层级单独提供透明压缩功能,无法有效配合。 若同时开启压缩功能,可能带来负面影响。(2)不同的压缩算法对不同数据压缩效率不同,统一处理,性能提升不明显。(3)缓存热点数据实时性要求高,压缩带来的额外开销甚至有可能造成性能下降。

发明内容
针对目前各种压缩方案无法相互有效配合,以及热点数据压缩带来的额外开销问题,本发明实施例将压缩技术和缓存技术相结合,提供一种基于数据压缩的数据存储方法, 提闻存储性能。具体技术方案如下本发明实施例提供一种计算节点,该计算节点包括硬件层、运行在硬件层之上的操作系统以及运行在操作系统之上的应用层,所述硬件层包括处理器、存储控制器、第一存储阵列和第二存储阵列;所述第一存储阵列对于操作系统呈现为两个逻辑存储区域,分别是第一存储区和第二存储区;所述第二存储阵列对操作系统呈现为两个逻辑存储区域,分别是第三存储区和第四存储区;所述第一存储区存储未压缩的热点数据,所述第二存储区存储已压缩的温点数据,所述第三存储区存储未压缩的温点数据和未压缩的冷点数据,所述第四存储区存储已压缩的冷点数据;所述操作系统用于接收所述应用层发起的数据写入请求,所述数据写入请求包含待写入的数据块,所述数据块具有热度属性和压缩属性,其中所述热度属性为热点、温点或冷点,所述压缩属性为可压缩或不可压缩,根据所述数据块的热度属性和压缩属性,向所述处理器发送相应的数据写入指令,由所述处理器将所述数据写入指令发送给所述存储控制器,所述数据写入指令包含所述数据块写入的目标存储区;所述存储控制器用于接收所述处理器发送的数据写入指令,并根据所述数据写入指令将所述数据块写入对应的目标存储区。
本发明实施例还提供一种数据处理方法,该方法应用于计算节点,所述计算节点包含第一存储阵列和第二存储阵列,所述第一存储阵列对于操作系统呈现为两个逻辑存储区域,分别是第一存储区和第二存储区;所述第二存储阵列对操作系统呈现为两个逻辑存储区域,分别是第三存储区和第四存储区,该方法包括获取数据写入请求,所述数据写入请求包含待写入的数据块,所述数据块包含热度属性和压缩属性,其中所述热度属性为热点、温点或冷点,所述压缩属性为可压缩或不可压缩;根据所述数据块的热度属性和压缩属性,将所述数据块写入对应的目标存储区, 所述目标存储区为第一存储区、第二存储区、第三存储区和第四存储区中的一个或多个存储区。本发明实施例还提供一种计算机系统,该系统至少包括一个本发明实施例提供的计算节点。综上所述,本发明实施例提供的计算节点及计算机系统,利用数据压缩技术,提高数据在缓存或热点数据盘的命中率;另外,通过对数据的热度进行区分,例如对访问最频繁的热点数据不压缩,而对访问频度居中的温点数据进行压缩处理,以及通过将存储区域进一步细分为存储压缩数据的区域和存储不压缩数据的区域,在利用压缩提高缓存命中率的同时,弱化了数据压缩可能带来的一些负面影响;再次,通过给数据增加热度属性和压缩属性,内存和数据存储之间、缓存和普通存储之间或热点数据盘与普通存储之间都可以通过信息共享来共享这些数据的信息,实现协同工作。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例提供的计算节点的逻辑结构示意图;图2为本发明实施例提供的计算节点的存储区域逻辑划分示意图;图3为本发明实施例提供的计算机系统的逻辑结构示意图;图4为本发明实施例提供的一种数据处理方法的方法流程示意图;图5为本发明实施例提供的一种数据写入方法的具体流程图;图6为本发明实施例提供的另一种数据处理方法的方法流程示意图;图7为本发明实施例提供的数据读取方法的具体流程图;图8为本发明实施例提供的数据预取方法的具体流程图;图9为本发明实施例提供的数据替换方法的具体流程图;图10为本发明实施例提供的离线数据压缩方法的具体流程图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参与图1,为本发明实施例提供的一种计算节点的结构示意图。如图I所示,该计算节点包括硬件层10、运行在硬件层之上的操作系统20以及运行在操作系统之上的应用层 30,硬件层10又包括处理器11、存储控制器12、第一存储阵列13和第二存储阵列14 ;如图2所示,第一存储阵列13对于操作系统20呈现为两个逻辑存储区域,分别是第一存储区131和第二存储区132 ;第二存储阵列14对操作系统20呈现为两个逻辑存储区域,分别是第三存储区141和第四存储区142 ;第一存储区131存储未压缩的热点数据,第二存储区 132存储已压缩的温点数据,第三存储区141存储未压缩的温点数据和未压缩的冷点数据, 第四存储区142存储已压缩的冷点数据。如图2所示,第一存储阵列13和第二存储阵列14 可以通过存储控制器12连接。通常而言,温点数据的访问频度介于热点数据和冷点数据之间。数据的访问频度,即数据的温点、热点、冷点属性是可以变化的。在该计算节点中,操作系统20用于接收应用层30发起的数据写入请求,所述数据写入请求包含待写入的数据块,所述数据块具有热度属性和压缩属性,其中所述热度属性为热点、温点或冷点,所述压缩属性为可压缩或不可压缩,根据所述数据块的热度属性和压缩属性,向处理器11发送相应的数据写入指令,由处理器11将所述数据写入指令发送给存储控制器12,所述数据写入指令包含所述数据块写入的目标存储区;在一种实现方式,应用层30发起的数据写入请求中包含的数据块的压缩属性可以为可压缩或不可压缩,即当压缩属性为可压缩时,用同一的压缩算法对所有的数据进行压缩和相应的解压缩,当压缩属性为不可压缩时,不需对数据进行压缩;在另一种实现方式下,该压缩属性为可压缩时,不同的数据块还可以有不同的压缩算法,即当数据块的压缩属性为可压缩时,根据数据块压缩属性指向的具体压缩算法对该数据块进行压缩操作。存储控制器12用于接收操作系统20对数据块的数据写入指令,并根据所述数据写入指令将所述数据块写入对应的目标存储区;这里目标存储区可以为第一存储区、第二存储区、第三存储区或第四存储区。进一步地,操作系统20还用于当所述数据块的压缩属性为可压缩时,将数据压缩指令发送给处理器11 ;相应的,处理器11用于接收操作系统20发送的数据压缩指令,并对所述数据块执行数据压缩操作。具体地,操作系统20根据所述数据块的热度属性和压缩属性,向所述处理器发送相应的数据写入指令可以包括以下几种情况若所述数据块的热度属性是热点,向所述处理器发送将所述数据块写入第一存储区的数据写入指令;若所述数据块的热度属性是温点,且所述数据块的压缩属性是可压缩,向所述处理器发送将所述数据块进行压缩的数据压缩指令,以及将压缩后的数据块写入第二存储区的数据写入指令;若所述数据块的热度属性是温点,且所述数据块的压缩属性是不可压缩,向所述处理器发送将所述数据块写入第三存储区的数据写入指令;若所述数据块的热度属性是冷点,且所述数据块的压缩属性是可压缩,向所述处理器发送将所述数据块进行压缩的数据压缩指令,以及将压缩后的数据块写入第四存储区的数据写入指令;若所述数据块的热度属性是冷点,且所述数据块的压缩属性是不可压缩,向所述处理器发送将所述数据块写入第三存储区的数据写入指令。在本发明实施例提供的计算节点中,第一存储阵列可以为固态硬盘SSD(Solid State Disk)阵列,所述第二存储阵列为旋转磁盘HDD (Hard Disk Drive)阵列;或者,所述第一存储阵列和所述第二存储阵列为访问性能不同的SSD阵列。其中第一存储阵列可以作为访问性能高的存储设备,该存储设备可以做缓存,也可以做热点数据盘。本发明实施例提供的计算节点可以是物理主机,具体可以是个人计算机 PC (Personal Computer)、笔记本电脑 laptop、工作站 Workstation、服务器 Server、大型机 Mainframe或者超级计算机Supercomputer,或者具体可以是手机、智能终端等等,也可以是虚拟机。除上述方法之外,在本发明实施例提供的计算节点中还可以执行相应的数据读取、数据替换、数据预取、离线数据压缩等操作。另外,需要说明的是,本发明实施例中第一和第二只是为了区分存储阵列或存储区,并无顺序限定的意思。请参阅图3,为本发明实施例提供的一种计算机系统的逻辑结构示意图,该系统至少包括一个本发明实施例所述的计算节点,各个计算节点之间可以具有通信连接,也可以没有通信连接。综上所述,本发明实施例提供的计算节点及计算机系统,利用数据压缩技术,提高数据在缓存或热点数据盘的命中率,并支持对不同的数据采取不同的压缩算法,提高了数据的压缩效率;另外,通过对数据的热度进行区分,例如对访问最频繁的热点数据不压缩, 而对访问频度居中的温点数据进行压缩处理,以及通过将存储区域进一步细分为存储压缩数据的区域和存储不压缩数据的区域,在利用压缩提高缓存命中率的同时,弱化了数据压缩可能带来的一些负面影响;再次,通过给数据增加热度属性和压缩属性,内存和数据存储之间、缓存和普通存储之间或热点数据盘与普通存储之间都可以通过信息共享来共享这些数据的信息,实现协同工作。请参与图4,为本发明实施例提供的一种数据处理方法的方法流程示意图。该方法应用于计算节点,所述计算节点包含第一存储阵列和第二存储阵列,所述第一存储阵列对于操作系统呈现为两个逻辑存储区域,分别是第一存储区和第二存储区;所述第二存储阵列对操作系统呈现为两个逻辑存储区域,分别是第三存储区和第四存储区。进一步的,该方法可以应用于本发明实施例提供的计算节点中。如图4所示,该方法包括S101、获取数据写入请求,所述数据写入请求包含待写入的数据块,所述数据块包含热度属性和压缩属性,其中所述热度属性为热点、温点或冷点,所述压缩属性为可压缩或不可压缩;所述数据写入请求一般是由应用层发起的。S102、根据所述数据块的热度属性和压缩属性,将所述数据块写入对应的目标存储区,所述目标存储区为第一存储区、第二存储区、第三存储区和第四存储区中的一个或多个存储区。具体地,该步骤S102可以包括以下几种情况
若所述数据块的热度属性是热点,将所述数据块写入所述第一存储区;若所述数据块的热度属性是温点,且所述数据块的压缩属性是可压缩,将所述数据块压缩后写入所述第二存储区;若所述数据块的热度属性是温点,且所述数据块的压缩属性是不可压缩,将所述数据块写入所述第三存储区;若所述数据块的热度属性是冷点,且所述数据块的压缩属性是可压缩,将所述数据块压缩后写入所述第四存储区;若所述数据块的热度属性是冷点,且所述数据块的压缩属性是不可压缩,将所述数据块写入所述第三存储区。应当理解的是,本发明实施例所提供的第一存储阵列可以做缓存,也可以做热点数据盘。当第一存储阵列做热点数据盘时,第二存储阵列只存储除第一存储阵列存储的数据之外的数据;当第一存储阵列做缓存时,第二存储阵列存储的是全部的系统的全部数据, 包括热点、温点和冷点数据。因此,当第一存储阵列为缓存时,上述方法写入第一存储阵列, 即第一存储区和第二存储区的数据还可以写入第二存储阵列相应的存储区,因此,在上述方法的步骤若所述数据块的热度属性是热点,将所述数据块写入第一存储区之后,所述方法还包括若所述数据块的压缩属性是可压缩,将所述数据块压缩后写入第四存储区;若所述数据块的压缩属性是不可压缩,将所述数据块写入第三存储区。相应的,在上述方法步骤若所述数据块的热度属性是温点,且所述数据块的压缩属性是可压缩,将所述数据块压缩后写入第二存储区之后,所述方法还包括将所述压缩后的数据块写入第四存储区。应当理解的是,这里将所述数据块压缩后获得压缩后的数据块,然后执行将压缩后的数据块写入第二存储区的步骤和将压缩后的的数据块写入第四存储区的步骤,这两个步骤的意义是将数据块即写入缓存,又写入存储全部数据的磁盘,二者的顺序并没有特殊的限定,可以同时执行,也可以一个在先一个在后。同理前述步骤也类似,在此不再赘述。如图5所示,是本发明实施例提供的数据处理方法的一种实现方式的流程图401、获取数据写入请求;该数据写入请求可以是某种应用自动定时或不定时发起的,也可以是由用户操作引起的。402、根据数据的热度属性判断数据是否是热点数据,若是,转步骤403,若否,转步骤 404 ;403、将数据写入第一存储区,数据写入操作结束;404、根据数据的压缩属性判断数据是否可压缩,若不可压缩,转步骤406,若可压缩,转步骤405 ;405根据数据的热度属性判断数据是否是温点数据,若是,转步骤407,若否,转步骤 408 ;406将数据写入第三存储区,数据写入操作结束;407根据数据的压缩属性选择相应的压缩算法将数据压缩后写入第二存储区,数据写入操作结束;408根据数据的压缩属性选择相应的压缩算法,将数据压缩后写入第四存储区,数据写入操作结束。
这里数据的压缩属性不但可以指示数据是否可压缩,还可以指示数据可采取的压缩算法,例如压缩属性为不可压缩代表数据不能被压缩,压缩属性为 LZff (Lempel-Ziv-ffelch Encoding)压缩算法,则代表数据可压缩且推荐的压缩算法是LZW 压缩算法,这样不同的数据块就能赋予不同的压缩算法,从而根据数据块的特性选择合适的压缩算法压缩,提高压缩效率,进而提高存储性能。需要说明的是,图5只是示例说明,是本发明实施例提供的数据处理方法的一种实现方式,本领域普通技术人员据此容易想到其它的实现方式,例如首先判断数据的压缩属性,将数据分类,然后判断数据的热度属性,确定数据的存储区域等。请参阅图6,为本发明实施例提供的另一数据处理方法的方法流程示意图,如图6 所示,该方法包括S201、获取数据读取请求,所述数据读取请求包含待读取的数据块标识;该数据读取请求一般是由应用层的应用发起的。S202、以所述待读取的数据块标识为索引从操作系统维护的元数据信息中获取所述待读取的数据块的存储区域以及所述待读取数据块的压缩状态,所述压缩状态为已压缩或未压缩;在一种实现方式,操作系统可以维护一个或多个元数据信息表,该元数据信息表由于访问频繁可以存储在缓存或热点数据盘中,该元数据信息表包含所有数据块的元数据信息,例如数据块的数据热度属性、压缩属性、压缩状态属性(已压缩或未压缩)、存储位置等信息。其中压缩可以为可压缩或不可压缩,可压缩又可以具体为不同的压缩算法;存储位置可以为第一存储阵列或第二存储阵列,也可以具体到第一或二或三或四存储区,或者更具体的某一扇区,或者存储位置从大的存储阵列到小的存储区到具体的某一扇区信息都保存,本发明实施例对此不做限定。S203、若所述待读取的数据块的存储区域是第一存储阵列,且所述待读取的数据块的压缩状态是未压缩,从所述第一存储区读取所述待读取的数据块;S204、若待读取的数据块的存储区域是第一存储阵列,且所述待读取的数据块的压缩状态是已压缩,将所述数据块解压缩并迁移或复制至第一存储区,并从所述第一存储区读取所述数据块;S205、若待读取的数据块的存储区域是第二存储阵列,且所述待读取的数据块的压缩状态是未压缩,将所述待读取的数据块迁移或复制到第一存储区,并从所述第一存储区读取所述数据块;S206、若待读取的数据块的存储区域是第二存储阵列,且所述待读取的数据块的压缩状态是已压缩,将所述待读取的数据块解压缩并迁移或复制至第一存储区,并从所述第一存储区读取所述数据块。图7为本发明实施例提供的该数据处理方法,即数据读取方法的一种实现方式的流程图600、流程开始;601、获取数据读取请求,该数据读取请求可以是某一应用自动定时或不定时发起的,也可以是由用户操作触发的;602、判断数据是否在第一存储阵列,若是,执行步骤603,若否,转步骤605,本发明实施例中第一存储阵列是缓存或热点数据盘,用来存储较常访问的热点或温点数据;603、判断数据是否已压缩,若是,执行步骤604,若否,转步骤608 ;604、将数据从第二存储区解压缩至第一存储区,这里数据的解压缩算法可以根据数据的压缩属性相应选取,也可以采用统一的解压缩算法;605、判断数据是否已压缩,若是,执行步骤606,若否,转步骤607 ;606、将数据从第四存储区解压缩至第一存储区;607、将数据从第三存储区迁移或复制到第一存储区,应当理解的是,当第一存储阵列做缓存时,需要将第三存储区的数据复制到第一存储区,当第一存储阵列做热点数据盘时,可以将第三存储区的数据迁移到第一存储区;608、从第一存储区读取数据;609、数据读取操作结束。需要说明的是,图7仅是本发明实施例提供的数据读取方法的一种实现方式,本领域普通技术人员据此容易得出可替代或等同的其它实现方式,本发明在此不再赘述。本发明实施例还提供另一数据处理方法的方法流程示意图。该方法可以看做操作系统发起的数据预取操作,即将定期或不定期将需要经常访问的数据从访问速度慢的存储区预取到访问速度较快的存储区,例如本发明实施例中将数据从访问性能稍差的HDD构建的第一存储阵列(包括第三存储区和第四存储区)预取到作缓存或做热点数据盘的第一存储阵列(包括第一存储区和第二存储区),该第一存储阵列可以实现为高速的SSD阵列。该方法包括获取数据预取请求,所述数据预取请求包含待预取的数据块标识;以所述待预取的数据块标识为索引从操作系统维护的元数据信息中获取所述待预取的数据块的压缩状态,所述压缩状态为已压缩或未压缩;若所述待预取的数据块的压缩状态是未压缩,将所述数据块标识对应的数据块从第三存储区迁移或复制到所述第一存储区,并将所述数据块标记为热点数据;若所述待预取的数据块的压缩状态是已压缩,在所述第一存储区有空闲区域时, 将所述数据块解压缩并迁移或复制到所述第一存储区,并将所述数据块标记为热点数据; 在所述第一存储区没有空闲区域时,将所述数据块迁移或复制到所述第二存储区,并将所述数据块标记为温点数据。需要说明的是,本发明实施例无意限定是先判断数据块是否已压缩,还是先判断数据块存储在那个存储区。图8为上述数据处理方法的具体实现流程图,如图8所示,该方法包括801、数据预取启动;数据预取请求通常是操作系统定期或不定期发起的,获取到该数据预取请求之后启动数据预取操作。802、判断数据是否已压缩。本发明实施例中通过查询元数据信息获得数据的压缩状态信息。若是,执行步骤803,若否,转步骤804 ;803、将数据从第四存储区预取至第二存储区;804、将数据从第三存储区预取至第一存储区;805、判断第一存储区是否为空,若是,执行步骤806,若否,转步骤808 ;806、将数据从第二存储区解压缩并读入第一存储区;
807、将数据标记为热点数据;808、将数据标记为温点数据;809、流程结束。需要说明的是,以上只是举例说明,具体实现的时候可以有其它方式,例如在步骤804将数据读入第一存储区之前也可以判断第一存储区是否有空闲,若有空闲执行步骤 804,若没空闲,可以放弃数据预取或将数据压缩后读入第二存储区。本发明实施例中通过数据预取操作,能将访问相对频繁的热点数据从访问性能差的存储阵列预取到访问性能高的存储阵列,并在预取的过程中根据数据的压缩属性对数据块进行压缩,使得更多的热点或温点数据能够存储在访问性能高的存储阵列,提高数据读取的命中率,同时根据数据的热度属性对热点数据选择不压缩存储,以免解压缩带来的额外开销影响数据的读取效率。本发明实施例还提供另一数据处理方法的方法流程示意图。该方法可以看做数据替换操作,即当访问性能高的存储阵列中访问频繁的数据变得不再频繁被访问时,将其从访问性能高的存储阵列替换到访问性能低的存储阵列,这里的替换可以是将这些数据取出,也可以在取出的同时用其它访问频繁的数据代替。该方法包括获取数据替换请求,所述数据替换请求包含待替换的数据块标识;以所述待替换的数据块标识为索引从操作系统维护的元数据信息中获取所述待替换的数据块的热度属性和压缩属性;若所述待替换的数据块的热度属性是温点,且所述待替换的数据块的压缩属性是可压缩,将所述数据块压缩并从第一存储区迁移到第二存储区;若所述待替换的数据块的热度属性是温点,且所述待替换的数据块的压缩属性是不可压缩,将所述数据块从第一存储区迁移到第三存储区;若所述待替换的数据块的热度属性是冷点,且所述待替换的数据块的压缩属性是可压缩,将所述数据块压缩后从第一存储区迁移到第四存储区;若所述待替换的数据块的热度属性是冷点,且所述待替换的数据块的压缩属性是不可压缩,将所述数据块从第一存储区迁移到第三存储区。图9为上述数据处理方法的具体流程图,如图9所示,该方法包括901、数据替换操作开始。此操作通常是操作系统定期或不定期发起的。902、判断数据是否是温点数据,若是,执行步骤903,若否,转步骤906 ;应当理解的是,这里的判断的数据通常是第一存储区或第二存储区的数据,这些数据之所以被存储在这两个存储区是因为它们访问频繁度较高,但是数据的访问频繁度,也即数据的热度是会发生变化的,因此一段时间之后可以对这些数据执行替换操作,判断这些数据是否仍然是热点数据。903、判断该数据是否可压缩,若是,执行步骤904 ;若否,转步骤905。904、将该数据压缩后从第一存储区替换至第二存储区。这里应当理解的是,数据压缩可以采用统一压缩算法,也可以根据数据的压缩属性选择合适的压缩算法。905、将数据从第一存储区替换至第三存储区。906、判断数据是否已压缩,若是,执行步骤907 ;若否,转步骤908。907、将数据从第二存储区替换至第四存储区。
908、将数据从第一存储区替换至第三存储区。909、数据替换操作结束。从上述所有实施例提供的数据处理方法可以看出,在执行数据读取或数据写入等操作时可以根据需求进行在线的数据压缩或解压缩处理,而本发明实施例提供的数据处理方法也支持数据离线压缩操作,如图10所示,该示例是对第三存储区的数据进行离线压缩的过程,该方法包括1001、离线压缩开始。1002、判断是否有数据未压缩,若是,执行步骤1003 ;若否,转步骤1005。需要说明的是,本发明实施例是假设对第三存储区的数据全部进行压缩处理,第三存储区的数据往往没有被压缩,这里判断是为了更准确的保证没有对已压缩数据的冗余操作。当然这一判断步骤也可以根据实际需要另行定义,例如,如果有目的数据需要压缩,那么直接对这些数据进行压缩即可,不需要判断。1003、选择压缩算法,可以根据数据的压缩属性选择压缩算法,也可以对所有数据采取同样的压缩算法。1004、将数据从第三存储区压缩后移动到第四存储区,这里的移动可以是迁移,也可以是复制。1005、离线压缩操作结束。综上所述,本发明实施例提供的数据处理方法,利用数据压缩技术,提高数据在缓存或热点数据盘的命中率,并支持对不同的数据采取不同的压缩算法,提高了数据的压缩效率;另外,通过对数据的热度进行区分,例如对访问最频繁的热点数据不压缩,而对访问频度居中的温点数据进行压缩处理,以及通过将存储区域进一步细分为存储压缩数据的区域和存储不压缩数据的区域,在利用压缩提高缓存命中率的同时,弱化了数据压缩可能带来的一些负面影响;再次,通过给数据增加热度属性和压缩属性,内存和数据存储之间、缓存和普通存储之间或热点数据盘与普通存储之间都可以通过信息共享来共享这些数据的信息,实现协同工作。
权利要求
1.一种计算节点,其特征在于,所述计算节点包括硬件层、运行在硬件层之上的操作系统以及运行在操作系统之上的应用层,所述硬件层包括处理器、存储控制器、第一存储阵列和第二存储阵列;所述第一存储阵列对于操作系统呈现为两个逻辑存储区域,分别是第一存储区和第二存储区;所述第二存储阵列对操作系统呈现为两个逻辑存储区域,分别是第三存储区和第四存储区;所述第一存储区存储未压缩的热点数据,所述第二存储区存储已压缩的温点数据,所述第三存储区存储未压缩的温点数据和未压缩的冷点数据,所述第四存储区存储已压缩的冷点数据;所述操作系统用于接收所述应用层发起的数据写入请求,所述数据写入请求包含待写入的数据块,所述数据块具有热度属性和压缩属性,其中所述热度属性为热点、温点或冷点,所述压缩属性为可压缩或不可压缩,根据所述数据块的热度属性和压缩属性,向所述处理器发送相应的数据写入指令,由所述处理器将所述数据写入指令发送给所述存储控制器,所述数据写入指令包含所述数据块写入的目标存储区;所述存储控制器用于接收所述处理器发送的数据写入指令,并根据所述数据写入指令将所述数据块写入对应的目标存储区。
2.根据权利要求I所述的方法,其特征在于,所述操作系统还用于当所述数据块的压缩属性为可压缩时,将数据压缩指令发送给所述处理器;所述处理器用于接收所述操作系统发送的数据压缩指令,并对所述数据块执行数据压缩操作。
3.根据权利要求2所述的方法,其特征在于,所述根据所述数据块的热度属性和压缩属性,向所述处理器发送相应的数据写入指令,具体包括若所述数据块的热度属性是热点,向所述处理器发送将所述数据块写入第一存储区的数据写入指令;若所述数据块的热度属性是温点,且所述数据块的压缩属性是可压缩,向所述处理器发送将所述数据块进行压缩的数据压缩指令,以及将压缩后的数据块写入第二存储区的数据写入指令;若所述数据块的热度属性是温点,且所述数据块的压缩属性是不可压缩,向所述处理器发送将所述数据块写入第三存储区的数据写入指令;若所述数据块的热度属性是冷点,且所述数据块的压缩属性是可压缩,向所述处理器发送将所述数据块进行压缩的数据压缩指令,以及将压缩后的数据块写入第四存储区的数据写入指令;若所述数据块的热度属性是冷点,且所述数据块的压缩属性是不可压缩,向所述处理器发送将所述数据块写入第三存储区的数据写入指令。
4.根据权利要求I至3任一项所述的方法,其特征在于,所述第一存储阵列为固态硬盘SSD阵列,所述第二存储阵列为旋转磁盘HDD阵列;或者,所述第一存储阵列和所述第二存储阵列为访问性能不同的SSD阵列。
5.一种数据处理方法,其特征在于,所述方法应用于计算节点,所述计算节点包含第一存储阵列和第二存储阵列,所述第一存储阵列对于操作系统呈现为两个逻辑存储区域,分别是第一存储区和第二存储区;所述第二存储阵列对操作系统呈现为两个逻辑存储区域,分别是第三存储区和第四存储区,所述方法包括获取数据写入请求,所述数据写入请求包含待写入的数据块,所述数据块具有热度属性和压缩属性,其中所述热度属性为热点、温点或冷点,所述压缩属性为可压缩或不可压缩;根据所述数据块的热度属性和压缩属性,将所述数据块写入对应的目标存储区,所述目标存储区为第一存储区、第二存储区、第三存储区和第四存储区中的一个或多个存储区。
6.根据权利要求5所述的方法,其特征在于,所述根据所述数据块的热度属性和压缩属性,将所述数据块写入对应的目标存储区,包括若所述数据块的热度属性是热点,将所述数据块写入所述第一存储区;若所述数据块的热度属性是温点,且所述数据块的压缩属性是可压缩,将所述数据块压缩后写入所述第二存储区;若所述数据块的热度属性是温点,且所述数据块的压缩属性是不可压缩,将所述数据块写入所述第三存储区;若所述数据块的热度属性是冷点,且所述数据块的压缩属性是可压缩,将所述数据块压缩后写入所述第四存储区;若所述数据块的热度属性是冷点,且所述数据块的压缩属性是不可压缩,将所述数据块写入所述第三存储区。
7.根据权利要求6所述的方法,其特征在于,所述若所述数据块的热度属性是热点,将所述数据块写入所述第一存储区之后,所述方法还包括若所述数据块的压缩属性是可压缩,将所述数据块压缩后写入第四存储区;若所述数据块的压缩属性是不可压缩,将所述数据块写入第三存储区。
8.根据权利要求6所述的方法,其特征在于,所述若所述数据块的热度属性是温点,且所述数据块的压缩属性是可压缩,将所述数据块压缩后写入第二存储区之后,所述方法还包括将所述压缩后的数据块写入第四存储区。
9.根据权利要求5所述的方法,其特征在于,所述方法还包括获取数据读取请求,所述数据读取请求包含待读取的数据块标识;以所述待读取的数据块标识为索引从操作系统维护的元数据信息中获取所述待读取的数据块的存储区域以及所述待读取数据块的压缩状态,所述压缩状态为已压缩或未压缩;若所述待读取的数据块的存储区域是第一存储阵列,且所述待读取的数据块的压缩状态是未压缩,从所述第一存储区读取所述待读取的数据块;若待读取的数据块的存储区域是第一存储阵列,且所述待读取的数据块的压缩状态是已压缩,将所述数据块解压缩并迁移或复制至第一存储区,并从所述第一存储区读取所述数据块;若待读取的数据块的存储区域是第二存储阵列,且所述待读取的数据块的压缩状态是未压缩,将所述待读取的数据块迁移或复制到第一存储区,并从所述第一存储区读取所述数据块;若待读取的数据块的存储区域是第二存储阵列,且所述待读取的数据块的压缩状态是已压缩,将所述待读取的数据块解压缩并迁移或复制至第一存储区,并从所述第一存储区读取所述数据块。
10.根据权利要求5所述的方法,其特征在于,所述方法还包括获取数据预取请求,所述数据预取请求包含待预取的数据块标识;以所述待预取的数据块标识为索引从操作系统维护的元数据信息中获取所述待预取的数据块的压缩状态,所述压缩状态为已压缩或未压缩;若所述待预取的数据块的压缩状态是未压缩,将所述数据块标识对应的数据块从第三存储区迁移或复制到所述第一存储区,并将所述数据块标记为热点数据;若所述待预取的数据块的压缩状态是已压缩,在所述第一存储区有空闲区域时,将所述数据块解压缩并迁移或复制到所述第一存储区,并将所述数据块标记为热点数据;在所述第一存储区没有空闲区域时,将所述数据块迁移或复制到所述第二存储区,并将所述数据块标记为温点数据。
11.根据权利要求5所述的方法,其特征在于,所述方法还包括获取数据替换请求,所述数据替换请求包含待替换的数据块标识;以所述待替换的数据块标识为索引从操作系统维护的元数据信息中获取所述待替换的数据块的热度属性和压缩属性;若所述待替换的数据块的热度属性是温点,且所述待替换的数据块的压缩属性是可压缩,将所述数据块压缩并从第一存储区迁移到第二存储区;若所述待替换的数据块的热度属性是温点,且所述待替换的数据块的压缩属性是不可压缩,将所述数据块从第一存储区迁移到第三存储区;若所述待替换的数据块的热度属性是冷点,且所述待替换的数据块的压缩属性是可压缩,将所述数据块压缩后从第一存储区迁移到第四存储区;若所述待替换的数据块的热度属性是冷点,且所述待替换的数据块的压缩属性是不可压缩,将所述数据块从第一存储区迁移到第三存储区。
12.—种计算机系统,其特征在于,包括至少一个如权利要求I至4任一项所述的计算节点。
全文摘要
本发明实施例提供一种数据处理的方法、装置及系统,其中该数据处理方法通过获取数据写入请求,所述数据写入请求包含待写入的数据块,所述数据块包含热度属性和压缩属性,其中所述热度属性为热点、温点或冷点,所述压缩属性为可压缩或不可压缩;根据所述数据块的热度属性和压缩属性,将所述数据块写入对应的目标存储区,从而利用数据压缩技术,提高数据在缓存或热点数据盘的读取命中率。
文档编号G06F3/06GK102609360SQ201210008939
公开日2012年7月25日 申请日期2012年1月12日 优先权日2012年1月12日
发明者章晓峰 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1