CN116594562A - 一种数据处理方法及装置、设备、存储介质 - Google Patents
一种数据处理方法及装置、设备、存储介质 Download PDFInfo
- Publication number
- CN116594562A CN116594562A CN202310566311.3A CN202310566311A CN116594562A CN 116594562 A CN116594562 A CN 116594562A CN 202310566311 A CN202310566311 A CN 202310566311A CN 116594562 A CN116594562 A CN 116594562A
- Authority
- CN
- China
- Prior art keywords
- data
- storage unit
- priority storage
- low
- data processing
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000012545 processing Methods 0.000 claims abstract description 123
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000015654 memory Effects 0.000 claims abstract description 41
- 230000008569 process Effects 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 16
- 238000001914 filtration Methods 0.000 claims description 12
- 238000013508 migration Methods 0.000 description 9
- 230000005012 migration Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000008030 elimination Effects 0.000 description 4
- 238000003379 elimination reaction Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000004083 survival effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000007547 defect 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
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000001360 synchronised effect Effects 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/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]
-
- 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/064—Management of blocks
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据处理方法及装置、设备、存储介质,方法包括,接收客户端发送的携带有待处理数据的数据处理请求;响应于数据处理请求,在多级存储单元中针对待处理数据进行处理,得到数据处理结果;其中,多级存储单元至少包括:高优先级存储单元以及低优先级存储单元;高优先级存储单元存储的数据的访问热度,大于低优先级存储单元存储的数据的访问热度;数据在访问热度的影响下,在高优先级存储单元和低优先级存储单元之间进行动态迁移;将数据处理结果反馈至客户端。这样,本申请实施例可以提高数据处理的效率。
Description
技术领域
本申请涉及数据存储技术领域,尤其涉及一种数据处理方法及装置、设备、存储介质。
背景技术
分布式键值存储系统(Distributed Key-Value Store,DKV)承载业务元数据,提升业务和系统性能,因此需要越来越多的服务器支持用较少的动态随机存取内存(DynamicRandom Access Memory,DRAM)获得高性能。
相关技术中,主要是采用以下方案进行DKV数据存储:使用存储级内存(Storage-Class-Memory,SCM)作为缓存部署,该方案的缺点是SCM的时延和吞吐性能都较低,所以其缓存性能不能满足要求,读写数据的效率较低。
发明内容
本申请主要提供一种数据处理方法及装置、设备、存储介质,能够提高数据读写的效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供了一种数据处理方法,应用于目标存储节点,包括:
接收客户端发送的携带有待处理数据的数据处理请求;
响应于所述数据处理请求,在多级存储单元中针对所述待处理数据进行处理,得到数据处理结果;其中,
所述多级存储单元至少包括:高优先级存储单元以及低优先级存储单元;所述高优先级存储单元存储的数据的访问热度,大于所述低优先级存储单元存储的数据的访问热度;所述数据在所述访问热度的影响下,在所述高优先级存储单元和所述低优先级存储单元之间进行动态迁移;
将所述数据处理结果反馈至所述客户端。
本申请实施例还提供了一种数据处理装置,应用于目标存储节点,包括:
接收单元,用于接收客户端发送的携带有待处理数据的数据处理请求;
响应单元,用于响应于所述数据处理请求,在多级存储单元中针对所述待处理数据进行处理,得到数据处理结果;其中,
所述多级存储单元至少包括:高优先级存储单元以及低优先级存储单元;所述高优先级存储单元存储的数据的访问热度,大于所述低优先级存储单元存储的数据的访问热度;所述数据在所述访问热度的影响下,在所述高优先级存储单元和所述低优先级存储单元之间进行动态迁移;
反馈单元,用于将所述数据处理结果反馈至所述客户端。
本申请实施例还提供了一种数据处理设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法中的步骤。
本申请实施例还提供了一种存储介质,所述存储介质上存储有可执行指令,该可执行指令被处理器执行时实现上述的方法步骤。
本申请实施例在接收客户端发送的携带有待处理数据的数据处理请求之后,可以响应于数据处理请求,在多级存储单元中针对待处理数据进行处理,得到数据处理结果;将数据处理结果反馈至客户端。其中,本申请用于处理待处理数据的多级存储单元包括高优先级存储单元以及低优先级存储单元,将访问热度较高的数据存储于高优先级存储单元,将访问热度较低的数据存储于低优先级存储单元,如此在处理待访问数据时,由于在高优先级存储单元中只存储了部分的热度较高的数据,未存储全部的数据,进而高优先级存储单元的计算效率会大大提升,进而提高了数据处理的效率。
附图说明
图1为本申请实施例提供的数据处理方法的一个可选的流程示意图;
图2为本申请实施例中分布式键值存储系统的框架图;
图3为本申请实施例中多级存储单元中数据的迁移示意图;
图4为本申请实施例提供的数据处理方法的一个可选的流程示意图;
图5为本申请实施例提供的数据处理方法的一个可选的流程示意图;
图6为本申请实施例提供的数据处理方法的一个可选的流程示意图;
图7为本申请实施例提供的数据处理方法的一个可选的流程示意图;
图8为本申请实施例提供的数据处理方法的一个可选的流程示意图;
图9为本申请实施例提供的数据处理装置的组成结构示意图;
图10为本申请实施例提供的数据处理设备的组成结构示意图。
具体实施方式
下面结合附图和具体实施例对本申请的技术方案进一步详细阐述。
为了使本技术领域的人员更好地理解本公开实施例方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。
本申请的说明书实施例和权利要求书及上述附图中的术语“第一”、“第二”、和“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了解决相关技术中缓存性能低的技术问题,本申请实施例提供一种数据方法,该方法可以应用至目标存储节点,在一些实施例中,该目标存储节点可以是部署有多级存储单元的数据库引擎,具体的,在目标存储节点接收到客户端发送的携带有待处理数据的数据处理请求的情况下,目标存储节点可以在多级存储单元中针对待处理数据进行处理,得到数据处理结果。最后,将数据处理结果反馈至所述客户端。因为目标存储节点包括有多级存储单元,该多级存储单元至少包括:高优先级存储单元以及低优先级存储单元,两个存储单元中的数据可以基于数据本身的访问热度在高优先级存储单元以及低优先级存储单元之间进行动态迁移,这样可以持续的保证高优先级存储单元存储的数据的访问热度,大于低优先级存储单元存储的数据的访问热度,以提高数据处理的效率,进而在处理待访问数据时,可以优先在高优先级存储单元中处理,提高了数据处理的效率。
图1为本申请实施例的一种数据方法的流程图,如图1所示,该流程可以包括:
S101、接收客户端发送的携带有待处理数据的数据处理请求。
本申请实施例中,目标存储节点可以接收客户端发送的携带有待处理数据的数据处理请求。
在一些实施例中,目标存储节点可以是分布式键值存储系统中的一个存储节点。图2为本申请实施例中分布式键值存储系统的框架图,如图2所示,该分布式键值存储系统包括:客户端、数据服务节点以及存储节点,其中,存储节点可以包括目标存储节点以及从存储节点,目标存储节点和从存储节点都运行数据库引擎实例(例如RocksDB),存储节点负责实际数据存储;数据服务节点负责元信息维护(包含路由表),存储节点的存活状态。每一存储节点都部署了DRAM缓存(Cache)和SCM缓存(Cache),DRAM Cache和SCM Cache中存储有键值对,其中,DRAM Cache和SCM Cache中存储的键值对可以基于最近最少使用(LeastRecently Used,LRU)算法相互迁移,即DRAM Cache中的键值对可以基于LRU迁移至SCMCache,SCM Cache中的键值对也可以基于LRU迁移至DRAM Cache。
基于上述分布式键值存储系统的框架,客户端在向目标存储节点发送数据处理请求之前,还包括:1.客户端接收业务端发送的业务请求;2.客户端向数据服务节点发送注册请求,以及客户端接收所述数据服务节点响应所述注册请求,反馈的路由表及对应标识;所述路由表中包括多个存储节点地址与各自对应的标识之间的映射关系;客户端基于所述对应标识在多个存储节点地址中确定出对应的目标存储节点地址;对应的,客户端在向目标存储节点发送数据处理请求,可以包括:客户端基于目标存储节点地址向目标存储节点发送数据处理请求(图2中的步骤3)。
S102、响应于所述数据处理请求,在多级存储单元中针对所述待处理数据进行处理,得到数据处理结果。
本申请实施例中,目标存储节点包括有多级存储单元,目标存储节点可以响应于数据处理请求,按照多级存储单元的顺序依次对待处理数据进行处理,得到处理结果。其中多级存储单元中排列在前的存储单元的数据处理效率高于排列在后的数据处理单元。
在一些实施例中,数据处理请求可以是读数据请求,目标存储节点经过对待处理数据进行读数据的处理,可以得到与读数据请求对应的读取结果;在其他实施例中,数据处理请求还可以是写数据请求,目标存储节点经过对待处理数据进行写数据的处理,可以得到与写数据请求对应的写入结果。
在一些实施例中,所述多级存储单元至少包括:高优先级存储单元以及低优先级存储单元;在一些实施例中,高优先级存储单元可以是内存存储单元,低优先级存储单元可以是持久化存储单元,即高优先级存储单元的存储性能要优于低优先级存储单元。这里,存储性能可以是读写性能,具体的,存储性能可以是读写数据的时延以及吞吐数据的性能。由于高优先级存储单元是内存存储单元,进而高优先级存储单元的数据处理效率也更高,优先使用高优先级存储单元处理读写请求的方式也是提高了数据的处理效率。
在一些实施例中,内存存储单元可以是DRAM Cache,持久化存储单元可以是SCMCache。
如图2所示,在目标存储节点接收到客户端发送的数据处理请求之后,可以执行该数据处理请求(图2中的步骤4),即响应于数据处理请求,在多级存储单元中针对待处理数据进行处理,得到数据处理结果。
在一些实施例中,高优先级存储单元存储的数据的访问热度,大于低优先级存储单元存储的数据的访问热度;这里,数据的访问热度用于表征客户端读取该数据的频率或者次数,访问热度可以通过访问频率来表示,也可以通过访问次数来表示。也就是说,高优先级存储单元存储的是热数据,而低优先级存储单元存储的是冷数据。
在实际过程中,当前在多级存储单元存储的数据的访问热度并不能代表以后的数据的访问热度,随着客户端的不断的读取数据,数据本身的访问热度也会随之变化,为了可以持续的保证高优先级存储单元存储的是热数据,而低优先级存储单元存储的是冷数据,多级存储单元存储的数据可以在访问热度的影响下,在高优先级存储单元和低优先级存储单元之间进行动态迁移。也就是说,当某一数据的访问热度变化时,会在高优先级存储单元和低优先级存储单元之间进行动态迁移。
如附图3所示,图3为本申请实施例中多级存储单元中数据的迁移示意图,当低优先级存储单元中的数据块确定为热数据时,可以将该数据块异步批量拷贝至高优先级存储单元,当高优先级存储单元的缓存空间满时,可以将访问时间最晚的数据块同步踢出至低优先级存储单元中的块缓存中。
S103、将所述数据处理结果反馈至所述客户端。
如图2所示,目标存储节点可以向客户端返回结果(图2中的步骤6),即目标存储节点可以将与数据处理请求对应的数据处理结果反馈至客户端,例如数据处理请求为读数据请求时,可以将读取结果反馈至客户端;数据处理请求为写数据请求时,可以将写入结果反馈至客户端。
在一些实施例中,结合图2,目标存储节点向客户端返回结果之前,执行数据处理请求之后,可以基于Raft协议与其他从存储节点进行数据同步(图2中的步骤5)。
本申请实施例在接收客户端发送的携带有待处理数据的数据处理请求之后,可以响应于数据处理请求,在多级存储单元中针对待处理数据进行处理,得到数据处理结果;将数据处理结果反馈至客户端。其中,多级存储单元至少包括:高优先级存储单元以及低优先级存储单元,两个存储单元中的数据可以基于数据本身的访问热度在高优先级存储单元以及低优先级存储单元之间进行动态迁移,这样可以持续的保证高优先级存储单元存储的数据的访问热度,大于低优先级存储单元存储的数据的访问热度,由于在高优先级存储单元中只存储了部分的热度较高的数据,未存储全部的数据,进而高优先级存储单元的计算效率会大大提升,进而提高了数据处理的效率。
在一些实施例中,参见图4,图4是本申请实施例提供的数据处理方法的一个可选的流程示意图,所述方法还包括S104至S105,S104至S105可以在上述步骤中的任意位置执行,本申请实施例以将S104至S105在S103之后执行为例,结合各步骤进行说明。
S104、针对至少一个所述第一数据中的每一所述第一数据,及至少一个所述第二数据中的每一所述第二数据,获取所述第一数据的第一访问参数,以及所述第二数据的第二访问参数。
本申请实施例中,高优先级存储单元存储至少一个第一数据,低优先级存储单元存储至少一个第二数据。目标存储节点可以获取在高优先级存储单元中存储的每一第一数据的第一访问参数,以及获取在低优先级存储单元中存储的每一第二数据的第二访问参数。这里,访问参数用于表征数据的访问热度和/或访问时间。
S105、根据所述第一访问参数,将所述第一数据在所述高优先级存储单元和所述低优先级存储单元之间进行动态迁移,和/或,根据所述第二访问参数,将所述第二数据在所述高优先级存储单元和所述低优先级存储单元之间进行动态迁移。
本申请实施例中,目标存储节点可以根据每一第一数据的第一访问参数,将每一第一数据在高优先级存储单元和低优先级存储单元之间进行动态迁移,也可以根据每一第二数据的第二访问参数,将每一第二数据在高优先级存储单元和低优先级存储单元之间进行动态迁移。也就是说,目标存储节点可以根据每一数据的访问热度,将每一数据在高优先级存储单元和低优先级存储单元之间进行动态迁移。
在实际过程中,对于存储在高优先级存储单元的第一数据,迁移的过程可以是:在第一数据的第一访问参数小于第一预设访问参数的情况下,将第一数据从高优先级存储单元迁移至低优先级存储单元;还可以是,在高优先级存储单元的缓存已满,且第一数据的第一访问参数小于第一预设访问参数的情况下,将第一数据从高优先级存储单元迁移至低优先级存储单元;还可以是,在高优先级存储单元的缓存已满,且第一数据的第一访问参数在高优先级存储单元所存储的数据的访问参数中最小的情况下,将第一数据从高优先级存储单元迁移至低优先级存储单元。这样,本申请实施例可以将高优先级存储单元访问热度较低的第一数据迁移到低优先级存储单元中,从而保证了高优先级存储单元存储的数据的访问热度,大于低优先级存储单元存储的数据的访问热度。
对于存储在低优先级存储单元的第二数据,迁移的过程可以是:在第二数据的第二访问参数大于第二预设访问参数的情况下,将第二数据从低优先级存储单元迁移至高优先级存储单元,其中第二预设访问参数大于上述第一预设访问参数。在其他实施例中,第二数据除了可以在高优先级存储单元和低优先级存储单元之间进行迁移,还可以在低优先级存储单元缓存已满,且第二数据的第二访问参数小于第一预设访问参数的情况下,将第二数据丢弃。
本申请实施例可以获取在高优先级存储单元中存储的每一第一数据的第一访问参数,以及获取在低优先级存储单元中存储的每一第二数据的第二访问参数,然后根据第一数据对应的第一访问参数,将第一数据在高优先级存储单元和低优先级存储单元之间进行动态迁移,和/或,根据第二数据对应的第二访问参数,将第二数据在高优先级存储单元和低优先级存储单元之间进行动态迁移。这样,可以持续的保证高优先级存储单元存储的数据的访问热度,大于低优先级存储单元存储的数据的访问热度,当目标存储节点对数据进行处理时,优先基于高优先级存储单元内的高热度数据进行处理,而高热度数据具有较多的访问频率,该数据请求大概率会在数据处理效率高的高优先级存储单元内被处理结束,进而可以提高数据处理的效率。
在一些实施例中,上述第一访问参数包括:第一访问时间;上述第二访问参数包括:第二访问频率;上述S105中的“根据所述第二访问参数,将所述第二数据在所述高优先级存储单元和所述低优先级存储单元之间进行动态迁移”可以通过S106实现,以及“根据所述第一访问参数,将所述第一数据在所述高优先级存储单元和所述低优先级存储单元之间进行动态迁移”可以通过S107至S108实现,结合各步骤进行说明。
S106、在所述第二访问频率大于第一预设访问频率的情况下,将所述第二数据迁移至所述高优先级存储单元中。
本申请实施例中,目标存储节点确定第二数据的第二访问频率大于第一预设访问频率,说明第二数据属于热数据,所以需要将第二数据迁移至高优先级存储单元。
S107、在至少一个所述第一数据的总量等于所述高优先级存储单元的最大容量的情况下,确定第三数据;所述第三数据为对应的所述第一访问时间距离当前时间的间隔时长最大的数据。
本申请实施例中,目标存储节点确定至少一个第一数据的总量等于高优先级存储单元的最大容量,说明高优先级存储单元的缓存已满,需要迁移部分数据;将第一访问时间距离当前时间的间隔时长最大的数据确定为需要迁移的第三数据。这里,第一访问时间是指客户端访问数据的时间,可以将客户端在访问数据时,分布式键值存储系统上的时间戳作为第一数据的第一访问时间,第一访问时间距离当前时间的间隔时长最大说明该数据是客户端最近不访问的数据,所以可以将客户端最近不访问的第三数据确定为需要迁移出去的数据。
在其他实施例中,可以将访问频率小于第二预设访问频率且第一访问时间距离当前时间的间隔时长最大的数据作为第三数据。其中,该第二预设访问频率小于第一预设访问频率。
S108、将所述第三数据迁移至所述低优先级存储单元中。
本申请实施例中,目标存储节点在确定第三数据之后,为了保证高优先级存储单元能有空闲缓存,以及保证高优先级存储单元存储的都是热数据,将客户端最近不访问的数据(即第三数据)迁移至低优先级存储单元中。
本申请实施例可以在存储在低优先级存储单元的第二数据的第二访问频率大于第一预设访问频率的情况下,将第二数据迁移至所述高优先级存储单元中,也可以在至少一个第一数据的总量等于高优先级存储单元的最大容量的情况下,将访问时间最晚的数据迁移至低优先级存储单元。这样,不仅可以持续的保证高优先级存储单元存储的数据的访问热度,大于低优先级存储单元存储的数据的访问热度,而且还能保证高优先级存储单元能有空闲缓存,以接收从低优先级存储单元迁移出的热数据。
在一些实施例中,存储于低优先级存储单元的第二数据的第二访问参数还包括:第二访问时间;数据处理方法还包括S109至S110:
S109、在至少一个所述第二数据的总量等于所述低优先级存储单元的最大容量的情况下,确定第四数据;所述第四数据为对应的所述第二访问时间距离当前时间的间隔时长最大的数据。
S110、丢弃所述第四数据。
本申请实施例中,目标存储节点确定至少一个第二数据的总量等于低优先级存储单元的最大容量,说明低优先级存储单元的缓存已满,需要迁移部分数据;目标存储节点可以确定第二数据的第二访问时间是否是距离当前时间的间隔时长最大的访问时间,若是,说明该第二数据便是第四数据,则将第四数据丢弃。
本申请实施例在至少一个第二数据的总量等于低优先级存储单元的最大容量的情况下,将第二访问时间距离当前时间的间隔时长最大的数据丢弃。这样,不仅可以保证低优先级存储单元所存储的数据是客户端可能会访问的数据,而且还能保证低优先级存储单元能有空闲缓存,以接收从高优先级存储单元迁移出的冷数据。
在一些实施例中,上述S102还可以通过S111或S112实现。
S111、响应于所述读请求,沿着所述高优先级存储单元至所述低优先级存储单元的读取顺序,针对所述键数据进行处理,直至得到作为所述读取结果的值数据;
本申请实施例中,在数据处理请求为读请求的情况下,该读请求携带有键数据,目标存储节点可以响应于该读请求,沿着高优先级存储单元至所述低优先级存储单元的读取顺序,针对键数据进行处理,直至得到与键数据对应的值数据,并且该值数据作为读请求对应的读取结果。
因为本申请实施例是应用在分布式键值存储系统中,分布式键值存储系统是通过键值对来存储数据的,所以当数据处理请求为读取请求时,该读取请求中携带有键数据,目标存储节点便可以基于该键数据在多级存储单元中查找与该键数据对应的值数据。
在一些实施例中,高优先级存储单元至所述低优先级存储单元的读取顺序是指,目标存储节点先在高优先级存储单元中查找与键数据对应的值数据,在高优先级存储单元中查找不到的情况下,在低优先级存储单元中查找与键数据对应的值数据。在其他实施例中,在低优先级存储单元中查找不到与键数据对应的值数据的情况下,还可以在硬盘中查找,并将查找到的值数据加载到高优先级存储单元中,然后再次在高优先级存储单元中查找,并将查找到的值数据作为读取结果。
S112、响应于所述写请求,将所述写业务数据写入所述高优先级存储单元中,得到所述写入结果。
本申请实施例中,在数据处理请求为写请求的情况下,该写请求携带有写业务数据,目标存储节点可以响应于该写请求,将写业务数据写入高优先级存储单元中,得到写入结果,该写入结果可以表征写业务数据写入成功的结果。
在一些实施例中,在高优先级存储单元写入预设大小的数据的情况下,可以将预设大小的数据存储到硬盘中。
本申请实施例可以响应于读请求,沿着高优先级存储单元至低优先级存储单元的读取顺序,针对键数据进行处理,直至得到作为读取结果的值数据。这样,高优先级存储单元中存储的都是热数据,优先从存储性能较高的高优先级存储单元读取数据,可以提高缓存命中率以及读性能;本申请实施例还可以响应于写请求,将写业务数据写入高优先级存储单元中,得到写入结果。因为,新写入的数据往往都是热数据,所以将写业务数据写入存储性能较高的高优先级存储单元中,也可以提高缓存命中率以及写性能。
在一些实施例中,参见图5,图5是本申请实施例提供的数据处理方法的一个可选的流程示意图,在图1示出的S102还可以通过S113至S114实现,将结合各步骤进行说明。
S113、基于所述键数据,在所述高优先级存储单元中进行查找,得到第一查找结果。
本申请实施例中,目标存储节点可以基于键数据,先在高优先级存储单元中进行查找,得到第一查找结果。该第一查找结果可以表征在高优先级存储单元中是否查找到值数据。
S114、在所述第一查找结果表征在所述高优先级存储单元中未查找到所述值数据的情况下,基于所述键数据,在所述低优先级存储单元中查找所述值数据。
本申请实施例中,在所述第一查找结果表征在高优先级存储单元中未查找到所述值数据的情况下,目标存储节点可以基于键数据,在低优先级存储单元中查找值数据。
在一些实施例中,在所述第一查找结果表征在所述高优先级存储单元中查找到值数据的情况下,目标存储节点可以将该值数据作为读取结果反馈至客户端。
本申请实施例中的目标存储节点可以先基于键数据,在高优先级存储单元中进行查找对应的键数据,在高优先级存储单元中未查找到值数据的情况下,基于键数据,再在低优先级存储单元中查找所值数据。因为,高优先级存储单元不仅存储性能较高,而且其中还存储有热度高的数据,所以本申请实施例优先在高优先级存储单元中查找值数据。而大量的数据请求均会在处理速度快的高优先级存储单元中进行处理,如此可以提高读取数据的效率。
在一些实施例中,参见图6,图6是本申请实施例提供的数据处理方法的一个可选的流程示意图,在图5示出的S113还可以通过S115至S117实现,将结合各步骤进行说明。
S115、基于所述键数据,在所述第一数据集合中进行查找,得到第二查找结果。
本申请实施例中,目标存储节点基于客户端发送的读请求中携带的键数据,在高优先级存储单元对应的第一数据集合中查找与键数据对应的值数据,得到第二查找结果,该第二查找结果用于表征是否能够在第一数据集合中查找与键数据对应的值数据。
在一些实施例中,第一数据集合可以是高优先级存储单元的内存数据结构,该内存数据结构中存储有新写入的数据,因为新写入的数据是最可能被客户端访问的数据,所以优先在高优先级存储单元对应的第一数据集合中查找对应的值数据,这样可以提高读数据的效率。在一些实施例中,第一数据集合可以包括Memtables以及Immutable Memtable。
S116、在所述第二查找结果表征在所述第一数据集合中不存在所述键数据对应的所述值数据的情况下,获取至少一个有序文件中的每一所述有序文件对应的查找信息。
本申请实施例中,在第二查找结果表征在第一数据集合中不存在键数据对应的值数据的情况下,目标存储节点需要获取至少一个有序文件中的每一有序文件对应的查找信息,然后在至少一个有序文件中查找与键数据对应的值数据。
在一些实施例中,有序文件为存储完整的键值对的文件,该文件是按键数据顺序排列的文件,是最终落盘的文件。在一些实施例中,有序文件可以是排序字符串表(SortedString Table,SSTable)。有序文件的查找信息用于确定有序文件中是否存储有与键数据对应的值数据,以及确定该值数据的地址信息。
在一些实施例中,在所述第二查找结果表征在所述第一数据集合中存在所述键数据对应的所述值数据的情况下,目标存储节点可以将该值数据作为读取结果馈至客户端。
S117、基于每一所述有序文件对应的查找信息,在所述第二数据集合中进行查找,得到所述第一查找结果。
本申请实施例中,目标存储节点在高优先级存储单元对应的第一数据集合中查找不到值数据时,可以基于每一有序文件对应的查找信息,继续在高优先级存储单元对应的第二数据集合中进行查找,得到第一查找结果。
在一些实施例中,高优先级存储单元除了对应有第一数据集合以外,还对应有第二数据集合,该第二数据集合中存储有有序文件中用于存储数据的数据块,该数据块基于访问热度被存储至第二数据集合中。所以,在第一数据集合中查找不到的情况下,需要在存储有热度较高的数据的第二数据集合中再次查找。在一些实施例中,该第二数据集合可以是高优先级存储单元对应的块缓存(BlockCache),该块缓存中存储的是非压缩数据块的内容,在实际过程中,也可以设置成存储压缩数据块。
在一些实施例中,目标存储节点可以先基于查找信息确定可能存储有值数据的有序文件,然后在基于查找信息确定值数据在有序文件中的地址,最后基于值数据在有序文件中的地址在第二数据集合中,查找对应的值数据,得到第一查找结果。
本申请实施例在高优先级存储单元中查找值数据的过程中,先在第一数据集合中查找,在未查找到的情况下,基于有序文件的查找信息在第二数据集合中查找。这样,本申请实施例在存储有新写入的数据的第一数据集合中查找,然后在存储有访问热度较高的第二数据集合中查找,如此可以提高读取数据的效率。
在一些实施例中,上述S117还可以通过S118至S120实现,将结合各步骤进行说明。
S118、基于所述键数据,在至少一个所述有序文件中确定目标有序文件;所述目标有序文件的所述键值范围信息包括所述键数据。
本申请实施例中,目标存储节点可以基于所述键数据,在至少一个有序文件中确定键值范围信息包括键数据的目标有序文件。
在一些实施例中,键值范围信息用于表征有序文件中所存储的键数据的范围,即该键值范围信息包括有序文件中所存储的最小键数据以及最大键数据。
在一些实施例中,S118可以通过以下步骤实现:
1、基于键数据,遍历至少一个有序文件中属于第一级别的至少一个有序文件,直到查找到至少一个所述目标有序文件。
在一些实施例中,在第一级别中的有序文件是无序排列的,所以需要遍历属于第一级别的每一有序文件。
2、针对属于第N级别的至少一个有序文件,基于至少一个有序文件分别对应的键值范围信息,确定中间键值范围信息;所述N为大于1的整数;根据中间键值范围信息,将至少一个有序文件分为第一范围子集以及第二范围子集;在索引数据大于中间键值范围信息的情况下,基于索引数据在第二范围子集中查找至少一个目标有序文件;在索引数据小于中间键值范围信息的情况下,基于索引数据在第一范围子集中查找至少一个目标有序文件;在索引数据等于中间键值范围信息的情况下,将中间键值范围信息对应的有序文件确定为至少一个目标有序文件。
在一些实施例中,非第一级别的有序文件是键数据严格排序的,所以为了提高查找有序文件的效率,本申请实施例通过二分查找算法可以在非第一级别的有序文件中快速的查找到目标有序文件。
在一些实施例中,目标存储节点首次获取有序文件对应的键值范围信息时,可以在存储有序文件中的硬盘中获取,获取到之后,可以将有序文件对应的键值范围信息存储至高优先级存储单元中,这样在之后的读数据过程中,就可以直接在高优先级存储单元中获取有序文件对应的键值范围信息,提高了数据处理的效率。
在一些实施例中,若基于键数据,在至少一个有序文件中无法确定目标有序文件,即至少一个有序文件分别对应的键值范围信息均不包括键数据,则目标存储节点可以将读取不到键数据对应的值数据的读取结果反馈至客户端。
S119、在基于目标过滤信息确定所述目标有序文件中存在所述值数据的情况下,在对应的目标索引信息中查找对应的所述值数据的地址信息。
本申请实施例中,目标存储节点确定目标有序文件的过滤信息存在键数据对应的值数据的情况下,可以在对应的索引信息中查找对应的值数据的地址信息。这里,目标过滤信息是目标有序文件对应的过滤信息;目标索引信息是目标有序文件对应的索引信息。
在一些实施例中,目标过滤信息用于表征上述查找到的目标有序文件中是否存在键数据对应的值数据。在实际应用中,该目标过滤信息可以为布隆过滤器(bloom filter),每一有序文件对应的布隆过滤器可以确定有序文件是否存储有键数据对应的值数据。索引信息为基于键数据有序排列的数组,在一些实施例中,索引信息可以是索引块(indexblock)。该索引块分为索引区和数据区,索引区记录了对应值数据的起始偏移长度。数据区记录键数据和键数据对应的值数据的起始数据偏移。通过二分查找,获取值数据在有序文件的偏移,即基于索引信息中查找对应的值数据的地址信息。
在一些实施例中,目标存储节点可以从高优先级存储单元对应的第二数据集中获取目标有序文件的过滤信息以及索引信息,在第二数据集中获取不到目标有序文件的过滤信息以及索引信息的情况下,可以在存储有序文件的硬盘中获取,并将获取到的过滤信息以及索引信息插入第二数据集中。这样,可以提高数据处理的效率。
在一些实施例中,若目标存储节点确定目标有序文件的过滤信息不存在键数据对应的值数据,则目标存储节点可以将读取不到键数据对应的值数据的读取结果反馈至客户端。
S120、基于所述值数据的地址信息在所述第二数据集合中进行查找,得到所述第一查找结果。
本申请实施例中,目标存储节点可以基于获取到的值数据的地址信息在第二数据集合中进行查找,从而得到第一查找结果。
在一些实施例中,若第一查找结果表征在第二数据集合中进行查找不到对应的值数据,则说明高优先级存储单元中并没有对应的值数据,需要在低优先级存储单元中继续查找对应的值数据。
因此,在S120之后,本申请实施例提供的数据处理方法,还包括:
S121、在所述第一查找结果表征在所述第二数据集合中查找不到所述值数据的情况下,基于所述值数据的地址信息在低优先级存储单元对应的第三数据集合中查找对应的值数据。
本申请实施例中,在第一查找结果表征在所述第二数据集合中查找不到值数据的情况下,目标存储节点基于值数据的地址信息在低优先级存储单元对应的第三数据集合中查找对应的值数据。
这里,第三数据集合中可以包括访问热度较低的数据,在一些实施例中,第三数据集合可以是低优先级数据单元对应的块缓存(BlockCache)。
在一些实施例中,若在第三数据集合中查找到对应的值数据,则目标存储点可以将查找到的值数据作为读取结果反馈至客户端。在其他实施例中,若第三数据集合中查找不到对应的值数据,则可以在硬盘中查找值数据,并将查找到的值数据插入高优先级存储单元对应的第二数据集合中。
本申请实施例中的目标存储点确定在高优先级存储单元对应的第一数据集合没有查找到对应的值数据的情况下,先基于有序文件的键值范围信息确定目标有序文件,然后基于过滤信息确定该目标有序文件中是否存在值数据,在确定存在的情况下,基于索引信息确定该值数据的地址信息。这样,相比较直接遍历所有有序文件查找对应的值数据,节省了时间,进而提高查询值数据的效率。
在一些实施例中,S112可以通过S122实现:
S122、基于所述写业务数据中的键值关系,将所述写业务数据插入所述高优先级存储单元后,得到写入结果以反馈至所述客户端。
本申请实施例,目标存储点可以根据写业务数据中的键值关系,将写业务数据插入高优先级存储单元后,得到写入结果,这样可以将该写入结果反馈至客户端。
在一些实施例中,S122可以通过以下步骤实现:
1、将写业务数据写入高优先级存储单元中的第一数据集合中。
在一些实施例中,可以先将写业务数据写入第一数据集合中的Memtables,该Memtables存储满的情况下,可以转化为Immutable Memtable。
2、在写入第一数据集合中的写业务数据满足预设大小的情况下,将写业务数据写入到有序文件中,并将写业务数据加入到高优先级存储单元中的第二数据集合中。
在一些实施例中,目标存储点将Immutable Memtable中的写业务数据按序依次写入到有序文件(SST)中,然后将写业务数据加入到高优先级存储单元中的第二数据集合中进行管理。
在其他实施例中,当高优先级存储单元中的存储空间已满的情况下,可以根据高优先级存储单元中的数据的访问参数对数据进行迁移,例如将访问热度最低的数据迁移至低优先级存储单元,和/或,将访问时间最晚的数据迁移至低优先级存储单元。当低优先级存储单元中的存储空间已满的情况下,可以根据低优先级存储单元中的数据的访问参数对数据进行释放。
本申请实施例中的目标存储点在写入数据的过程中,可以先将写业务数据写入高优先级存储单元中,然后可以批量、有序的将写业务数据写入到有序文件,实现了数据落盘。这样,客户端在读取数据时,可以从入高优先级存储单元中优先读取到最新写入的数据,提高了数据读写的效率。
在一些实施例中,参见图7,图7为本申请实施例提供的数据处理方法的一个可选的流程示意图,本申请实施例是目标存储节点针对读请求的处理流程。
本申请实施例中的处理流程是基于DKV框架而实现的,DKV包含client端(对应客户端)、Meta Server(对应数据服务节点)和Store(对应存储节点),其中Store端运行DB引擎实例(例如RocksDB)。Meta负责元信息维护(包含路由表),store节点的存活状态;Store负责实际数据存储;Client首次访问需要从Meta获得当前集群的数据分布,对每个用户请求获得Store的位置,发起请求。Meta Server和Store通过一致性协议和多副本机制保证数据可用性。具体来说,在每个Store节点中部署RocksDB本地引擎。在分布式键值存储系统中,我们在每个节点部署了SSD和SCM(例如Intel Optane)的高性能存储设备。RocksDB的SST文件和log文件写入SSD保存,而使用SCM作为二级缓存。
在一些实施例中,RocksDB引擎保存两层级的Cache列表(DRAM Cache和SCMCache),可以采用不同种类的替换算法,支持DRAM和SCM两种内存的配置和申请,SCM采用Intel Optane PMem的App Direct模式中的devdax,通过提供的libmemkind进行内存管理。本申请实施例提供了malloc和free两种接口来进行SCM内存分配。SCM内存分配采用个内存池,分配4MB,4KB,256B等多个内存页单元,本申请实施例会根据用户申请大小分配合适的内存页。
S201、接收到读请求的客户端发送注册请求。
本申请实施例中,客户端向Meta Server(对应上述实施例中的数据服务节点)请求客户端通用唯一识别码(Universally Unique Identifier,UUID),以及路由表。在实际应用中,客户端只在初始化时请求一次UUID,路由表请求后会缓存,除非后续增删改查发现缓存失效,否则不会在每次操作(op)前更新路由表。
S202、客户端通过路由表查找目标存储节点,并向目标存储节点发送数据处理请求。
本申请实施例中,客户端路由表查找目标存储节点的地址信息,然后向目标存储节点发送数据处理请求。
S203、目标存储节点解析请求并进行合法性检查,在确定合法的情况下,在内存数据结构中查询。
本申请实施例中,存储节点先进行合法化检查,在确定解析请求携带的标识是目标存储节点的标识的情况下,进行客户端任期检查,在任期检查通过之后,目标存储节点调用本地RocksDB引擎get()接口查询,在DRAM Cache(高优先级存储单元)中的Memtable和Immutable Memtable(第一数据集合)查询。如果找到,则返回结果。当Memtable没有查找到之后,RocksDB会进入到SST文件(有序文件)中查询。
S204、在内存数据结构中查询不到的情况下,确定与键数据匹配的有序文件。
本申请实施例根据RocksDB的version信息,调用其Get接口,根据所需要查找的key(对应键数据),然后选择对应的文件,这里每次会返回一个文件(key在SST的key范围内)然后循环查找。
对于level0的SST文件:因为level0的SST文件的range不是有序的,所以需要遍历level0的SST文件,确定与键数据匹配的有序文件。
对于level0的非SST文件:需要按照二分查找来得到对应的文件即可,如果二分查找不存在,那么就需要进入下一个level进行查找(通过RocksDB的version信息查找下一Level)。每层level的SST文件之间和单个SST内的key是严格排序,通过key-range判断key是否匹配SST文件。
S205、确定有序文件中是否存在键数据对应的值数据。
本申请实施例中,在filter policy开启的情况下,读取SST文件中的filterblock,获取到bloom filter(简称bf,对应过滤信息);否则若未开启filter policy,跳过bloom filter;如果block cache中没有bf的数据,则直接从SST文件读取bf数据,并将bf数据一个high的高优先级类型插入block_cache;
通过bf判断当前SST文件是否存在key对应的数据,如果不存在返回更新下统计信息,返回到下个SST文件查找key。
S206、在确定有序文件存在键数据对应的值数据的情况下,获取值数据的地址信息。
本申请实施例中,通过bf判断该SST可能有对应的key的数据,接着读取SST的index block(对应索引信息)的数据;尝试从block_cache(对应第二数据集合)中获取;如果block_cache中没有找到index数据,则从SST文件中获取,获取到之后将其插入到block_cache中。
获取到index block数据后,默认通过binary serch二分查看key对应的block_entry元数据,index在磁盘上是一个基于key有序排列数组,分为索引区和数据区(block_entry的元数据)。索引区记录了对应数据的起始偏移长度。数据区记录了key和key对应的value(对应值数据)的起始数据偏移。通过二分查找,获取index_entry,真实数据在SST文件的偏移(值数据的地址信息)。
S207、在两级缓存中查找值数据。
本申请实施例中,根据键(key)首先在DRAM Cache(对应高优先级存储单元)中的block cache(对应第二数据集合)查询;如果查找到则返回key对应的value;查询结束。如果DRAM Cache中的block cache未查找到。则转到SCM Cache(对应低优先级存储单元),在其block cache(对应第三数据集合)中查询;如果查找到则返回key对应的value;查询结束;否则,返回不存在。
S208、在两级缓存中查找不到值数据的情况下,从硬盘中的有序文件中查找值数据。
本申请实施例中,如果在SCM Cache查询不到,则从SST文件中获取(data block)返回用户。然后再将数据插入DRAM Cache中的block_cache。如果DRAM Cache中的blockcache满了,则将DRAM Cache的data block根据缓存淘汰算法(默认LRU)淘汰到SCM Cache中。
如果SCM Cache空间满,则按照缓存淘汰算法(默认LRU)将数据直接丢弃。
S209、将查找到的值数据返回至客户端。
将从SSTable files中查找到的值数据加载至DRAM Cache中,然后在DRAM Cache中查找并将结果返回客户端。
本申请实施例中的DRAM Cache存储的是访问热度较高的数据,优先从存储性能较高的DRAM Cache读取数据,在读取不到的情况下,在存储性能较低的SCM Cache读取数据。这样,可以提高缓存命中率以及读性能。
在一些实施例中,参见图8,图8为本申请实施例提供的数据处理方法的一个可选的流程示意图,本申请实施例是目标存储节点针对写请求的处理流程。将结合各步骤进行说明。
S301、接收到读请求的客户端发送注册请求。
S302、客户端通过路由表查找目标存储节点,并向目标存储节点发送数据处理请求。
S303、目标存储节点解析请求并进行合法性检查,在确定合法的情况下,将键值对写入内存数据结构中。
本申请实施例中,RocksDB将key-value写入两级缓存;首先写入DRAM Cache的Memtables(内存数据结构);若Memtable满,则转为Immutable Memtable(只读的内存数据结构)。
S304、将只读的内存数据结构中的键值对写入内存中,并将内存写入到有序文件中。
本申请实施例中,Immutable Memtable通过Flush操作,将key-value按序依次写入到data block(内存),然后将data block批量写入到SST文件中。
S305、将写入键值对的内存加载至高优先级存储单元中。
本申请实施例中,将内存data block直接加入到DRAM Cache的BlockCache中进行管理;若DRAM Cache的Block Cache中空间已满,则,按照缓存淘汰算法(默认LRU)将datablock淘汰到SCM Cache;若SCM Cache空间满了,则按照缓存淘汰算法(默认LRU)将datablock直接删除释放。
在一些实施例中,在将键值对写入SST文件中之后,需要)过Raft协议框架同步log,然后Leader(对应目标存储节点)更新状态机。Store端返回执行结果。
本申请实施例中的Leader在写入键值对的过程中,可以先将键值对写入DRAMCache中,然后可以批量、有序的将键值对写入到SST文件,实现了数据落盘。这样,客户端在读取数据时,可以从入DRAM Cache中优先读取到最新写入的数据,提高了数据读写的效率。
请参阅图9,图9为本申请实施例提供的数据处理装置的结构示意图。该数据处理装置900,所述装置包括:接收单元901、响应单元902和反馈单元903;其中:
接收单元901,用于接收客户端发送的携带有待处理数据的数据处理请求;
响应单元902,用于响应于所述数据处理请求,在多级存储单元中针对所述待处理数据进行处理,得到数据处理结果;其中,
所述多级存储单元至少包括:高优先级存储单元以及低优先级存储单元;所述高优先级存储单元存储的数据的访问热度,大于所述低优先级存储单元存储的数据的访问热度;所述数据在所述访问热度的影响下,在所述高优先级存储单元和所述低优先级存储单元之间进行动态迁移;
反馈单元903,用于将所述数据处理结果反馈至所述客户端。
在一些实施例中,所述装置还包括:迁移单元;所述迁移单元,用于针对至少一个所述第一数据中的每一所述第一数据,及至少一个所述第二数据中的每一所述第二数据,获取所述第一数据的第一访问参数,以及所述第二数据的第二访问参数;
根据所述第一访问参数,将所述第一数据在所述高优先级存储单元和所述低优先级存储单元之间进行动态迁移,和/或,根据所述第二访问参数,将所述第二数据在所述高优先级存储单元和所述低优先级存储单元之间进行动态迁移。
在一些实施例中,所述第一访问参数包括:第一访问时间;所述第二访问参数包括:第二访问频率;所述迁移单元,还用于在所述第二访问频率大于第一预设访问频率的情况下,将所述第二数据迁移至所述高优先级存储单元中;在所述高优先级存储单元中的至少一个所述第一数据的总量等于所述高优先级存储单元的最大容量的情况下,确定第三数据;所述第三数据为对应的所述第一访问时间距离当前时间的间隔时长最大的数据;将所述第三数据迁移至所述低优先级存储单元中。
在一些实施例中,所述第二访问参数还包括:第二访问时间;所述迁移单元,还用于在至少一个所述第二数据的总量等于所述低优先级存储单元的最大容量的情况下,确定第四数据;所述第四数据为对应的所述第二访问时间距离当前时间的间隔时长最大的数据;丢弃所述第四数据。
在一些实施例中,所述数据处理请求包括:读请求或写请求;所述待处理数据包括:键数据或写业务数据;所述数据处理结果包括:读取结果以及写入结果;所述响应单元902,还用于响应于所述读请求,沿着所述高优先级存储单元至所述低优先级存储单元的读取顺序,针对所述键数据进行处理,直至得到作为所述读取结果的值数据;或,响应于所述写请求,将所述写业务数据写入所述高优先级存储单元中,得到所述写入结果。
在一些实施例中,所述响应单元902,还用于基于所述键数据,在所述高优先级存储单元中进行查找,得到第一查找结果;在所述第一查找结果表征在所述高优先级存储单元中未查找到所述值数据的情况下,基于所述键数据,在所述低优先级存储单元中查找所述值数据。
在一些实施例中,所述高优先级存储单元对应有第一数据集合及第二数据集合;所述响应单元902,还用于基于所述键数据,在所述第一数据集合中进行查找,得到第二查找结果;在所述第二查找结果表征在所述第一数据集合中不存在所述键数据对应的所述值数据的情况下,获取至少一个有序文件中的每一所述有序文件对应的查找信息;基于每一所述有序文件对应的查找信息,在所述第二数据集合中进行查找,得到所述第一查找结果。
在一些实施例中,所述查找信息包括键值范围信息、过滤信息以及索引信息;所述响应单元902,还用于基于所述键数据,在至少一个所述有序文件中确定目标有序文件;所述目标有序文件的所述键值范围信息包括所述键数据;在基于目标过滤信息确定所述目标有序文件中存在所述值数据的情况下,在对应的目标索引信息中查找对应的所述值数据的地址信息;所述目标过滤信息是所述目标有序文件对应的所述过滤信息;所述目标索引信息是所述目标有序文件对应的所述索引信息;基于所述地址信息在所述第二数据集合中进行查找,得到所述第一查找结果。
在一些实施例中,所述响应单元902,还用于基于所述地址信息在所述低优先级存储单元对应的第三数据集合中查找对应的所述值数据。
在一些实施例中,所述响应单元902,还用于基于所述写业务数据中的键值关系,将所述写业务数据插入所述高优先级存储单元后,得到写入结果以反馈至所述客户端。
本申请实施例在接收客户端发送的携带有待处理数据的数据处理请求之后,可以响应于数据处理请求,在多级存储单元中针对待处理数据进行处理,得到数据处理结果;将数据处理结果反馈至客户端。其中,本申请用于处理待处理数据的多级存储单元包括高优先级存储单元以及低优先级存储单元,将访问热度较高的数据存储于高优先级存储单元,将访问热度较低的数据存储于低优先级存储单元,如此在处理待访问数据时,可以优先在高优先级存储单元中处理,提高了数据处理的效率;并且数据在访问热度的影响下,可以在高优先级存储单元和低优先级存储单元之间进行动态迁移,如此,可以持续的保证高优先级存储单元存储的数据的访问热度,大于低优先级存储单元存储的数据的访问热度,进而提高数据处理的效率。
本申请实施例提供提供一种数据处理设备,图10为本申请实施例提供的数据处理设备1000的组成结构示意图,如图10所示,所述设备包括:处理器1001、通信接口1002和存储器1003,其中:
处理器1001通常控制计算机设备1000的总体操作,总体操作可以是实现本申请实施例提供的数据处理方法,例如,如图1至图8示出的方法。
通信接口1002可以使计算机设备1000通过网络与其他终端或服务器通信。
存储器1003配置为存储由处理器1001可执行的指令和应用,还可以缓存待处理器1001以及计算机设备1000中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。处理器1001、通信接口1002和存储器1003之间可以通过总线1004进行数据传输。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在可读存储介质中。计算机设备的处理器从可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的数据处理方法。
本申请实施例提供一种存储有可执行指令的可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的数据处理方法,例如,如图1至图8示出的方法。
在一些可能的实现方式中,可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些可能的实现方式中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (13)
1.一种数据处理方法,其特征在于,应用于目标存储节点,包括:
接收客户端发送的携带有待处理数据的数据处理请求;
响应于所述数据处理请求,在多级存储单元中针对所述待处理数据进行处理,得到数据处理结果;其中,
所述多级存储单元至少包括:高优先级存储单元以及低优先级存储单元;所述高优先级存储单元存储的数据的访问热度,大于所述低优先级存储单元存储的数据的访问热度;所述数据在所述访问热度的影响下,在所述高优先级存储单元和所述低优先级存储单元之间进行动态迁移;
将所述数据处理结果反馈至所述客户端。
2.根据权利要求1所述的数据处理方法,其特征在于,所述高优先级存储单元存储至少一个第一数据,所述低优先级存储单元存储至少一个第二数据;所述方法还包括:
针对至少一个所述第一数据中的每一所述第一数据,及至少一个所述第二数据中的每一所述第二数据,获取所述第一数据的第一访问参数,以及所述第二数据的第二访问参数;
根据所述第一访问参数,将所述第一数据在所述高优先级存储单元和所述低优先级存储单元之间进行动态迁移,和/或,根据所述第二访问参数,将所述第二数据在所述高优先级存储单元和所述低优先级存储单元之间进行动态迁移。
3.根据权利要求2所述的数据处理方法,其特征在于,所述第一访问参数包括:第一访问时间;所述第二访问参数包括:第二访问频率;
所述根据所述第二访问参数,将所述第二数据在所述高优先级存储单元和所述低优先级存储单元之间进行动态迁移,包括:
在所述第二访问频率大于第一预设访问频率的情况下,将所述第二数据迁移至所述高优先级存储单元中;
所述根据所述第一访问参数,将所述第一数据在所述高优先级存储单元和所述低优先级存储单元之间进行动态迁移,包括:
在所述高优先级存储单元中的至少一个所述第一数据的总量等于所述高优先级存储单元的最大容量的情况下,确定第三数据;所述第三数据为对应的所述第一访问时间距离当前时间的间隔时长最大的数据;
将所述第三数据迁移至所述低优先级存储单元中。
4.根据权利要求3所述的数据处理方法,其特征在于,所述第二访问参数还包括:第二访问时间;所述方法还包括:
在至少一个所述第二数据的总量等于所述低优先级存储单元的最大容量的情况下,确定第四数据;所述第四数据为对应的所述第二访问时间距离当前时间的间隔时长最大的数据;
丢弃所述第四数据。
5.根据权利要求1至4任一项所述的数据处理方法,其特征在于,所述数据处理请求包括:读请求或写请求;所述待处理数据包括:键数据或写业务数据;所述数据处理结果包括:读取结果以及写入结果;
所述响应于所述数据处理请求,在多级存储单元中针对所述待处理数据进行处理,得到数据处理结果,包括:
响应于所述读请求,沿着所述高优先级存储单元至所述低优先级存储单元的读取顺序,针对所述键数据进行处理,直至得到作为所述读取结果的值数据;
或,响应于所述写请求,将所述写业务数据写入所述高优先级存储单元中,得到所述写入结果。
6.根据权利要求5所述的数据处理方法,其特征在于,所述沿着所述高优先级存储单元至所述低优先级存储单元的读取顺序,针对所述键数据进行处理,直至得到作为所述读取结果的值数据,包括:
基于所述键数据,在所述高优先级存储单元中进行查找,得到第一查找结果;
在所述第一查找结果表征在所述高优先级存储单元中未查找到所述值数据的情况下,基于所述键数据,在所述低优先级存储单元中查找所述值数据。
7.根据权利要求6所述的数据处理方法,其特征在于,所述高优先级存储单元对应有第一数据集合及第二数据集合;
所述基于所述键数据,在所述高优先级存储单元中进行查找,得到第一查找结果,包括:
基于所述键数据,在所述第一数据集合中进行查找,得到第二查找结果;
在所述第二查找结果表征在所述第一数据集合中不存在所述键数据对应的所述值数据的情况下,获取至少一个有序文件中的每一所述有序文件对应的查找信息;
基于每一所述有序文件对应的所述查找信息,在所述第二数据集合中进行查找,得到所述第一查找结果。
8.根据权利要求7所述的数据处理方法,其特征在于,所述查找信息包括键值范围信息、过滤信息以及索引信息;
所述基于每一所述有序文件对应的所述查找信息,在所述第二数据集合中进行查找,得到所述第一查找结果,包括:
基于所述键数据,在至少一个所述有序文件中确定目标有序文件;所述目标有序文件的所述键值范围信息包括所述键数据;
在基于目标过滤信息确定所述目标有序文件中存在所述值数据的情况下,在对应的目标索引信息中查找对应的所述值数据的地址信息;所述目标过滤信息是所述目标有序文件对应的所述过滤信息;所述目标索引信息是所述目标有序文件对应的所述索引信息;
基于所述地址信息在所述第二数据集合中进行查找,得到所述第一查找结果。
9.根据权利要求8所述的数据处理方法,其特征在于,所述基于所述键数据,在所述低优先级存储单元中查找所述值数据,包括:
基于所述地址信息在所述低优先级存储单元对应的第三数据集合中查找对应的所述值数据。
10.根据权利要求5所述的数据处理方法,其特征在于,所述将所述写业务数据写入所述高优先级存储单元中,得到所述写入结果,包括:
基于所述写业务数据中的键值关系,将所述写业务数据插入所述高优先级存储单元后,得到写入结果以反馈至所述客户端。
11.一种数据处理装置,其特征在于,应用于目标存储节点,包括:
接收单元,用于接收客户端发送的携带有待处理数据的数据处理请求;
响应单元,用于响应于所述数据处理请求,在多级存储单元中针对所述待处理数据进行处理,得到数据处理结果;其中,
所述多级存储单元至少包括:高优先级存储单元以及低优先级存储单元;所述高优先级存储单元存储的数据的访问热度,大于所述低优先级存储单元存储的数据的访问热度;所述数据在所述访问热度的影响下,在所述高优先级存储单元和所述低优先级存储单元之间进行动态迁移;
反馈单元,用于将所述数据处理结果反馈至所述客户端。
12.一种数据处理设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至10中任一项所述的方法。
13.一种存储介质,其特征在于,所述存储介质上存储有可执行指令,该可执行指令被处理器执行时实现权利要求1至10中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310566311.3A CN116594562A (zh) | 2023-05-18 | 2023-05-18 | 一种数据处理方法及装置、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310566311.3A CN116594562A (zh) | 2023-05-18 | 2023-05-18 | 一种数据处理方法及装置、设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116594562A true CN116594562A (zh) | 2023-08-15 |
Family
ID=87611145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310566311.3A Pending CN116594562A (zh) | 2023-05-18 | 2023-05-18 | 一种数据处理方法及装置、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116594562A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116909490A (zh) * | 2023-09-11 | 2023-10-20 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、存储系统及计算机可读存储介质 |
-
2023
- 2023-05-18 CN CN202310566311.3A patent/CN116594562A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116909490A (zh) * | 2023-09-11 | 2023-10-20 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、存储系统及计算机可读存储介质 |
CN116909490B (zh) * | 2023-09-11 | 2024-01-05 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、存储系统及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4162184B2 (ja) | データベース管理システムの実行情報を取得する手段を有する記憶装置 | |
CA2705221C (en) | Network with distributed shared memory | |
EP2478442B1 (en) | Caching data between a database server and a storage system | |
CN107491523B (zh) | 存储数据对象的方法及装置 | |
JP4317531B2 (ja) | 複数のメモリ・バッファ・サイズを均衡させるためのシステムおよび方法 | |
US20120005431A1 (en) | Network with Distributed Shared Memory | |
US8572130B2 (en) | Replacement policy for resource container | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
US20130290636A1 (en) | Managing memory | |
CN108363641B (zh) | 一种主备机数据传递方法、控制节点以及数据库系统 | |
CN111930316B (zh) | 一种内容分发网络的缓存读写系统和方法 | |
US20180329712A1 (en) | File access predication using counter based eviction policies at the file and page level | |
CN109766318B (zh) | 文件读取方法及装置 | |
JP2004171547A (ja) | メモリシステムを管理する方法および装置 | |
US7519636B2 (en) | Key sequenced clustered I/O in a database management system | |
CN111177019B (zh) | 一种内存分配管理方法、装置、设备及存储介质 | |
WO2015100674A1 (zh) | 数据迁移方法、装置和处理器 | |
CN113032335A (zh) | 文件访问方法、装置、设备及存储介质 | |
CN116594562A (zh) | 一种数据处理方法及装置、设备、存储介质 | |
EP2621143A1 (en) | Information processing apparatus, distributed processing system, and distributed processing method | |
CN112148736A (zh) | 缓存数据的方法、设备及存储介质 | |
Tulkinbekov et al. | CaseDB: Lightweight key-value store for edge computing environment | |
US20220342888A1 (en) | Object tagging | |
CN116684385A (zh) | 一种基于eBPF在内核层面的DNS缓存方法 | |
US8028011B1 (en) | Global UNIX file system cylinder group cache |
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 |