CN114442934B - 数据处理方法、装置及存储引擎 - Google Patents
数据处理方法、装置及存储引擎 Download PDFInfo
- Publication number
- CN114442934B CN114442934B CN202111616067.4A CN202111616067A CN114442934B CN 114442934 B CN114442934 B CN 114442934B CN 202111616067 A CN202111616067 A CN 202111616067A CN 114442934 B CN114442934 B CN 114442934B
- Authority
- CN
- China
- Prior art keywords
- storage medium
- data object
- storage
- data
- request
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000013500 data storage Methods 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims description 23
- 238000004891 communication Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 7
- 230000000903 blocking effect Effects 0.000 claims description 6
- 239000000758 substrate Substances 0.000 claims 1
- 238000013508 migration Methods 0.000 abstract description 10
- 230000005012 migration Effects 0.000 abstract description 10
- 230000007547 defect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 238000013403 standard screening design Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000001680 brushing effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及一种数据处理方法、装置及存储引擎,该方法包括:获取访问请求;识别与访问请求对应的请求类型和请求标志;根据请求类型、请求标志,以及预获取的数据存储策略,确定访问请求对应的存储介质;在存储介质中,对与访问请求对应的数据对象,执行与访问请求对应的操作。对于数据的缓存不再是在两个存储池中进行迁移缓存,而是在缓存引擎内部完成,不会引入跨网流量,大大降低迁移系统的开销,而且,正是因为不再采用池级存储,自然也就避免了单纯缓存池只能给单个存储池进行缓存的缺陷。数据仅存储两层存储介质中的其中一层,而不是存多份,从而增加总的可用容量,使得存储设备的利用更加高效经济。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据处理方法、装置及存储引擎。
背景技术
高性能分布式存储系统通常是以统一存储层为底座,同时包含块、文件和对象存储服务。无论数据分片的定位是有中心的设计还是无中心的设计,分布式存储系统中数据面服务都是主要负责数据的读取、写入。
数据面服务中的存储引擎对磁盘空间进行管理,磁盘数据的读写都需要经过存储引擎。HDD一般具有较大的容量,并且可以实现良好的顺序读和写操作,但是在随机写和读时非常慢,因此它们的IOPS级别较低;SSD 具有非常好的整体性能,尤其是较高的IOPS,因此随机写入和读取要比 HDD更好,但是它们的容量却很小。由于SSD价格昂贵,存储空间小,而HDD价格低廉,存储空间大,因此采用SSD作为缓存,HDD作为数据存储盘,既解决了SSD容量太小,又解决了HDD运行速度太慢的问题。
使用SDD作为HDD缓存通常有两种实现方式:其中一种为存储池级分层存储。使用高速池(cacha pool,缓存池,由SSD等高速设备组成) 作为缓存层、低速池(data pool,数据池,由HDD等低速设备组成)作为数据层。这种分层存储技术会引入额外的数据分片,数据在两个存储池之间进行迁移系统开销较大。
另外一种是在内核的通用块层实现缓存,典型的方案有bcache、 dm-cache、flashcache等,这些缓存技术通常对工作在用户态的应用程序暴露出的是通用块设备,应用程序只能通过标准的file operation访问混合盘块设备,在执行数据缓存时,只能从数据的冷热程度这一个维度去区分存储到何种位置。对于无法区分数据的冷热程度的应用场景,该方并不适用。而且由于数据高速介质和低速介质中频繁迁移,影响对客户端I/O请求的响应速度以及集群内部的稳定。
发明内容
本申请提供了一种数据处理方法、装置及存储引擎,以解决现有技术中的上述技术问题。
第一方面,本申请提供了一种数据处理方法,该方法应用于存储引擎,存储引擎包括两层存储介质,包括:
获取访问请求;
识别与访问请求对应的请求类型和请求标志;
根据请求类型、请求标志,以及预获取的数据存储策略,确定访问请求对应的存储介质,其中,存储介质为两层存储介质中的其中一层存储介质;
在存储介质中,对与访问请求对应的数据对象,执行与访问请求对应的操作。
第二方面,提供了一种数据处理装置,该装置包括:
获取模块,用于获取访问请求;
识别模块,用于识别与访问请求对应的请求类型和请求标志;
确定模块,用于根据请求类型、请求标志,以及预获取的数据存储策略,确定访问请求对应的存储介质,其中,存储介质为两层存储介质中的其中一层存储介质;
处理模块,用于在存储介质中,对与访问请求对应的数据对象,执行与访问请求对应的操作。
第三方面,提供了一种存储引擎,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例的数据处理方法的步骤。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如第一方面任一项实施例的数据处理方法的步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的该方法,对于数据的缓存不再是在两个存储池中进行迁移缓存,而是在缓存引擎内部完成,不会引入跨网流量,大大降低迁移系统的开销,而且,正是因为不再采用池级存储,自然也就避免了单纯缓存池只能给单个存储池进行缓存的缺陷。数据仅存储两层存储介质中的其中一层,而不是存多份,从而增加总的可用容量,使得存储设备的利用更加高效经济。
而且,本申请中,数据存储不再是单纯的考虑数据热度,而是根据访问请求的类型和标志,从数据存储策略中匹配与访问请求对应的存储介质,以此可以根据不同场景的访问请求,支持基于不同业务场景的分层策略,避免了在没有明显热点数据的应用场景下,不但对数据读写没有加速,而且由于数据在高速介质和低速介质中频繁迁移,影响对客户端I/O请求的响应速度以及集群内部的稳定的情况发生。
附图说明
图1为本发明实施例提供的一种数据处理方法流程示意图;
图2为本发明提供的单盘存储引擎的分层示意图;
图3为本发明实施例提供的一种数据处理装置结构示意图;
图4为本发明实施例提供一种存储引擎结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
针对背景技术中所提及的技术问题,本申请实施例提供了一种数据处理方法,具体参见图1所示,图1为本发明实施例提供的一种数据处理方法流程示意图,该方法应用于存储引擎,述存储引擎包括两层存储介质,具体参见图2所示,图2示出了本发明提供的单盘存储引擎的分层示意图。具体参见图2所示,图2中fast BlockDevice,即为快速闭塞装置,也即是在单盘存储引擎中增加快速存储介质层,slow BlockDevice即为慢速闭塞装置,在单盘存储引擎中增加快速存储介质层,实现基于存储引擎的全用户态分层存储,使得数据在正确的时间以合适的成本存储在合适的地方。图2中的其他模块为现有技术中已有的存储模块,这里不再过多赘述。相较于现有技术中而言,本申请中不再刻意区分数据或元数据,直接根据访问请求对应的优先级,将数据存储于快速存储介质或者慢速存储介质。辅助数据热度,对数据进行迁移。详细内容可以参见下文介绍。
该方法步骤包括:
步骤110,获取访问请求。
具体的,在一个具体的例子中,访问请求可以是I/O访问请求。
步骤120,识别与访问请求对应的请求类型和请求标志。
具体的,以I/O访问请求为例,在获取到I/O访问请求后,可以根据访问请求,确定I/O请求类型,以及业务场景I/O请求标志。
步骤130,根据请求类型、请求标志,以及预获取的数据存储策略,确定访问请求对应的存储介质。
具体的,根据请求类型和请求标志,可以从数据存储策略中确定I/O 访问请求的优先级;
然后根据优先级,确定与访问请求对应的存储介质,其中,存储介质为两层存储介质中的其中一层存储介质;
在一个可选的例子中,可以配置优先级高的访问快速存储介质,优先级低的访问慢速存储介质。在本实施例中,定义下文中,即将要出现的第一存储介质为快速存储介质,第二存储介质为慢速存储介质。
在一个具体的例子中,对应I/O访问请求类型归类,具体参见如下几种方式:
按照I/O请求产生原因对I/O访问请求进行归类包括:
来自客户端的读写I/O请求(client I/O),副本间数据读写I/O请求(sub I/O),快照数据删除引起的I/O请求(snap IO),Scrub扫描元数据、数据整体扫描的deep Scrub引起的I/O请求(srub I/O),数据恢复和迁移引起的I/O 请求(recover I/O)。
按照数据类型对I/O访问请求归类包括:
数据请求I/O(data IO),元数据请求I/O(metadata I/O)。
按照业务场景对I/O访问请求归类包括:
对象存储PUT操作的I/O访问请求、块存储的卷新写I/O访问请求、卷在close或者unmap时,将高速存储介质中数据回刷的I/O访问请求。块存储高速卷中的读写I/O请求文件存储的热点数据读写I/O请求等。
按照I/O排序的主要原则对I/O访问请求归类包括:
按照业务场景的I/O请求、client I/O、sub I/O(写入操作)、metadata I/O请求、data I/O等。
根据不同的I/O访问请求的归类,在同一类中,不同的I/O访问请求有不同的优先级。
例如,对象存储PUT操作优先到高速存储介质(object PUT I/O)。块存储的卷新写I/O优先写入高速存储介质(block new I/O),卷在close 或者unmap时,将高速存储介质中数据回刷。块存储高速卷,读写I/O请求全部访问高速存储介质(block high I/O)。文件存储的热点数据读写,直接访问高速存储介质(fs hot I/O)。
或者,按照业务场景的I/O请求已经标明了I/O请求访问的存储介质,直接访问高速存储介质。其次,考虑client I/O、sub I/O(写入操作)访问高速存储介质,最后,元数据访问频度通常高于数据,所以metadata I/O 请求优先级高于data I/O,优先访问高速存储介质。
即,与每一种类型的I/O访问类型对应的优先级均已配置到数据存储策略中,然后再获取到不同类型的I/O的优先级后,可以直接从数据存储策略中,找到与之对应的存储介质。
步骤140,从存储介质中查找与访问请求对应的数据对象。
步骤150,当确定数据对象存储于存储介质中时,对数据对象执行与访问请求对应的操作。
具体的,操作可以包括读/写操作。进一步可以划分为首次读取/写入的操作,再次读取/写入的操作,或者覆盖刷写之前已存储的数据等等。
在一个可选的例子中,当存储介质为两层存储介质的第一存储介质,且确定对数据对象执行的操作为在第一存储介质写入数据对象时,方法还包括:
确定数据对象之前是否已存储在第一存储介质中;
当确定数据对象之前未存储在第一存储介质时,查询第一存储介质的存储空间是否还能够承载数据对象;
当确定存储空间能够承载数据对象时,将数据对象写入到第一存储介质;
或者,当确定存储空间不能够承载数据对象时,将数据对象加入到等待队列,并周期性地查询第一存储介质的存储空间;
直至确定第一存储介质的存储空间能够承载数据对象时,将数据对象写入到第一存储介质。
如上所介绍的,如果数据对象之前已经存储在第一存储介质中,则说明本次的写入操作为重新刷写,也即是覆盖掉之前已经存储的数据对象,并将本次新获取的数据对象(有可能是针对前一次存储的数据做了修改,包括添加、删除、数据调整等等)刷写到第一存储介质中。
如果数据对象之前并没有存储在第一存储介质中,在有可能包括两种情况。其中,一种就是新写入到第一存储介质中的数据。第二种,则是原来写入的数据因为客户要求、数据热度低等某些特殊原因,而存储在第二存储介质中。
不论哪一种情况,导致第一存储介质中没有存储有当前的数据对象,都需要查询第一存储介质的存储空间是否还能够承载该数据对象。
当确定第一存储介质的存储空间能够承载该数据对象时,则将数据对象写入到第一存储介质。
否则,当确定存储空间不能够承载数据对象时,将数据对象加入到等待队列,并周期性地查询第一存储介质的存储空间;
直至确定第一存储介质的存储空间能够承载数据对象时,将数据对象写入到第一存储介质。
在一种可选的例子中,如上所介绍的,存储引擎包括两层存储介质,因此,存储介质还可以包括第二存储介质。当存储介质为两层存储介质中的第二存储介质,且确定对数据对象执行的操作为在第二存储介质写入数据对象时,直接将数据对象写入第二存储介质。
如上所介绍的,在一个具体的例子中,第一存储介质为快速存储介质,第二存储介质为慢速存储介质。
在另一种可选的实施方式中,当存储介质为第一存储介质,且确定对数据对象执行的操作为从第一存储介质读取数据对象时,该方法还包括:
直接从第一存储介质中读取数据对象并反馈至数据对象请求端,其中,数据对象请求端,即为发出访问请求的客户端。
可选的,当存储介质为第一存储介质,且确定对数据对象执行的操作为从第一存储介质读取数据对象,数据对象存储于第二存储介质中时,该方法还包括:
从第二存储介质中读取数据对象;
将数据对象从第二存储介质中,迁移到第一存储介质。
具体的,在对数据对象执行读操作时,首先确定需要到第一存储介质读数据还是到第二存储介质读数据。如果是到第一存储介质,且待读取的数据对象本身就存储于第一存储介质时,则直接从第一存储介质读取数据对象,并反馈到数据对象请求端,也即是发出访问请求的客户端。
相反,如果确定存储介质为第一存储介质,且确定对数据对象执行的操作为从第一存储介质读取数据对象,而数据对象存储于第二存储介质中 (可能是之前该数据对象的读写热度较低,所以被迁移到了第二存储介质中),而本次根据访问请求确定该数据对象该存放于第一存储介质中。对于此种情况,为了不耽误数据的读写,则可以首先从第二存储介质中读取数据对象。然后,再迅速将数据对象从第二存储介质中,迁移到第一存储介质。
可选的,考虑到第一存储介质为快速存储介质,该存储介质的特定在于读写速率高,但是存储空间小,价格昂贵,例如是固态硬盘。因此,该方法还包括:
周期性的查询第一存储介质中存储的数据对象的读写热度;
当确定数据对象的读写热度低于预设热度阈值时,将数据对象从第一存储介质,迁移到第二存储介质。
通过该方式,可以时常释放第一存储介质中的存储空间,用以存储新写入的优先级较高的数据对象。
又或者,当确定数据对象的读写热度等于或者高于预设热度阈值时,将数据对象从第二存储介质,迁移到第一存储介质。
即,将数据读写热度高的数据对象重新写入到第一存储介质,以提升数据读写效率。当然,在当数据对象从某一个存储介质迁移到另一个存储介质后,原始存储有该数据对象的存储介质中该部分数据将释放存储空间,用以存储其他数据。
需要说明的是,在某些特殊情况中,如果是业务指定快速存储介质的读写IO数据(block high I/O、fs hot I/O),则不进行数据下沉(也即是不将高速存储介质中的数据迁移到低速存储介质)。普通的块存储卷在close 或者unmap时,也会进行数据下沉。
在本实施例中,存储引擎可以实时感知用户态的存储的I/O等端口的访问请求。在考虑数据热度的同时,其更主要是的考虑到了分布式存储系统的各种不同场景的I/O请求,可以感知分布式存储集群内部各种数据类型,并针对不同的数据类型采用不同的数据读写策略,采用不同的数据刷盘策略,从而实现对存储资源更细粒度的利用,降低企业用户总拥有成本。
支持基于业务场景的分层策略,对象存储PUT操作优先到高速缓存介质,一定时间间隔后将对象迁移至低速存储介质。块存储的卷新写I/O优先到高速介质,卷在close或者unmap时,将高速存储介质中数据回刷。优先级高的数据保存在快速存储介质中,较冷的数据全部保存在低速存储介质中,通过应用优先级感知实现IO智能化管理。由此避免在没有明显热点数据的应用场景下,不但对数据读写没有加速,而且由于数据在高速介质和低速介质中不断迁移,影响对客户端I/O请求的响应速度以及集群内部的稳定。
数据迁移都在节点内部完成,不会引入跨网络流量。数据只存在快速存储介质上或者慢速存储介质上,而不是存多份,从而增加总的可用容量,使得存储设备的利用更加高效经济。
综上,本发明实施例提供的数据处理方法,对于数据的缓存不再是在两个存储池中进行迁移缓存,而是在缓存引擎内部完成,不会引入跨网流量,大大降低迁移系统的开销,而且,正是因为不再采用池级存储,自然也就避免了单纯缓存池只能给单个存储池进行缓存的缺陷。数据仅存储两层存储介质中的其中一层,而不是存多份,从而增加总的可用容量,使得存储设备的利用更加高效经济。
而且,本申请中,数据存储不再是单纯的考虑数据热度,而是根据访问请求的类型和标志,从数据存储策略中匹配与访问请求对应的存储介质,以此可以根据不同场景的访问请求,支持基于不同业务场景的分层策略,避免了在没有明显热点数据的应用场景下,不但对数据读写没有加速,而且由于数据在高速介质和低速介质中频繁迁移,影响对客户端I/O请求的响应速度以及集群内部的稳定的情况发生。
以上,为本申请所提供的数据处理几个方法实施例,下文中则介绍说明本申请所提供的数据处理其他实施例,具体参见如下。
图3为本发明实施例提供的一种数据处理装置,该装置包括:获取模块301、识别模块302、确定模块303,以及处理模块304。
其中,获取模块301,用于获取访问请求;
识别模块302,用于识别与访问请求对应的请求类型和请求标志;
确定模块303,用于根据请求类型、请求标志,以及预获取的数据存储策略,确定访问请求对应的存储介质,其中,存储介质为两层存储介质中的其中一层存储介质;
处理模块304,用于在存储介质中,对与访问请求对应的数据对象,执行与访问请求对应的操作。
可选的,该装置还包括:查询模块305;
确定模块303,具体用于根据请求类型和请求标志,确定访问请求的优先级;
根据访问请求的优先级,确定与访问请求对应的存储介质。
可选的,当存储介质为两层存储介质的第一存储介质,且确定对数据对象执行的操作为在第一存储介质写入数据对象时,
处理模块304,用于确定数据对象之前是否已存储在第一存储介质中;
查询模块305,用于当确定数据对象之前未存储在第一存储介质时,查询第一存储介质的存储空间是否还能够承载数据对象;
处理模块304,还用于当确定存储空间能够承载数据对象时,将数据对象写入到第一存储介质;或者,当确定存储空间不能够承载数据对象时,将数据对象加入到等待队列;
查询模块305,还用于周期性地查询第一存储介质的存储空间;
处理模块304,还用于直至确定第一存储介质的存储空间能够承载数据对象时,将数据对象写入到第一存储介质。
可选的,存储介质还包括:第二存储介质,其中,第一存储介质的数据读写效率高于第二存储介质;
处理模块304,还用于当存储介质为两层存储介质中的第二存储介质时,直接将数据对象写入第二存储介质。
可选的,处理模块304,还用于当存储介质为第一存储介质,且确定对数据对象执行的操作为从第一存储介质读取数据对象时,直接从第一存储介质中读取数据对象并反馈至数据对象请求端,其中,数据对象请求端,即为发出访问请求的客户端。
可选的,处理模块304,还用于当存储介质为第一存储介质,且确定对数据对象执行的操作为从第一存储介质读取数据对象,数据对象存储于第二存储介质中时,从第二存储介质中读取数据对象;
将数据对象从第二存储介质中,迁移到第一存储介质。
可选的,查询模块305,还用于周期性的查询第一存储介质中存储的数据对象的读写热度;
处理模块304,还用于当确定数据对象的读写热度低于预设热度阈值时,将数据对象从第一存储介质,迁移到第二存储介质;
或者,当确定数据对象的读写热度等于或者高于预设热度阈值时,将数据对象从第二存储介质,迁移到第一存储介质。
可选的,处理模块304,还用于当确定第一存储介质的存储空间已满时,根据预配置的数据筛选规则,从第一存储介质中筛选数据对象,并将筛选出的数据对象迁移至第二存储介质。
本发明实施例提供的数据处理装置中各部件所执行的功能均已在上述任一方法实施例中做了详细的描述,因此这里不再赘述。
本发明实施例提供的一种数据处理装置,对于数据的缓存不再是在两个存储池中进行迁移缓存,而是在缓存引擎内部完成,不会引入跨网流量,大大降低迁移系统的开销,而且,正是因为不再采用池级存储,自然也就避免了单纯缓存池只能给单个存储池进行缓存的缺陷。数据仅存储两层存储介质中的其中一层,而不是存多份,从而增加总的可用容量,使得存储设备的利用更加高效经济。
而且,本申请中,数据存储不再是单纯的考虑数据热度,而是根据访问请求的类型和标志,从数据存储策略中匹配与访问请求对应的存储介质,以此可以根据不同场景的访问请求,支持基于不同业务场景的分层策略,避免了在没有明显热点数据的应用场景下,不但对数据读写没有加速,而且由于数据在高速介质和低速介质中频繁迁移,影响对客户端I/O请求的响应速度以及集群内部的稳定的情况发生。
如图4所示,本申请实施例提供了一种存储引擎,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口 112,存储器113通过通信总线114完成相互间的通信。
存储器113,用于存放计算机程序;
在本申请一个实施例中,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的数据处理方法,包括:
获取访问请求;
识别与访问请求对应的请求类型和请求标志;
根据请求类型、请求标志,以及预获取的数据存储策略,确定访问请求对应的存储介质,其中,存储介质为两层存储介质中的其中一层存储介质;
在存储介质中,对与访问请求对应的数据对象,执行与访问请求对应的操作。
可选的,根据请求类型和请求标志,确定访问请求的优先级;
根据访问请求的优先级,确定与访问请求对应的存储介质。
可选的,确定数据对象之前是否已存储在第一存储介质中;
当确定数据对象之前未存储在第一存储介质时,查询第一存储介质的存储空间是否还能够承载数据对象;
当确定存储空间能够承载数据对象时,将数据对象写入到第一存储介质;
或者,当确定存储空间不能够承载数据对象时,将数据对象加入到等待队列,并周期性地查询第一存储介质的存储空间;
直至确定第一存储介质的存储空间能够承载数据对象时,将数据对象写入到第一存储介质。
可选的,存储介质还包括:第二存储介质,其中,第一存储介质的数据读写效率高于第二存储介质;
当存储介质为两层存储介质中的第二存储介质时,直接将数据对象写入第二存储介质。
可选的,当存储介质为第一存储介质,且确定对数据对象执行的操作为从第一存储介质读取数据对象时,方法还包括:
直接从第一存储介质中读取数据对象并反馈至数据对象请求端,其中,数据对象请求端,即为发出访问请求的客户端。
可选的,当存储介质为第一存储介质,且确定对数据对象执行的操作为从第一存储介质读取数据对象,数据对象存储于第二存储介质中时,方法还包括:
从第二存储介质中读取数据对象;
将数据对象从第二存储介质中,迁移到第一存储介质。
可选的,方法还包括:
周期性的查询第一存储介质中存储的数据对象的读写热度;
当确定数据对象的读写热度低于预设热度阈值时,将数据对象从第一存储介质,迁移到第二存储介质;
或者,当确定数据对象的读写热度等于或者高于预设热度阈值时,将数据对象从第二存储介质,迁移到第一存储介质。
可选的,当确定第一存储介质的存储空间已满时,根据预配置的数据筛选规则,从第一存储介质中筛选数据对象,并将筛选出的数据对象迁移至第二存储介质。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如前述任意一个方法实施例提供的数据处理方法的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种数据处理方法,其特征在于,所述方法应用于存储引擎与缓存引擎,所述存储引擎包括两层存储介质,所述两层存储介质中的第一存储介质为快速闭塞装置,所述两层存储介质中的第二存储介质为慢速闭塞装置,所述第一存储介质的数据读写效率高于所述第二存储介质,数据的缓存不在两个存储池中迁移缓存,在所述缓存引擎内部完成,包括:
获取访问请求;
根据预设归类划分方法,对所述访问请求进行归类,其中,所述预设归类划分方法包括如下中的一种:请求产生原因、数据类型、请求排序原则或者业务场景;
识别与所述访问请求对应的请求类型和请求标志;
根据所述请求类型、请求标志,以及预获取的数据存储策略,确定所述访问请求对应的存储介质,具体包括:根据所述请求类型和请求标志,确定所述访问请求的优先级,根据所述访问请求的优先级,确定与所述访问请求对应的存储介质,其中,所述存储介质为两层存储介质中的其中一层存储介质;
在所述存储介质中,对与所述访问请求对应的数据对象,执行与所述访问请求对应的操作。
2.根据权利要求1所述的方法,其特征在于,当所述存储介质为两层存储介质的第一存储介质,且确定对所述数据对象执行的操作为在第一存储介质写入所述数据对象时,所述方法还包括:
确定所述数据对象之前是否已存储在所述第一存储介质中;
当确定所述数据对象之前未存储在所述第一存储介质时,查询所述第一存储介质的存储空间是否还能够承载所述数据对象;
当确定所述存储空间能够承载所述数据对象时,将所述数据对象写入到所述第一存储介质;
或者,当确定所述存储空间不能够承载所述数据对象时,将所述数据对象加入到等待队列,并周期性地查询所述第一存储介质的存储空间;
直至确定所述第一存储介质的存储空间能够承载所述数据对象时,将所述数据对象写入到所述第一存储介质。
3.根据权利要求2所述的方法,其特征在于,
当所述存储介质为两层存储介质中的第二存储介质,且确定对所述数据对象执行的操作为在第二存储介质写入所述数据对象时,直接将所述数据对象写入所述第二存储介质。
4.根据权利要求3所述的方法,其特征在于,当所述存储介质为所述第一存储介质,且确定对所述数据对象执行的操作为从所述第一存储介质读取所述数据对象时,所述方法还包括:
直接从所述第一存储介质中读取所述数据对象并反馈至数据对象请求端,其中,所述数据对象请求端,即为发出访问请求的客户端。
5.根据权利要求4所述的方法,其特征在于,当所述存储介质为所述第一存储介质,且确定对所述数据对象执行的操作为从所述第一存储介质读取所述数据对象,所述数据对象存储于所述第二存储介质中时,所述方法还包括:
从所述第二存储介质中读取所述数据对象;
将所述数据对象从所述第二存储介质中,迁移到所述第一存储介质。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
周期性的查询所述第一存储介质中存储的数据对象的读写热度;
当确定所述数据对象的读写热度低于预设热度阈值时,将所述数据对象从所述第一存储介质,迁移到所述第二存储介质;
或者,当确定所述数据对象的读写热度等于或者高于所述预设热度阈值时,将所述数据对象从所述第二存储介质,迁移到所述第一存储介质。
7.一种数据处理装置,其特征子在于,所述装置应用于存储引擎与缓存引擎,所述存储引擎包括两层存储介质,所述两层存储介质中的第一存储介质为快速闭塞装置,所述两层存储介质中的第二存储介质为慢速闭塞装置,所述第一存储介质的数据读写效率高于所述第二存储介质,数据的缓存不在两个存储池中迁移缓存,在所述缓存引擎内部完成,所述装置包括:
获取模块,用于获取访问请求;
处理模块,用于根据预设归类划分方法,对所述访问请求进行归类,其中,所述预设归类划分方法包括如下中的一种:请求产生原因、数据类型、请求排序原则或者业务场景;
识别模块,用于识别与所述访问请求对应的请求类型和请求标志;
确定模块,用于根据所述请求类型、请求标志,以及预获取的数据存储策略,确定所述访问请求对应的存储介质,具体包括:根据所述请求类型和请求标志,确定所述访问请求的优先级,根据所述访问请求的优先级,确定与所述访问请求对应的存储介质,其中,所述存储介质为两层存储介质中的其中一层存储介质;
所述处理模块,还用于在所述存储介质中,对与所述访问请求对应的数据对象,执行与所述访问请求对应的操作。
8.一种存储引擎,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一项所述的数据处理方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111616067.4A CN114442934B (zh) | 2021-12-27 | 2021-12-27 | 数据处理方法、装置及存储引擎 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111616067.4A CN114442934B (zh) | 2021-12-27 | 2021-12-27 | 数据处理方法、装置及存储引擎 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114442934A CN114442934A (zh) | 2022-05-06 |
CN114442934B true CN114442934B (zh) | 2024-01-02 |
Family
ID=81365902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111616067.4A Active CN114442934B (zh) | 2021-12-27 | 2021-12-27 | 数据处理方法、装置及存储引擎 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114442934B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105915621A (zh) * | 2016-05-11 | 2016-08-31 | 深圳市永兴元科技有限公司 | 访问数据的方法及预处理服务器 |
CN107688607A (zh) * | 2017-07-26 | 2018-02-13 | 努比亚技术有限公司 | 一种数据库访问的方法及移动终端、计算机可读存储介质 |
CN110007870A (zh) * | 2019-04-12 | 2019-07-12 | 苏州浪潮智能科技有限公司 | 一种存储设备写请求处理方法及相关装置 |
CN110175163A (zh) * | 2019-05-24 | 2019-08-27 | 江西尚通科技发展股份有限公司 | 基于业务功能智能解析的多库分离方法、系统及介质 |
CN111026333A (zh) * | 2019-12-10 | 2020-04-17 | 北京金山云网络技术有限公司 | 访问请求处理方法、处理装置、电子设备及存储介质 |
CN111414389A (zh) * | 2020-03-19 | 2020-07-14 | 北京字节跳动网络技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN112689007A (zh) * | 2020-12-23 | 2021-04-20 | 江苏苏宁云计算有限公司 | 资源分配方法、装置、计算机设备和存储介质 |
CN113014408A (zh) * | 2019-12-19 | 2021-06-22 | 阿里巴巴集团控股有限公司 | 分布式系统及其管理方法 |
CN113590045A (zh) * | 2021-08-03 | 2021-11-02 | 中国联合网络通信集团有限公司 | 数据分层式存储方法、装置及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7555575B2 (en) * | 2006-07-27 | 2009-06-30 | Hitachi, Ltd. | Method and apparatus for migrating data between storage volumes of different data pattern |
EP2263145B1 (en) * | 2008-02-12 | 2020-02-05 | NetApp, Inc. | Hybrid media storage system architecture |
US8713572B2 (en) * | 2011-09-15 | 2014-04-29 | International Business Machines Corporation | Methods, systems, and physical computer storage media for processing a plurality of input/output request jobs |
-
2021
- 2021-12-27 CN CN202111616067.4A patent/CN114442934B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105915621A (zh) * | 2016-05-11 | 2016-08-31 | 深圳市永兴元科技有限公司 | 访问数据的方法及预处理服务器 |
CN107688607A (zh) * | 2017-07-26 | 2018-02-13 | 努比亚技术有限公司 | 一种数据库访问的方法及移动终端、计算机可读存储介质 |
CN110007870A (zh) * | 2019-04-12 | 2019-07-12 | 苏州浪潮智能科技有限公司 | 一种存储设备写请求处理方法及相关装置 |
CN110175163A (zh) * | 2019-05-24 | 2019-08-27 | 江西尚通科技发展股份有限公司 | 基于业务功能智能解析的多库分离方法、系统及介质 |
CN111026333A (zh) * | 2019-12-10 | 2020-04-17 | 北京金山云网络技术有限公司 | 访问请求处理方法、处理装置、电子设备及存储介质 |
CN113014408A (zh) * | 2019-12-19 | 2021-06-22 | 阿里巴巴集团控股有限公司 | 分布式系统及其管理方法 |
CN111414389A (zh) * | 2020-03-19 | 2020-07-14 | 北京字节跳动网络技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN112689007A (zh) * | 2020-12-23 | 2021-04-20 | 江苏苏宁云计算有限公司 | 资源分配方法、装置、计算机设备和存储介质 |
CN113590045A (zh) * | 2021-08-03 | 2021-11-02 | 中国联合网络通信集团有限公司 | 数据分层式存储方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114442934A (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101717644B1 (ko) | 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법 | |
US8423739B2 (en) | Apparatus, system, and method for relocating logical array hot spots | |
US8914340B2 (en) | Apparatus, system, and method for relocating storage pool hot spots | |
EP3869316B1 (en) | Hybrid storage | |
US11347443B2 (en) | Multi-tier storage using multiple file sets | |
US8909887B1 (en) | Selective defragmentation based on IO hot spots | |
EP2735978B1 (en) | Storage system and management method used for metadata of cluster file system | |
US9355112B1 (en) | Optimizing compression based on data activity | |
US7694087B2 (en) | Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device | |
CN109947363B (zh) | 一种分布式存储系统的数据缓存方法 | |
US20040133602A1 (en) | Optimizing defragmentation operations in a differential snapshotter | |
US20180107601A1 (en) | Cache architecture and algorithms for hybrid object storage devices | |
CN108733306A (zh) | 一种文件合并方法及装置 | |
US11144508B2 (en) | Region-integrated data deduplication implementing a multi-lifetime duplicate finder | |
EP3974974A1 (en) | Virtualization method and system for persistent memory | |
JPWO2014142337A1 (ja) | ストレージ装置と方法及びプログラム | |
US20240020014A1 (en) | Method for Writing Data to Solid-State Drive | |
CN111078143B (zh) | 基于段映射进行数据布局和调度的混合存储方法及系统 | |
KR20090007926A (ko) | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 | |
CN118051179A (zh) | 用于使用多个分区的分区命名空间存储的技术 | |
US8019799B1 (en) | Computer system operable to automatically reorganize files to avoid fragmentation | |
CN114442934B (zh) | 数据处理方法、装置及存储引擎 | |
CN109508140B (zh) | 存储资源管理方法、装置、电子设备及电子设备、系统 | |
US8478936B1 (en) | Spin down of storage resources in an object addressable storage system | |
CN109241011B (zh) | 一种虚拟机文件处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |