CN115185861A - 一种数据访问方法、装置及计算机设备 - Google Patents

一种数据访问方法、装置及计算机设备 Download PDF

Info

Publication number
CN115185861A
CN115185861A CN202210869122.9A CN202210869122A CN115185861A CN 115185861 A CN115185861 A CN 115185861A CN 202210869122 A CN202210869122 A CN 202210869122A CN 115185861 A CN115185861 A CN 115185861A
Authority
CN
China
Prior art keywords
data
queue
cache
target data
caching
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
Application number
CN202210869122.9A
Other languages
English (en)
Inventor
樊浚熙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Macrosan Technologies Co Ltd
Original Assignee
Macrosan Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Macrosan Technologies Co Ltd filed Critical Macrosan Technologies Co Ltd
Priority to CN202210869122.9A priority Critical patent/CN115185861A/zh
Publication of CN115185861A publication Critical patent/CN115185861A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0853Cache with multiport tag or data arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes

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

本申请提供一种数据访问方法、装置及计算机设备,其中,该数据访问方法应用于分布式存储系统的服务器,分布式存储系统包括:N个缓存队列,N大于2,每个缓存队列关联一个缓存位置,至少两个不同缓存队列的队列类型不同,不同缓存队列用于缓存不同数据读取次数的数据,包括如下步骤:接收数据读取请求,若缓存中不存在数据读取请求对应的目标数据,从数据盘中读取目标数据并缓存到初始缓存队列,初始缓存队列用于缓存数据读取次数为一次的数据;若缓存中存在数据读取请求对应的目标数据,发送目标数据,并根据目标数据所处的缓存队列将目标数据缓存到对应的缓存队列。通过实施本发明,细化了数据热度的判断,减少了数据出入队列的资源开销。

Description

一种数据访问方法、装置及计算机设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据访问方法、装置及计算机设备。
背景技术
为了平衡计算机不同组件(例如,内存、硬盘、CPU等)处理数据速度的差异,保证资源的高效利用,一般都需要使用缓存。现在缓存的概念已经被扩展,从硬件层面上讲,包括CPU高速缓存、硬盘缓存等;从软件运行层面讲,内存是一种缓存。虽然说读缓存可以有效提升系统读性能,但是缓存空间的存储空间有限,显然数据无法无限制的写入有限的缓存空间。当没有空闲的缓存空间,还有新的数据需要添加时,就需要释放原有的缓存空间后再加入新的数据,此时就需要一种缓存淘汰算法去筛选需要从缓存空间中淘汰的数据,以达到缓存空间的有效利用。
相关技术中的缓存淘汰算法为2Q算法,该算法将收到一次读取请求对应的数据存储到FIFO(First In,First Out)队列,将收到两次以上读取请求的数据存储到LRU(LeastRecently Used)队列,但是由于该算法仅仅涉及两个队列,对热数据的判断只是访问两次以上,对热数据的判断不够准确,导致会有大量的非热数据进入LRU队列,增加了系统的性能开销,以及数据读取命中率低。
发明内容
有鉴于此,本申请提供一种数据访问方法,应用于分布式存储系统的服务器,所述分布式存储系统包括:N个缓存队列,N大于2,每个缓存队列关联一个缓存位置,至少两个不同缓存队列的队列类型不同,不同缓存队列用于缓存不同数据读取次数的数据,所述方法包括:接收数据读取请求,若缓存中不存在所述数据读取请求对应的目标数据,从数据盘中读取所述目标数据并缓存到初始缓存队列,所述初始缓存队列用于缓存数据读取次数为一次的数据;若缓存中存在所述数据读取请求对应的目标数据,发送所述目标数据,并根据所述目标数据所处的缓存队列将所述目标数据缓存到对应的缓存队列。
可选地,所述目标数据所处的缓存队列为所述初始缓存队列时,所述根据所述目标数据所处的缓存队列将所述目标数据缓存到对应的缓存队列,包括:将所述目标数据缓存到中间缓存队列,所述中间缓存队列用于缓存数据读取次数为两次的数据。
可选地,所述目标数据所处的缓存队列为中间缓存队列,所述中间缓存队列用于缓存数据读取次数为两次的数据,所述根据所述目标数据所处的缓存队列将所述目标数据缓存到对应的缓存队列,包括:保持所述目标数据所处的缓存队列不变。
可选地,所述目标数据所处的缓存队列为淘汰缓存队列,所述淘汰缓存队列用于缓存移动到中间缓存队列的队列尾部淘汰的数据,所述中间缓存队列用于缓存数据读取次数为两次的数据,所述根据所述目标数据所处的缓存队列将所述目标数据缓存到对应的缓存队列,包括:确定所述目标数据为热数据,将所述目标数据存储到热数据缓存队列,所述热数据队列用于缓存数据读取次数为三次及三次以上的数据。
可选地,所述目标所处的队列为热数据缓存队列,所述热数据缓存队列用于缓存数据读取次数为三次及三次以上的数据,所述根据所述目标数据所处的缓存队列将所述目标数据缓存到对应的缓存队列,包括:将所述目标数据缓存到所述热数据缓存队列的头部。
可选地,所述目标数据所处的缓存队列为冷数据缓存队列,所述冷数据缓存队列用于缓存移动到热数据缓存队列的队列尾部淘汰的数据,所述根据所述目标数据所处的缓存队列将所述目标数据缓存到对应的缓存队列,包括:将所述目标数据缓存到淘汰缓存队列,所述淘汰缓存队列用于缓存移动到中间缓存队列的队列尾部淘汰的数据,所述中间缓存队列用于缓存数据读取次数为两次的数据。
可选地,所述数据访问方法还包括:当所述热数据缓存队列中的目标数据的读取请求数量达到预设数量阈值时,将所述目标数据对应的对象数据缓存到对象缓存队列。
根据本说明书实施例的第二方面,提供一种数据访问装置,应用于分布式存储系统的服务器,所述分布式存储系统包括:N个缓存队列,N大于2,每个缓存队列关联一个缓存位置,至少两个不同缓存队列的队列类型不同,不同缓存队列用于缓存不同数据读取次数的数据,所述装置包括:读取模块,用于接收数据读取请求,若缓存中不存在所述数据读取请求对应的目标数据,从数据盘中读取所述目标数据并缓存到初始缓存队列,所述初始缓存队列用于缓存数据读取次数为一次的数据;缓存模块,用于若缓存中存在所述数据读取请求对应的目标数据,发送所述目标数据,并根据所述目标数据所处的缓存队列将所述目标数据缓存到对应的缓存队列。
可选地,所述目标数据所处的缓存队列为所述初始缓存队列时,所述缓存模块具体用于:将所述目标数据缓存到中间缓存队列,所述中间缓存队列用于缓存数据读取次数为两次的数据。
根据本说明书实施例的第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面或第一方面任一可选实施方式所述的数据访问方法。
本申请提供的一种数据访问方法、装置及计算机设备,应用于分布式存储系统的服务器,分布式存储系统包括:N个缓存队列,N大于2,每个缓存队列关联一个缓存位置,至少两个不同缓存队列的队列类型不同,不同缓存队列用于缓存不同数据读取次数的数据,包括:接收数据读取请求,若缓存中不存在数据读取请求对应的目标数据,从数据盘中读取目标数据并缓存到初始缓存队列,初始缓存队列用于缓存数据读取次数为一次的数据;若缓存中存在数据读取请求对应的目标数据,发送目标数据,并根据目标数据所处的缓存队列将目标数据缓存到对应的缓存队列。本发明通过设置多个缓存队列,将不同读取次数的数据存到不同的缓存队列中,对数据进行了分层,细化了数据热度的判断,减少了数据出入队列的资源开销。
附图说明
图1是本说明书根据一示例性实施例示出的一种数据访问方法的流程图。
图2是本说明书根据一示例性实施例示出的缓存队列数据流转框图。
图3是本说明书根据一示例性实施例示出的一种数据访问装置的框图。
图4是本说明书实施例数据访问装置所在计算机设备的一种硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
接下来对本说明书实施例进行详细说明。
如图1所示,图1是本说明书根据一示例性实施例示出的一种数据访问方法的流程图,应用于分布式存储系统的服务器,分布式存储系统包括:N个缓存队列,N大于2,每个缓存队列关联一个缓存位置,至少两个不同缓存队列的队列类型不同,不同缓存队列用于缓存不同数据读取次数的数据。
对于分布式存储系统,用户数据是以数据块的形式进行存储的,例如,每64KB为一个数据块,而不是以对象为单位进行存储的。
上述缓存队列的数量可以为3个,也可以为6个,本发明实施例对上述缓存队列的数量不作具体限定,本领域技术人员可以根据实际情况确定。本发明实施例以缓存队列的数量为6个为例进行说明。缓存位置可以包括:内存、SSD固态硬盘等。队列类型可以包括:FIFO(First Input First Output)、LRU(Least Recently Used)等。本发明实施例对上述缓存位置以及队列类型不作具体限定,本领域技术人员可以根据实际情况确定。其中,FIFO为先进先出队列,即先进入队列的数据先淘汰。LRU为内存管理的一种页面置换算法,新加入的数据放到队列的头部,当缓存命中(即数据被访问),数据移到队列的头部,当队列满的时候,将队列尾部的数据丢弃。
在本发明实施例中,至少存在2个缓存队列的队列类型是不同的,例如,当缓存队列的数量为3个时,3个缓存队列分别为缓存队列A、缓存队列B和缓存队列C,缓存队列A的队列类型为FIFO、缓存队列B的队列类型为FIFO缓存队列C的队列类型为LRU。
数据可以分为热数据和冷数据,其中,热数据指的是频繁访问的在线类数据,对存储性能要求高,冷数据指的是不经常访问的离线类数据,比如备份和归档数据。也就是说,对于热数据和冷数据的确定是根据数据访问次数确定的,因此,在本发明实施例中,为了进一步细化数据,可以根据数据访问次数确定数据的热度。
如图1所示,该数据访问方法包括:
S110:接收数据读取请求,若缓存中不存在数据读取请求对应的目标数据,从数据盘中读取目标数据并缓存到初始缓存队列,初始缓存队列用于缓存数据读取次数为一次的数据。
S120:若缓存中存在数据读取请求对应的目标数据,发送目标数据,并根据目标数据所处的缓存队列将目标数据缓存到对应的缓存队列。
示例性地,该数据读取请求可以携带有数据路径信息,该路径信息例如可以为:https://桶名.域名/对象名。上述初始缓存队列的队列类型可以为FIFO队列,其关联的缓存位置可以为内存,也可以为SSD固态硬盘。本发明实施例对上述初始缓存队列的缓存位置以及队列类型均不作具体限定,本领域技术人员可以根据实际情况确定。
该数据读取请求可以是用户终端通过有线网络或者无线网络方式发送过来的。本发明实施例对该数据读取请求的接收方法不作具体限定,本领域技术人员可以根据实际情况确定。
当接收到数据读取请求时,可以先根据对象名确定缓存队列关联的各个缓存中是否存在该数据读取请求对应的目标数据,当缓存中不存在数据读取请求对应的目标数据时,如图2所示,从数据盘中读取目标数据并缓存到初始缓存队列。当缓存中存在数据读取请求对应的目标数据时,向用户终端发送上述目标数据,具体发送方法与上述数据读取请求的发送方法一致,在此不再赘述。同时确定该目标数据所处的缓存队列,根据目标数据所处的缓存队列将目标数据缓存到对应的缓存队列。
本发明实施例提供的一种数据访问方法,应用于分布式存储系统的服务器,分布式存储系统包括:N个缓存队列,N大于2,每个缓存队列关联一个缓存位置,至少两个不同缓存队列的队列类型不同,不同缓存队列用于缓存不同数据读取次数的数据,包括:接收数据读取请求,若缓存中不存在数据读取请求对应的目标数据,从数据盘中读取目标数据并缓存到初始缓存队列;若缓存中存在数据读取请求对应的目标数据,发送目标数据,并根据目标数据所处的缓存队列将目标数据缓存到对应的缓存队列。本发明通过设置多个缓存队列,将不同读取次数的数据存到不同的缓存队列中,对数据进行了分层,细化了数据热度的判断,减少了数据出入队列的资源开销。
作为本发明实施例一个可选实施方式,如图2所示,当目标数据所处的缓存队列为初始缓存队列时,根据目标数据所处的缓存队列将目标数据缓存到对应的缓存队列,包括:
将目标数据缓存到中间缓存队列,中间缓存队列用于缓存数据读取次数为两次的数据。
示例性地,中间缓存队列的队列类型可以为FIFO队列,其关联的缓存位置可以为内存,也可以为SSD固态硬盘。本发明实施例对该中间缓存队列的队列类型以及关联的缓存位置均不作具体限定,本领域技术人员可以根据实际情况确定。该中间缓存队列存储的数据的热度高于初始缓存队列存储的数据的热度。
对于初始缓存队列,当初始缓存队列中的数据被访问时,将该数据缓存到中间缓存队列,当初始缓存队列中的数据移动到队列尾部没有被访问时,视作淘汰,直接删除该数据。
作为本发明实施例一个可选实施方式,如图2所示,当目标数据所处的缓存队列为中间缓存队列,中间缓存队列用于缓存数据读取次数为两次的数据,根据目标数据所处的缓存队列将目标数据缓存到对应的缓存队列,包括:
保持目标数据所处的缓存队列不变。
示例性地,对于中间缓存队列,当中间缓存队列中的数据被访问时,保持目标数据所处的缓存队列不变,该中间缓存队列之所以没有涉及任何数据热度的提升,是为了排除短时间内同一数据被频繁访问导致数据热度很高的情况,当之后若数据不再被访问时,数据热度很难很快的下降到淘汰标准,内存压力大。当中间缓存队列中的数据移动到队列尾部没有被访问时,视作淘汰,将该数据缓存到淘汰数据队列。
作为本发明实施例一个可选实施方式,如图2所示,当目标数据所处的缓存队列为淘汰缓存队列,淘汰缓存队列用于缓存移动到中间缓存队列的队列尾部淘汰的数据,根据目标数据所处的缓存队列将目标数据缓存到对应的缓存队列,包括:
确定目标数据为热数据,将目标数据存储到热数据缓存队列。
示例性地,上述淘汰缓存队列的队列类型可以为FIFO队列,其关联的缓存位置可以为内存,也可以为SSD固态硬盘。本发明实施例对该淘汰缓存队列的队列类型以及缓存位置均不作具体限定,本领域技术人员可以根据实际情况确定。
对于淘汰缓存队列,当淘汰缓存队列中的数据被访问时,确定该数据为热数据,将该数据缓存到热数据缓存队列的头部,当淘汰缓存队列中的数据移动到队列尾部没有被访问时,视作淘汰,直接删除该数据。
本发明实施例通过设置3个缓存队列,数据在一段时间间隔内被访问3次才能被认为是热数据,提高了热数据的门槛。上述时间间隔由初始缓存队列的队列长度、中间缓存队列的队列长度以及淘汰缓存队列的队列长度确定。
作为本发明实施例一个可选实施方式,如图2所示,当目标所处的队列为热数据缓存队列,热数据缓存队列用于缓存数据读取次数为三次及三次以上的数据,根据目标数据所处的缓存队列将目标数据缓存到对应的缓存队列,包括:
将目标数据缓存到热数据缓存队列的头部。
示例性地,上述热数据缓存队列的队列类型为LRU队列,其关联的缓存位置可以为内存,也可以为SSD固态硬盘。本发明实施例对该热数据缓存队列的队列类型以及存储位置均不作具体限定,本领域技术人员可以根据实际情况确定。为了保证处理速度,在本发明实施例中,上述热数据缓存队列关联的缓存位置可以设置为一个运算速度较快的内存。
对于热数据缓存队列,当热数据缓存队列中的数据被访问时,将该数据缓存到热数据缓存队列的头部,满足了时间局部特性,当热数据缓存队列中的数据移动到队列尾部没有被访问时,将该数据缓存至冷数据缓存队列的头部,该冷数据缓存队列的队列类型可以为LRU队列,其关联的缓存位置可以为内存,也可以为SSD固态硬盘。本发明实施例对上述冷数据缓存队列的队列类型以及缓存位置均不作具体限定,本领域技术人员可以根据实际情况确定。在本发明实施例中,上述冷数据缓存队列为SSD固态硬盘,减轻内存的压力的同时也保证了数据能被较快获取到。
作为本发明实施例一个可选实施方式,如图2所示,当目标数据所处的缓存队列为冷数据缓存队列,冷数据缓存队列用于缓存移动到热数据缓存队列的队列尾部淘汰的数据,根据目标数据所处的缓存队列将目标数据缓存到对应的缓存队列,包括:
将目标数据缓存到淘汰缓存队列。
示例性地,对于冷数据缓存队列,当冷数据缓存队列中的数据被访问时,将该数据重新缓存到淘汰缓存队列,当热数据缓存队列中的数据移动到队列尾部没有被访问时,将该数据删除。该淘汰缓存队列为热数据的淘汰提供了缓冲,在一定时间内保持了数据的热度,减少了数据误删除。
上述缓存队列中的目标数据均是以数据块的形式而不是完整对象的形式存储的,其分别由数据块所在的节点维护,所以当其中一个节点接收到用户的数据读取请求时,为了获取完成对象数据,需要与其他节点进行socket通信,数据获取效率低,故作为本发明实施例一个可选实施方式,该数据访问方法还包括:
当热数据缓存队列中的目标数据的读取请求数量达到预设数量阈值时,将目标数据对应的对象数据缓存到对象缓存队列。
示例性地,上述预设数量阈值可以为5次,本发明实施例对上述预设数量阈值不作具体限定,本领域技术人员可以根据实际情况设置。上述对象缓存队列为LRU队列,其关联的缓存位置可以为内存,也可以为SSD固态硬盘,本发明实施例对上述缓存位置不作具体限定,本领域技术人员可以根据实际情况确定。
在本发明实施例中,可以在热数据缓存队列中的页面添加一个访问频次计数,当接收到一次针对目标数据的读取请求,访问频次加一,当访问频次达到上述预设数量阈值时,将该目标数据对应的完整对象数据缓存到对象缓存队列。这样,用户下一次访问时,可以直接从对象缓存队列中获取完整的对象数据,免去了节点间的通信开销,提高数据获取速率。
作为本发明实施例一个可选的实施方式,当对象缓存队列中的目标数据再次被访问时,将该目标数据对应的对象数据移动到对象缓存队列的队头,若移动到队尾,则自动删除。
作为本发明实施例一个可选实施方式,该数据访问方法还包括:当热数据缓存队列中的目标数据的读取请求数量达到预设数量阈值,且对象数据的大小小于预设阈值时,将目标数据对应的对象数据缓存到对象缓存队列。
示例性地,该预设阈值可以为50KB,本发明实施例对该预设阈值不作具体限定,本领域技术人员可以根据实际情况确定。本发明实施例通过将被频繁的访问的小对象缓存到内存,减少了节点间的通信以及减少了合并资源的开销。
对于上述初始缓存队列、中间缓存队列、淘汰缓存队列、热数据缓存队列、冷数据缓存队列以及对象缓存队列,均需要对其缓存空间进行实时监控,防止内存溢出,当监控到内存满时,对队尾的数据进行相应的处理,例如,删除或者移入其他缓存队列。
当缓存队列关联的缓存位置中存储的数据发生变更时,需要及时将该数据移除,防止用户读取到旧的数据。对于数据变更的判断,具体可以为当初始缓存队列接收到新的数据时,确定所有的缓存队列中是否存在与新的数据名称相同的数据,若存在,确定缓存中存在的数据发生变更,将该数据删除,并将新的数据存入初始缓存队列。
表1缓存队列配置
缓存队列 队列类型 缓存位置
初始缓存队列 FIFO(先进先出) 内存
中间缓存队列 FIFO(先进先出) 内存
淘汰缓存队列 FIFO(先进先出) 内存
热数据缓存队列 LRU 内存
冷数据缓存队列 LRU SSD固态硬盘
对象缓存队列 LRU 内存
表1是本发明实施例中分布式存储系统包括的缓存队列配置的一个具体实施例,其中,初始缓存队列、中间缓存队列以及淘汰缓存队列的队列类型均设置为FIFO队列,热数据缓存队列、冷数据缓存队列以及对象缓存队列的队列类型均设置为LRU队列。初始缓存队列、中间缓存队列、淘汰缓存队列、热数据缓存队列以及对象缓存队列关联的缓存位置均为内存,冷数据缓存队列关联的缓存位置为SSD固态硬盘。
与前述方法的实施例相对应,本说明书还提供了装置及其所应用的终端的实施例。
如图3所示,图3是本说明书根据一示例性实施例示出的一种数据访问装置的框图,应用于分布式存储系统的服务器,分布式存储系统包括:N个缓存队列,N大于2,每个缓存队列关联一个缓存位置,至少两个不同缓存队列的队列类型不同,不同缓存队列用于缓存不同数据读取次数的数据,该数据访问装置包括:
读取模块210,用于接收数据读取请求,若缓存中不存在数据读取请求对应的目标数据,从数据盘中读取目标数据并缓存到初始缓存队列,初始缓存队列用于缓存数据读取次数为一次的数据;
缓存模块220,用于若缓存中存在数据读取请求对应的目标数据,发送目标数据,并根据目标数据所处的缓存队列将目标数据缓存到对应的缓存队列。
本发明实施例提供的一种数据访问装置,应用于分布式存储系统的服务器,分布式存储系统包括:N个缓存队列,N大于2,每个缓存队列关联一个缓存位置,至少两个不同缓存队列的队列类型不同,不同缓存队列用于缓存不同数据读取次数的数据,包括:接收数据读取请求,若缓存中不存在数据读取请求对应的目标数据,从数据盘中读取目标数据并缓存到初始缓存队列;若缓存中存在数据读取请求对应的目标数据,发送目标数据,并根据目标数据所处的缓存队列将目标数据缓存到对应的缓存队列。本发明通过设置多个缓存队列,将不同读取次数的数据存到不同的缓存队列中,对数据进行了分层,细化了数据热度的判断,减少了数据出入队列的资源开销。
作为本发明实施例一个可选实施方式,目标数据所处的缓存队列为初始缓存队列时,缓存模块220具体用于:将目标数据缓存到中间缓存队列,中间缓存队列用于缓存数据读取次数为两次的数据。
作为本发明实施例一个可选实施方式,目标数据所处的缓存队列为中间缓存队列,中间缓存队列用于缓存数据读取次数为两次的数据,缓存模块220具体用于:保持目标数据所处的缓存队列不变。
作为本发明实施例一个可选实施方式,目标数据所处的缓存队列为淘汰缓存队列,淘汰缓存队列用于缓存移动到中间缓存队列的队列尾部淘汰的数据,中间缓存队列用于缓存数据读取次数为两次的数据,缓存模块220具体用于:确定目标数据为热数据,将目标数据存储到热数据缓存队列,热数据队列用于缓存数据读取次数为三次及三次以上的数据。
作为本发明实施例一个可选实施方式,目标所处的队列为热数据缓存队列,热数据缓存队列用于缓存数据读取次数为三次及三次以上的数据,缓存模块220具体用于:将目标数据缓存到热数据缓存队列的头部。
作为本发明实施例一个可选实施方式,目标数据所处的缓存队列为冷数据缓存队列,冷数据缓存队列用于缓存移动到热数据缓存队列的队列尾部淘汰的数据,缓存模块220具体用于:将目标数据缓存到淘汰缓存队列,淘汰缓存队列用于缓存移动到中间缓存队列的队列尾部淘汰的数据,中间缓存队列用于缓存数据读取次数为两次的数据。
作为本发明实施例一个可选实施方式,该数据访问装置还包括:
对象数据缓存模块,用于当热数据缓存队列中的目标数据的读取请求数量达到预设数量阈值时,将目标数据对应的对象数据缓存到对象缓存队列。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书数据访问装置的实施例可以应用在计算机设备上,例如服务器或终端设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在数据访问装置的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书实施例数据访问装置所在计算机设备的一种硬件结构图,除了图4所示的处理器310、内存330、网络接口320、以及非易失性存储器340之外,实施例中装置331所在的服务器或电子设备,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。
相应的,本说明书还提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的选项卡显示方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard DiskDrive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (10)

1.一种数据访问方法,其特征在于,应用于分布式存储系统的服务器,所述分布式存储系统包括:N个缓存队列,N大于2,每个缓存队列关联一个缓存位置,至少两个不同缓存队列的队列类型不同,不同缓存队列用于缓存不同数据读取次数的数据,所述方法包括:
接收数据读取请求,若缓存中不存在所述数据读取请求对应的目标数据,从数据盘中读取所述目标数据并缓存到初始缓存队列,所述初始缓存队列用于缓存数据读取次数为一次的数据;
若缓存中存在所述数据读取请求对应的目标数据,发送所述目标数据,并根据所述目标数据所处的缓存队列将所述目标数据缓存到对应的缓存队列。
2.根据权利要求1所述的方法,其特征在于,所述目标数据所处的缓存队列为所述初始缓存队列时,所述根据所述目标数据所处的缓存队列将所述目标数据缓存到对应的缓存队列,包括:
将所述目标数据缓存到中间缓存队列,所述中间缓存队列用于缓存数据读取次数为两次的数据。
3.根据权利要求1所述的方法,其特征在于,所述目标数据所处的缓存队列为中间缓存队列,所述中间缓存队列用于缓存数据读取次数为两次的数据,所述根据所述目标数据所处的缓存队列将所述目标数据缓存到对应的缓存队列,包括:
保持所述目标数据所处的缓存队列不变。
4.根据权利要求1所述的方法,其特征在于,所述目标数据所处的缓存队列为淘汰缓存队列,所述淘汰缓存队列用于缓存移动到中间缓存队列的队列尾部淘汰的数据,所述中间缓存队列用于缓存数据读取次数为两次的数据,所述根据所述目标数据所处的缓存队列将所述目标数据缓存到对应的缓存队列,包括:
确定所述目标数据为热数据,将所述目标数据存储到热数据缓存队列,所述热数据队列用于缓存数据读取次数为三次及三次以上的数据。
5.根据权利要求1所述的方法,其特征在于,所述目标所处的队列为热数据缓存队列,所述热数据缓存队列用于缓存数据读取次数为三次及三次以上的数据,所述根据所述目标数据所处的缓存队列将所述目标数据缓存到对应的缓存队列,包括:
将所述目标数据缓存到所述热数据缓存队列的头部。
6.根据权利要求1所述的方法,其特征在于,所述目标数据所处的缓存队列为冷数据缓存队列,所述冷数据缓存队列用于缓存移动到热数据缓存队列的队列尾部淘汰的数据,所述根据所述目标数据所处的缓存队列将所述目标数据缓存到对应的缓存队列,包括:
将所述目标数据缓存到淘汰缓存队列,所述淘汰缓存队列用于缓存移动到中间缓存队列的队列尾部淘汰的数据,所述中间缓存队列用于缓存数据读取次数为两次的数据。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述热数据缓存队列中的目标数据的读取请求数量达到预设数量阈值时,将所述目标数据对应的对象数据缓存到对象缓存队列。
8.一种数据访问装置,其特征在于,应用于分布式存储系统的服务器,所述分布式存储系统包括:N个缓存队列,N大于2,每个缓存队列关联一个缓存位置,至少两个不同缓存队列的队列类型不同,不同缓存队列用于缓存不同数据读取次数的数据,所述装置包括:
读取模块,用于接收数据读取请求,若缓存中不存在所述数据读取请求对应的目标数据,从数据盘中读取所述目标数据并缓存到初始缓存队列,所述初始缓存队列用于缓存数据读取次数为一次的数据;
缓存模块,用于若缓存中存在所述数据读取请求对应的目标数据,发送所述目标数据,并根据所述目标数据所处的缓存队列将所述目标数据缓存到对应的缓存队列。
9.根据权利要求8所述的装置,其特征在于,所述目标数据所处的缓存队列为所述初始缓存队列时,所述缓存模块具体用于:
将所述目标数据缓存到中间缓存队列,所述中间缓存队列用于缓存数据读取次数为两次的数据。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一项所述的数据访问方法。
CN202210869122.9A 2022-07-22 2022-07-22 一种数据访问方法、装置及计算机设备 Pending CN115185861A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210869122.9A CN115185861A (zh) 2022-07-22 2022-07-22 一种数据访问方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210869122.9A CN115185861A (zh) 2022-07-22 2022-07-22 一种数据访问方法、装置及计算机设备

Publications (1)

Publication Number Publication Date
CN115185861A true CN115185861A (zh) 2022-10-14

Family

ID=83520537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210869122.9A Pending CN115185861A (zh) 2022-07-22 2022-07-22 一种数据访问方法、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN115185861A (zh)

Similar Documents

Publication Publication Date Title
EP3229142B1 (en) Read cache management method and device based on solid state drive
CN108763110B (zh) 一种数据缓存方法及装置
US9189422B2 (en) Method to throttle rate of data caching for improved I/O performance
JP6613375B2 (ja) プロファイリングキャッシュ置換
US8112585B2 (en) Method and apparatus for dynamically switching cache policies
US9606937B1 (en) Cache insertion based on threshold access frequency
WO2016141735A1 (zh) 缓存数据的确定方法及装置
US20140359063A1 (en) Computer system, cache control method, and server
US10120810B2 (en) Implementing selective cache injection
EP3588913B1 (en) Data caching method, apparatus and computer readable medium
CN107870729B (zh) 一种用于缓存数据的方法、设备和系统
CN115080459A (zh) 缓存管理方法及装置、计算机可读存储介质
US11093404B2 (en) Efficient pre-fetching on a storage system
CN108459972B (zh) 一种多通道固态硬盘的高效缓存管理设计方法
CN115794366A (zh) 一种内存预取方法及装置
RU2672726C1 (ru) Способ выполнения упреждающего чтения в системах хранения данных
US11347645B2 (en) Lifetime adaptive efficient pre-fetching on a storage system
CN118152434A (zh) 数据管理方法及计算设备
US11301395B2 (en) Method and apparatus for characterizing workload sequentiality for cache policy optimization
CN115185861A (zh) 一种数据访问方法、装置及计算机设备
US10949359B2 (en) Optimizing cache performance with probabilistic model
CN107589907B (zh) 数据处理方法、电子设备及计算机可读存储介质
CN112445794B (zh) 一种大数据系统的缓存方法
CN110658999B (zh) 一种信息更新方法、装置、设备及计算机可读存储介质
CN111221749A (zh) 数据块写入方法、装置、处理器芯片及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