CN116303133A - 数据处理方法、系统、装置和计算机设备 - Google Patents
数据处理方法、系统、装置和计算机设备 Download PDFInfo
- Publication number
- CN116303133A CN116303133A CN202211088948.8A CN202211088948A CN116303133A CN 116303133 A CN116303133 A CN 116303133A CN 202211088948 A CN202211088948 A CN 202211088948A CN 116303133 A CN116303133 A CN 116303133A
- Authority
- CN
- China
- Prior art keywords
- cache
- request
- index
- data
- circuit
- 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
Images
Classifications
-
- 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
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及一种数据处理方法、系统、装置以及计算机设备。该方法包括:请求处理电路对数据请求进行处理,生成缓存申请请求,通过调用接口将缓存申请请求发送至缓存管理电路;缓存管理电路对缓存申请请求进行解析,得到硬盘地址,并确定硬盘地址对应的目标缓存索引,将目标缓存索引返回至请求处理电路;请求处理电路基于目标缓存索引以及数据请求的处理类型,进行数据处理。通过采用本发明实施例所提供的方法,可以通过提供专门用于进行缓存管理的硬件设备,避免消耗CPU资源,可以在CPU不感知的情况下,申请缓存资源,提高了RAID卡的性能,并及时地对数据请求进行处理。
Description
技术领域
本申请涉及存储技术领域,特别是涉及一种数据处理方法、系统、装置和计算机设备。
背景技术
随着存储领域的发展,在存储系统的管理中出现了一种缓存管理方案,该缓存管理方案是RAID(Redundant Arrays of Independent Disks,磁盘阵列)卡中数据通路的重要组成部分。对于低速硬盘设备可以起到缓冲作用,从而可以提高存储系统的服务质量以及存储系统的整体性能。
相关技术中的RAID卡使用CPU(central processing unit,中央处理器)来实现数据的处理流程,该处理流程包括命令接收、命令解析、缓存申请、硬盘访问、RAID计算、数据搬移、命令应答以及在此过程中所发生的异常处理流程。由于RAID卡是嵌入式设备,RAID卡中的CPU的性能也有限。如果使用CPU的资源进行数据处理,CPU放入性能会变低,导致RAID卡的性能也较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高RAID性能的数据处理方法、系统、装置和计算机设备。
第一方面,本申请提供了一种数据处理方法。应用于数据处理系统,所述数据处理系统包括:请求处理电路、缓存管理电路,所述请求处理电路与所述缓存管理电路连接;所述方法包括:
所述请求处理电路对数据请求进行处理,生成缓存申请请求,通过所述调用接口将所述缓存申请请求发送至所述缓存管理电路;
所述缓存管理电路对所述缓存申请请求进行解析,得到硬盘地址,并确定所述硬盘地址对应的目标缓存索引,将所述目标缓存索引返回至所述请求处理电路;
所述请求处理电路基于所述目标缓存索引以及所述数据请求的处理类型,进行数据处理。
上述数据处理方法中,请求处理电路对数据请求进行处理,生成缓存申请请求,通过调用接口将缓存申请请求发送至缓存管理电路;缓存管理电路对缓存申请请求进行解析,得到硬盘地址,并确定硬盘地址对应的目标缓存索引,将目标缓存索引返回至请求处理电路;请求处理电路基于目标缓存索引以及数据请求的处理类型,进行数据处理。通过采集本发明实施例所提供的方法,可以通过提供专门用于进行缓存管理的硬件设备,避免消耗CPU资源,可以在CPU不感知的情况下,申请缓存资源,提高了RAID卡的性能,并及时地对数据请求进行处理。
在其中一个实施例中,所述数据处理系统还包括状态机,所述请求处理电路通过所述状态机与所述缓存管理电路连接;所述方法包括:
所述状态机确定各所述数据请求对应的各缓存申请请求的时间顺序,按照所述时间顺序,将各所述缓存申请请求通过调用接口分别发送至所述缓存管理电路。
基于以上方案,数据处理系统中的状态机可以按照时间顺序依次处理各数据请求对应的缓存申请请求,保证各数据请求的处理时效性。
在其中一个实施例中,所述缓存管理电路包括子状态机、缓存查找单元、标记管理电路以及缓存分配电路,所述缓存管理电路对所述缓存申请请求进行解析,得到硬盘地址,并确定所述硬盘地址对应的目标缓存索引,将所述目标缓存索引返回至所述请求处理电路,包括:
所述子状态机对所述缓存申请请求进行解析,得到硬盘地址,并将所述硬盘地址传输至缓存查找单元;
所述缓存查找单元在预设查找表中查找所述硬盘地址对应的索引;
如果在所述预设查找表中查找到所述硬盘地址对应的索引,则将查找到的索引作为所述目标缓存索引,并将所述目标缓存索引发送至所述标记管理电路;
所述标记管理电路确定所述目标缓存索引的锁定状态,在所述目标缓存索引的锁定状态是未锁定状态的情况下,将所述目标缓存索引、所述目标缓存索引的未锁定状态返回至所述请求处理电路。
基于以上方案,数据处理系统可以基于标记管理电路高效且准确地确定目标缓存索引的锁定状态。
在其中一个实施例中,所述方法还包括:
所述缓存查找单元如果在所述预设查找表中未查找到所述硬盘地址对应的索引,则生成无效索引标志,将所述无效索引标志返回至所述子状态机;
所述子状态机确定所述数据请求的处理类型,在所述数据请求的处理类型为目标类型的情况下,响应于所述无效索引标志生成缓存分配请求,并将所述缓存分配请求发送至所述缓存分配电路;
所述缓存分配电路在接收到所述缓存分配请求后,在预设的空闲链表中提取空闲缓存索引,并将所述空闲缓存索引、所述空闲缓存索引的状态,返回至所述请求处理电路。
基于以上方案,缓存分配可以在接收到无效索引标志的情况下,为数据请求对应的缓存申请请求分配空闲缓存,保证缓存分配的全面性。
在其中一个实施例中,所述方法还包括:
所述缓存分配电路将所述空闲缓存索引以及所述空闲缓存索引对应的硬盘地址添加至所述预设查找表。
基于以上方案,可以对缓存查找单元中的预设查找表进行不间断的更新,保证预设查找表中的数据的准确性、实时性以及完整性。
在其中一个实施例中,所述方法还包括:
在所述目标缓存索引的锁定状态是已锁定状态的情况下,所述标记管理电路确定所述目标缓存索引为无效索引,将所述目标缓存索引以及所述目标缓存索引的已锁定状态返回至所述请求处理电路。
基于以上方案,可以实现对无效的缓存索引的准确判断。
在其中一个实施例中,所述方法还包括:
所述请求处理电路基于所述目标缓存索引,计算内存地址,并基于所述内存地址以及所述数据请求的处理类型,进行数据处理。
基于以上方案,可以基于计算得到的目标缓存索引,计算内存地址,并基于内存地址,及时且高效地实现对数据请求的处理。
第二方面,本申请还提供了一种数据处理系统,所述数据处理系统包括:请求处理电路、缓存管理电路,所述请求处理电路与所述缓存管理电路连接,其中:
所述请求处理电路,用于对数据请求进行处理,生成缓存申请请求,通过所述调用接口将所述缓存申请请求发送至所述缓存管理电路;
所述缓存管理电路,用于对所述缓存申请请求进行解析,得到硬盘地址,并确定所述硬盘地址对应的目标缓存索引,将所述目标缓存索引返回至所述请求处理电路;
所述请求处理电路,还用于基于所述目标缓存索引以及所述数据请求的处理类型,进行数据处理。
第三方面,本申请还提供了一种数据处理装置,所述装置应用于数据处理系统,所述数据处理系统包括:请求处理电路、缓存管理电路,所述请求处理电路与所述缓存管理电路连接;所述装置包括:
发送单元,运行于所述请求处理电路,用于对数据请求进行处理,生成缓存申请请求,通过所述调用接口将所述缓存申请请求发送至所述缓存管理电路;
解析单元,运行于所述缓存管理电路,用于对所述缓存申请请求进行解析,得到硬盘地址,并确定所述硬盘地址对应的目标缓存索引,将所述目标缓存索引返回至所述请求处理电路;
数据处理单元,运行于所述请求处理电路,用于基于所述目标缓存索引以及所述数据请求的处理类型,进行数据处理。
根据本公开实施例的第四方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面中任一项所述的数据处理方法。
根据本公开实施例的第五方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如第一方面中任一项所述的数据处理方法。
根据本公开实施例的第六方面,提供一种计算机程序产品,所述计算机程序产品中包括指令,所述指令被电子设备的处理器执行时,使得所述电子设备能够执行如第一方面中任一项所述的数据处理方法。
上述数据处理方法、系统、装置和计算机设备,该数据处理方法应用于数据处理系统,数据处理系统包括:请求处理电路、缓存管理电路,请求处理电路与缓存管理电路连接;方法包括:请求处理电路对数据请求进行处理,生成缓存申请请求,通过调用接口将缓存申请请求发送至缓存管理电路;缓存管理电路对缓存申请请求进行解析,得到硬盘地址,并确定硬盘地址对应的目标缓存索引,将目标缓存索引返回至请求处理电路;请求处理电路基于目标缓存索引以及数据请求的处理类型,进行数据处理。通过采集本发明实施例所提供的方法,可以通过提供专门用于进行缓存管理的硬件设备,避免消耗CPU资源,可以在CPU不感知的情况下,申请缓存资源,提高了RAID卡的性能,并及时地对数据请求进行处理。
附图说明
图1为一个实施例中数据处理方法的应用环境图;
图2为一个实施例中数据处理方法的流程图;
图3为一个实施例中数据处理系统的结构示意图;
图4A为一个实施例中缓存管理电路的结构示意图;
图4B为一个实施例中缓存管理电路的结构示意图;
图4C为一个实施例中淘汰管理电路中各个链表之间进行交互的示意图;
图5为一个实施例中数据处理系统的结构示意图;
图6为一个实施例中确定目标缓存索引步骤的流程示意图;
图7为一个实施例中分配空闲缓存步骤的流程示意图;
图8为另一个实施例中数据处理系统的结构示意图;
图9A为一个实施例中数据处理方法的写请求的处理流程图;
图9B为一个实施例中数据处理方法的度请求的处理流程图;
图10为一个实施例中数据处理装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的数据处理方法,可以应用于如图1所示的数据处理系统中,该数据处理系统100可以是RAID卡中的数据处理系统100,也可以任意一个用于对数据请求进行处理的数据处理系统100,具体地,数据处理系统100可以是IO(input output,输入输出)请求处理系统。数据处理系统100包括请求处理电路10、缓存管理电路20。请求处理电路10可以是Quick-Path Module(快速通路)电路,缓存管理电路20可以是缓存管理硬化模块(CMHarden Module),具体可以是由ASIC(Application Specific Integrated Circuit,专用集成电路)实现的逻辑模块。
本公开实施例提供的数据处理方法,可以在接收到数据处理请求的情况下,通过请求处理电路10对该数据处理请求进行处理,请求处理电路10在对该数据处理进行处理的过程中,会生成缓存申请请求,以使对缓存资源进行申请。请求处理电路10可以通过调用接口调用缓存管理电路20。这样,缓存管理电路20会对该缓存申请请求进行处理,并向请求处理电路10返回相应信息,以使请求处理电路10可以基于该信息继续执行该数据处理请求的处理流程。
图2是根据一示例性实施例示出的一种数据处理方法的流程图,如图2所示,该方法包括以下步骤。
步骤202,请求处理电路对数据请求进行处理,生成缓存申请请求,通过调用接口将缓存申请请求发送至缓存管理电路。
其中,该数据请求可以是IO请求。调用接口用于实现请求处理电路10对缓存管理电路20的调用。
在本实施例中,用户可以基于实际应用的需求,对业务系统进行数据处理操作。业务系统响应于用户的数据处理操作,可以生成数据请求,并将该数据请求发送至业务系统对应的数据处理系统100。在数据处理系统100接收到该数据请求后,数据处理系统100中请求处理电路10可以对该数据请求进行处理。具体地,请求处理电路10响应于该数据请求,可以对数据处理请求进行处理。该处理流程可以包括命令接收、命令解析、缓存申请、硬盘访问、RAID计算、数据搬移、命令应答,该处理流程还可以包括在上述处理过程中所生成的异常处理流程等等。这样,在请求处理电路10在进行缓存申请的流程的情况下,请求处理电路10可以生成缓存申请请求,并通过预设的调用接口,将该缓存申请请求发送至缓存管理电路20。
可选地,数据请求中可以携带有硬盘编号(diskID)以及存储单元地址(LBA)。
步骤204,缓存管理电路对缓存申请请求进行解析,得到硬盘地址,并确定硬盘地址对应的目标缓存索引,将目标缓存索引返回至请求处理电路。
在本实施例中,在缓存管理电路20接收到该缓存申请请求后,缓存管理电路20可以对该缓存申请请求进行解析处理,确定该缓存申请请求中所携带的硬盘地址,即硬盘编号以及存储单元地址。这样,缓存管理电路20可以基于该硬盘地址,确定该硬盘地址对应的内存中的目标缓存索引,并将确定出的目标缓存索引返回至请求处理电路10。
步骤206,请求处理电路基于目标缓存索引以及数据请求的处理类型,进行数据处理。
在本实施例中,请求处理电路10可以基于目标缓存索引、该目标缓存索引的状态数据以及该数据请求的处理类型,对该数据请求进行处理。
可选地,数据请求的处理类型可以是写类型或者读类型,在一个示例中,数据请求可以是写请求,这样,请求处理电路10可以将目标数据搬移至内存中,再基于硬盘地址将内存中的目标数据写入硬盘中,完成对数据请求的处理。
上述数据处理方法中,请求处理电路对数据请求进行处理,生成缓存申请请求,通过调用接口将缓存申请请求发送至缓存管理电路;缓存管理电路对缓存申请请求进行解析,得到硬盘地址,并确定硬盘地址对应的目标缓存索引,将目标缓存索引返回至请求处理电路;请求处理电路基于目标缓存索引以及数据请求的处理类型,进行数据处理。通过采集本发明实施例所提供的方法,可以通过提供专门用于进行缓存管理的硬件设备,避免消耗CPU资源,可以在CPU不感知的情况下,申请缓存资源,提高了RAID卡的性能,并及时地对数据请求进行处理。
在一示例性实施例中,该数据处理系统100还包括状态机。具体地,状态机可以是多路复用模块(multiplex),如图3所示,请求处理电路10可以通过状态机30与缓存管理电路20连接。相应地,该数据处理方法包括:
状态机确定各数据请求对应的各缓存申请请求的时间顺序,按照时间顺序,将各缓存申请请求通过调用接口分别发送至缓存管理电路。
在本实施例中,调用接口可以是预先配置的接口。状态机30会接收到多个数据请求分别对应的缓存申请请求,每一缓存申请请求的请求时间存在先后顺序。在状态机30接收到多个数据请求分别对应的各缓存申请请求的情况下,状态机30可以确定各缓存申请请求在时间维度上的时间先后顺序。这样,状态机30可以基于各缓存申请请求在时间维度上的时间先后顺序,按照从先到后的顺序,分别将各缓存申请请求通过预设的调用接口发送至缓存管理电路20。
基于以上方案,数据处理系统中的状态机可以按照时间顺序依次处理各数据请求对应的缓存申请请求,保证各数据请求的处理时效性。
在一示例性实施例中,如图4A所示,该缓存管理电路20包括子状态机400(Finite-state machine Fsm,FSM)、缓存查找单元410(Hash Tbl)、标记管理电路420(Tag_Mgr,标记管理器)以及缓存分配电路440(Cache Allocator,缓存分配管理器)。其中,子状态机400与缓存查找单元410连接,缓存查找单元410与标记管理电路420连接,标记管理电路420与缓存分配电路440连接,子状态机400还与缓存分配电路440连接。
如图4B所示,该缓存管理电路20还包括淘汰管理电路,该淘汰管理电路450与子状态机400连接。
具体地,如图4C所示,该淘汰管理电路用于将满足预设条件的缓存移动至预设的空闲链表。在一个示例中,淘汰管理电路可以对LRU列表(淘汰管理电路中的缓存列表)进行扫描,确定该LRU列表中的缓存是否在近一段时间内重复被访问,识别出热点,降低该LRU列表中的缓存被换出的可能性;淘汰管理电路可通过维护Active-List(活跃缓存列表)和Inactive-List(非活跃缓存列表)两个链表来实现缓存换出的优先级,可以通过预设的Two-Lists算法,使两个链表联合实现LRU功能,优先选取Inactive-List头部的缓存进行移出操作。其中,该LRU列表包括Active-List以及Inactive-List。
被使用过一次的缓存会首先被移入Inactive-List,并被标记为‘Referenced(被引用)状态’,其中,在两次LRU缓存扫描之间没有被访问到的缓存会被标记为‘Non-Referenced(非被引用)状态’,链表中的缓存按照FIFO原则(先进先出原则)优先将‘Non-Referenced状态’的缓存换出;如果在下一次LRU状态扫描的之前,Inactive-List中的某个缓存再次被访问,那么这个缓存就会在本次扫描时被移入Active-List,并标记为‘Non-Reference状态’。
进入Active-List中的缓存根据其在两次扫描中被访问的情况会在‘Non-Reference状态’和‘Reference状态’间变化,当Active-List中的缓存达到一定数量时,优先将被标记为‘Non-Reference状态’的缓存移入Inactive-List中,并按照此原理最终淘汰至Free List(预设的空闲链表),这样,缓存分配电路就可以从预设的空闲链表中为数据请求分配新的缓存。
如图5所示,该数据处理系统100还可以包括第一存储器40以及第二存储器50,缓存管理电路20中的各个模块的管理结构可以存储至第一存储器40,该数据处理系统100对应的缓存实体可以存储至第二存储器50,其中,第一存储器可以是片上存储器(on-a-chipmemory,OCM),第二存储器可以是双倍速率同步动态随机存储器(Double Data Rate,DDR)
具体地,如图6所示,步骤230,缓存管理电路20对缓存申请请求进行解析,得到硬盘地址,并确定硬盘地址对应的目标缓存索引,将目标缓存索引返回至请求处理电路10的具体执行过程,包括:
步骤2301,子状态机对缓存申请请求进行解析,得到硬盘地址,并将硬盘地址传输至缓存查找单元。
在本实施例中,在缓存管理电路20接收到缓存申请请求后,缓存管理电路20中的子状态机400对该缓存申请请求进行解析处理,确定该缓存申请请求中携带的硬盘地址,该硬盘地址例如可以是LBA地址。这样,子状态机400可以将解析得到的LBA地址传输至缓存查找单元410。
其中,缓存查找单元410可以包括哈希查找表。
步骤2302,缓存查找单元在预设查找表中查找硬盘地址对应的索引。
在本实施例中,缓存查找单元410内可以配置有硬盘地址与缓存索引的对应关系表,即预设查找表。这样,缓存查找单元410在接收到子状态机400传输的硬盘地址之后,可以基于该预设查找表进行查找操作,确定该硬盘地址对应的索引。
步骤2303,如果在预设查找表中查找到硬盘地址对应的索引,则将查找到的索引作为目标缓存索引,并将目标缓存索引发送至标记管理电路。
在本实施例中,如果缓存查找单元410在预设查找表中查找到该硬盘地址对应的索引,即,在缓存查找单元410确定预设查找表中预先存储有该硬盘地址以及该硬盘地址对应的缓存索引的情况下,缓存查找单元410可以确定查找到的该硬盘地址对应的索引是有效索引。这样,缓存查找单元410可以将查到到的索引作为目标缓存索引,并将该目标缓存索引传输至标记管理电路420。
步骤2304,标记管理电路确定目标缓存索引的锁定状态,在目标缓存索引的锁定状态是未锁定状态的情况下,将目标缓存索引、目标缓存索引的未锁定状态返回至请求处理电路。
在本实施例中,标记管理电路420在接收到该目标缓存索引后,可以对该目标缓存索引的锁定状态进行确定。由于缓存对多个数据请求是互斥的,也就是说,在预设时间段内,缓存仅能接收一个数据请求进行处理。这样,标记管理电路420可以在第一存储器内存储的管理数据内,查找该目标缓存索引在当前情况下对应的锁定状态。如果标记管理电路420确定在当前情况下,该目标缓存索引的锁定状态是未锁定状态,则标记管理电路420可以确定在当前情况下,不存在其他数据请求对该目标缓存索引对应的缓存进行处理,这样,标记管理电路420可以将该目标缓存索引以及该目标缓存索引对应的缓存的未锁定状态一并返回至数据处理电路。
可选地,标记管理电路420可以将该目标缓存索引以及该目标缓存索引对应的缓存的未锁定状态通过子状态机400传输至状态机30,这样,状态机30可以将该目标缓存索引以及该目标缓存索引对应的缓存的未锁定状态返回至数据请求电路,以使数据请求电路对该数据请求进行处理。
基于以上方案,数据处理系统可以基于标记管理电路高效且准确地确定目标缓存索引的锁定状态。
在一个实施例中,如图7所示,该数据处理方法还包括:
步骤710,缓存查找单元如果在预设查找表中未查找到硬盘地址对应的索引,则生成无效索引标志,将无效索引标志返回至子状态机。
在本实施例中,缓存查找单元410如果在预设查找表中未查找到该硬盘地址对应的索引,该缓存查找单元410可以确定在该预设查找表中未预先存储有该硬盘地址,以及也未预先存储有该硬盘地址对应的索引。这样,该缓存查找可以确定该硬盘地址对应的索引是无效索引,生成无效索引标志,将该无效索引标志返回至子状态机400。在一个示例中,无效索引标志可以是ffffffff。
步骤720,子状态机确定数据请求的处理类型,在数据请求的处理类型为目标类型的情况下,响应于无效索引标志生成缓存分配请求,并将缓存分配请求发送至缓存分配电路。
在本实施例中,子状态机400可以预先对该数据请求的处理类型进行判断,在确定该缓存申请请求对应的数据请求的处理类型是目标处理类型的情况下,子状态机400可以响应于该无效索引标志,生成缓存分配请求,并将该缓存分配请求发送至缓存分配电路440。
可选地,数据请求的处理类型可以包括读类型以及写类型,目标类型可以是写类型。在子状态机400确定该缓存申请请求对应的数据请求是写类型的情况下,响应于该无效索引标志,子状态机400会生成缓存分配请求。该缓存分配请求用于指示缓存分配电路440为该硬盘地址分配一可用缓存。
步骤730,缓存分配电路在接收到缓存分配请求后,在预设的空闲链表中提取空闲缓存索引,并将空闲缓存索引、空闲缓存索引的状态,返回至请求处理电路。
在本实施例中,缓存分配电路440内预先可以存储有该多个空闲缓存,并基于该多个空闲缓存分别对应的缓存索引,生成预设的空闲链表。这样,在缓存分配电路440接收到缓存分配请求后,可以在预设的空闲链表中提取目标空闲缓存索引,并确定该目标空闲缓存索引的状态,该状态可以包括目标空闲缓存索引的锁定状态、该目标空闲缓存索引中的数据的状态以及该目标空闲缓存索引的状态。基于此,缓存分配电路440可以将空闲缓存索引、空闲缓存索引的状态返回至请求处理电路10,以使请求处理电路10可以基于该空闲缓存索引、空闲缓存索引的状态,对数据请求进行处理。
其中,目标空闲缓存索引可以是预设的空闲链表中的任意一个空闲缓存索引,预设的空闲链表可以是先进先出队列,这样,目标空闲缓存索引可以是该预设的空闲链表,在时间维度上最先进入该链表的空闲缓存索引。
在一个示例中,请求处理电路10可以基于硬盘地址获取硬盘中的实体数据,并将该实体数据写入至该目标空闲缓存索引对应的空闲缓存内。
基于以上方案,缓存分配可以在接收到无效索引标志的情况下,为数据请求对应的缓存申请请求分配空闲缓存,保证缓存分配的全面性。
在一个实施例中,该数据处理方法还包括:
缓存分配电路440将空闲缓存索引以及空闲缓存索引对应的硬盘地址添加至预设查找表。
在本实施例中,缓存分配电路440在将空闲缓存索引、空闲缓存索引的状态返回至请求处理电路10之后,可以确定上述步骤中确定空闲缓存索引,以及缓存申请请求中所携带的硬盘地址中存在映射关系,这样,缓存分配电路440可以将空闲缓存索引以及该空闲缓存索引对应的硬盘地址一并发送至缓存查找单元410,这样,缓存查找单元410可以将空闲缓存索引以及该空闲缓存索引对应的硬盘地址添加至预设查找表。
基于以上方案,可以对缓存查找单元中的预设查找表进行不间断的更新,保证预设查找表中的数据的准确性、实时性以及完整性。
在一个实施例中,该数据处理方法还包括:
在目标缓存索引的锁定状态是已锁定状态的情况下,标记管理电路确定目标缓存索引为无效索引,将目标缓存索引以及目标缓存索引的已锁定状态返回至请求处理电路。
在本实施例中,标记管理电路420在确定该目标缓存索引的锁定状态是已锁定状态的情况下,可以确定该目标缓存索引对应的缓存在当前情况下正在被其他数据请求进行处理,由于缓存对于多个数据请求存在互斥,因此,此时无法对该数据请求进行数据,确定该目标缓存索引为无效索引,这样,标记管理电路420可以通过子状态机400将目标缓存索引以及目标缓存索引的已锁定状态(无效状态)返回至请求处理电路10。
基于以上方案,可以实现对无效的缓存索引的准确判断。
在一个实施例中,请求处理电路10基于目标缓存索引以及数据请求的处理类型,进行数据处理,包括:
请求处理电路基于目标缓存索引,计算内存地址,并基于内存地址以及数据请求的处理类型,进行数据处理。
在本公开实施例中,状态机30将接收到的目标缓存索引以及该目标缓存索引的状态发送至请求处理电路10,这样,在请求处理电路10接收上述数据后,在请求处理电路10确定该目标缓存索引为有效索引的状态下,可以基于该目标缓存索引计算内存地址,并基于该内存地址进行DMA计算或者XOR计算,得到计算结果,基于该计算结果实现对该数据请求的处理。
基于以上方案,可以基于计算得到的目标缓存索引,计算内存地址,并基于内存地址,及时且高效地实现对数据请求的处理。
在一个实施例中,如图8所示,是数据处理系统100的内部结构示意图,该数据处理系统100包括请求处理电路10(QuickPath)、状态机30、缓存管理电路20、第一存储器40以及第二存储器50,其中,缓存管理电路20中包含子状态机400、缓存查找单元410、淘汰管理电路450、缓存分配电路440以及标记管理电路420。该数据处理系统100中还可以包含CPU,用于协同处理数据请求。
状态机30(FSM)用于缓存管理电路20内部各电路以及模块的状态管理,可以对缓存管理电路20中的其他模块传输状态以及控制信号;缓存查找单元410(HashTbl)内部可以存储有缓存区查找表,即哈希表,缓存查找单元410可以通过预设的哈希函数对预设的缓冲区域进行散列,这样可以提高缓存查找单元410的查找效率,这样,缓存查找单元410内部可以存储有缓存的首地址与虚拟盘对应的地址(LBA)的映射关系,其中,哈希表的桶和冲突表的深度由资源决定。缓存分配电路440(Cache Allocator)用于维护缓存中的空闲缓存,即空闲缓存对应的空闲链表。标记管理电路420可以对各缓存对应的缓存索引进行状态标记。
这样,在FSM收到QuickPath模块发起的缓存申请请求(缓存申请操作)情况下,FSM会对该缓存申请请求进行解析,获取该缓存申请请求携带的LBA地址,并将该LBA地址传输至缓存查找单元410。缓存查找单元410会基于预设的查找表确定该LBA地址对应的缓存索引,如果缓存查找单元410在预设的查找表中查询到该LBA地址对应的缓存索引,则确定该缓存索引为有效索引;如果缓存查找单元410在预设的查找表中未查询到该LBA地址对应的缓存索引,则确定该缓存索引为无效索引。
在缓存查找单元410确定该缓存索引为有效索引的情况下,可以将该有效索引发送至标记管理电路420,标记管理电路420(Tag_Mgr)会对该有效索引的锁定状态进行判断,即确定在当前情况下,是否存在其他的数据请求对该有效索引对应的缓存进行处理,如果不存在其他的数据请求对该有效索引对应的缓存进行处理,则标记管理电路420可以确定该有效索引的索引状态为未锁定状态,如果存在其他的数据请求对该有效索引对应的缓存进行处理,则标记管理电路420可以确定该有效索引的索引状态为已锁定状态。这样,标记管理电路420在接收到有效索引的情况下,可以查询该有效索引对应的锁定状态的标识信息,确定该有效索引的锁定状态。
如果该有效索引是未锁定状态,则标记管理电路420可以将索引、索引的未锁定状态返回至所述请求处理电路10。如果该有效索引是已锁定状态,则将索引以及缓存索引的已锁定状态返回至所述请求处理电路10。
如果缓存查找单元410在预设的查找表中未查询到该LBA地址对应的缓存索引,则确定该缓存索引为无效索引,那么可以通过子状态机400生成缓存分配请求,并将该缓存分配请求发送至Cache Allocator,在空闲链表中摘取未使用过的缓存,并将其加入缓存查找单元410中的预设的哈希查找表。
在一实施例中,数据处理请求可以将缓存申请请求发送至状态机30,状态机30可以确定该缓存申请请求对应的数据请求的大小,在该数据请求小于预设阈值的情况下,状态机30可以将该缓存申请请求发送至缓存管理电路20,在该数据请求大于或者等于预设阈值的情况下,状态机30可以将该缓存申请请求发送至CPU,这样,可以通过实现互斥机制,使得软硬件都具备使用缓存的能力,为一些小IO请求的处理全硬化实现提供可能。其中,预设阈值可以是4kb。
可选地,该缓存管理电路20是缓存资源的硬件处理电路,可以用于处理较小的IO请求,而CPU可以处理较大的IO请求,这样,可以通过为CPU以及数据处理系统100配置相同的接口,并通过该接口实现缓存的申请以及缓存的配置,达到缓存管理电路20与CPU上的固件协同工作,一并使用缓存资源的效果。
以下结合一具体实施例详细描述该数据处理系统在处理数据请求的详细过程,如图9A所示,数据处理系统在确定该数据请求的处理类型可以是写类型的情况下,通过Quick-Path Module的Quick-Path写入口获取处理类型为写类型的IO请求,基于该IO请求中携带的diskID以及LBA作为入参进行缓存申请,即生成缓存申请请求。缓存管理电路可以对该缓存申请请求进行处理,判断是否申请到可用缓存;如果可以申请到可用缓存,那么可以启动DMA,将主机数据搬移至缓存,这样,可以释放缓存,再执行应答主机的步骤。如果没有申请到可用缓存,可以退出Quick Path流程,并将该IO请求(IO命令)转发至固件,即转发至CPU。
以下结合一具体实施例详细描述该数据处理系统在处理数据请求的详细过程,如图9B所示,数据处理系统在确定该数据请求的处理类型可以是读类型的情况下,通过Quick-Path Module的Quick-Path读入口获取处理类型为读类型的IO请求,基于该IO请求中携带的diskID以及LBA作为入参进行缓存申请,即生成缓存申请请求。缓存管理电路可以对该缓存申请请求进行处理,判断是否申请到可用缓存;如果可以申请到可用缓存,那么可以判断该缓存中存储的数据是否有效,在有效的基础上,可以启动DMA,将主机数据搬移至缓存,这样,可以释放缓存,再执行应答主机的步骤。如果没有申请到可用缓存,可以退出Quick Path流程,并将该IO请求(IO命令)转发至固件,即转发至CPU。
在缓存对应的数据是无效数据的情况下,可以绕过缓存生成透传读盘命令,并基于该透传读盘命令,读取硬盘里的数据,这样,可以释放缓存,再执行应答主机的步骤。
应该理解的是,虽然图1-图9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-图9中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
可以理解的是,本说明书中上述方法的各个实施例之间相同/相似的部分可互相参见,每个实施例重点说明的是与其他实施例的不同之处,相关之处参见其他方法实施例的说明即可。
图1是根据一示例性实施例示出的一种数据处理系统的系统框图,该数据处理系统包括:请求处理电路、缓存管理电路,请求处理电路与缓存管理电路连接,其中:
请求处理电路,用于对数据请求进行处理,生成缓存申请请求,通过调用接口将缓存申请请求发送至缓存管理电路。
缓存管理电路,用于对缓存申请请求进行解析,得到硬盘地址,并确定硬盘地址对应的目标缓存索引,将目标缓存索引返回至请求处理电路。
请求处理电路,还用于基于目标缓存索引以及数据请求的处理类型,进行数据处理。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据处理方法的数据处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据处理装置实施例中的具体限定可以参见上文中对于数据处理方法的限定,在此不再赘述。
图10是根据一示例性实施例示出的一种数据处理装置1000的装置框图。参照图10,该装置包括:发送单元1001、解析单元1002以及数据处理单元1003。
发送单元1001,运行于请求处理电路,用于对数据请求进行处理,生成缓存申请请求,通过调用接口将缓存申请请求发送至缓存管理电路。
解析单元1002,运行于缓存管理电路,用于对缓存申请请求进行解析,得到硬盘地址,并确定硬盘地址对应的目标缓存索引,将目标缓存索引返回至请求处理电路。
数据处理单元1003,运行于请求处理电路,用于基于目标缓存索引以及数据请求的处理类型,进行数据处理。
上述数据处理装置1000中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据请求的相关数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据处理方法,其特征在于,应用于数据处理系统,所述数据处理系统包括:请求处理电路、缓存管理电路,所述请求处理电路与所述缓存管理电路连接;所述方法包括:
所述请求处理电路对数据请求进行处理,生成缓存申请请求,通过调用接口将所述缓存申请请求发送至所述缓存管理电路;
所述缓存管理电路对所述缓存申请请求进行解析,得到硬盘地址,并确定所述硬盘地址对应的目标缓存索引,将所述目标缓存索引返回至所述请求处理电路;
所述请求处理电路基于所述目标缓存索引以及所述数据请求的处理类型,进行数据处理。
2.根据权利要求1所述的方法,其特征在于,所述数据处理系统还包括状态机,所述请求处理电路通过所述状态机与所述缓存管理电路连接;所述方法包括:
所述状态机确定各所述数据请求对应的各缓存申请请求的时间顺序,按照所述时间顺序,将各所述缓存申请请求通过调用接口分别发送至所述缓存管理电路。
3.根据权利要求1所述的方法,其特征在于,所述缓存管理电路包括子状态机、缓冲查找单元、标记管理电路以及缓存分配电路,所述缓存管理电路对所述缓存申请请求进行解析,得到硬盘地址,并确定所述硬盘地址对应的目标缓存索引,将所述目标缓存索引返回至所述请求处理电路,包括:
所述子状态机对所述缓存申请请求进行解析,得到硬盘地址,并将所述硬盘地址传输至缓存查找单元;
所述缓存查找单元在预设查找表中查找所述硬盘地址对应的索引;
如果在所述预设查找表中查找到所述硬盘地址对应的索引,则将查找到的索引作为所述目标缓存索引,并将所述目标缓存索引发送至所述标记管理电路;
所述标记管理电路确定所述目标缓存索引的锁定状态,在所述目标缓存索引的锁定状态是未锁定状态的情况下,将所述目标缓存索引、所述目标缓存索引的未锁定状态返回至所述请求处理电路。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述缓存查找单元如果在所述预设查找表中未查找到所述硬盘地址对应的索引,则生成无效索引标志,将所述无效索引标志返回至所述子状态机;
所述子状态机确定所述数据请求的处理类型,在所述数据请求的处理类型为目标类型的情况下,响应于所述无效索引标志生成缓存分配请求,并将所述缓存分配请求发送至所述缓存分配电路;
所述缓存分配电路在接收到所述缓存分配请求后,在预设的空闲链表中提取空闲缓存索引,并将所述空闲缓存索引、所述空闲缓存索引的状态,返回至所述请求处理电路。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述缓存分配电路将所述空闲缓存索引以及所述空闲缓存索引对应的硬盘地址添加至所述预设查找表。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述目标缓存索引的锁定状态是已锁定状态的情况下,所述标记管理电路确定所述目标缓存索引为无效索引,将所述目标缓存索引以及所述目标缓存索引的已锁定状态返回至所述请求处理电路。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述请求处理电路基于所述目标缓存索引以及所述数据请求的处理类型,进行数据处理,包括:
所述请求处理电路基于所述目标缓存索引,计算内存地址,并基于所述内存地址以及所述数据请求的类型,进行数据处理。
8.一种数据处理系统,其特征在于,所述数据处理系统包括:请求处理电路、缓存管理电路,所述请求处理电路与所述缓存管理电路连接,其中:
所述请求处理电路,用于对数据请求进行处理,生成缓存申请请求,通过调用接口将所述缓存申请请求发送至所述缓存管理电路;
所述缓存管理电路,用于对所述缓存申请请求进行解析,得到硬盘地址,并确定所述硬盘地址对应的目标缓存索引,将所述目标缓存索引返回至所述请求处理电路;
所述请求处理电路,还用于基于所述目标缓存索引以及所述数据请求的处理类型,进行数据处理。
9.一种数据处理装置,其特征在于,所述装置应用于数据处理系统,所述数据处理系统包括:请求处理电路、缓存管理电路,所述请求处理电路与所述缓存管理电路连接;所述装置包括:
发送单元,运行于所述请求处理电路,用于对数据请求进行处理,生成缓存申请请求,通过调用接口将所述缓存申请请求发送至所述缓存管理电路;
解析单元,运行于所述缓存管理电路,用于对所述缓存申请请求进行解析,得到硬盘地址,并确定所述硬盘地址对应的目标缓存索引,将所述目标缓存索引返回至所述请求处理电路;
数据处理单元,运行于所述请求处理电路,用于基于所述目标缓存索引以及所述数据请求的处理类型,进行数据处理。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211088948.8A CN116303133A (zh) | 2022-09-07 | 2022-09-07 | 数据处理方法、系统、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211088948.8A CN116303133A (zh) | 2022-09-07 | 2022-09-07 | 数据处理方法、系统、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116303133A true CN116303133A (zh) | 2023-06-23 |
Family
ID=86791081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211088948.8A Pending CN116303133A (zh) | 2022-09-07 | 2022-09-07 | 数据处理方法、系统、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116303133A (zh) |
-
2022
- 2022-09-07 CN CN202211088948.8A patent/CN116303133A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10374792B1 (en) | Layout-independent cryptographic stamp of a distributed dataset | |
US11874815B2 (en) | Key-value storage device and method of operating the same | |
CN108459826B (zh) | 一种处理io请求的方法及装置 | |
US10860493B2 (en) | Method and apparatus for data storage system | |
CN104462225B (zh) | 一种数据读取的方法、装置及系统 | |
US11314689B2 (en) | Method, apparatus, and computer program product for indexing a file | |
US11061788B2 (en) | Storage management method, electronic device, and computer program product | |
CN110851383B (zh) | 一种管理存储系统的方法及设备 | |
US9697111B2 (en) | Method of managing dynamic memory reallocation and device performing the method | |
CN110858162B (zh) | 内存管理方法及装置、服务器 | |
US20130232124A1 (en) | Deduplicating a file system | |
CN114817341B (zh) | 访问数据库的方法和装置 | |
CN105117351A (zh) | 向缓存写入数据的方法及装置 | |
CN111177143B (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
CN110830561A (zh) | 一种异步网络环境下的多用户oram访问系统及方法 | |
CN108268216B (zh) | 数据处理方法、装置及服务器 | |
US9483523B2 (en) | Information processing apparatus, distributed processing system, and distributed processing method | |
US11449270B2 (en) | Address translation method and system for KV storage device | |
WO2016131175A1 (zh) | 多核系统中数据访问者目录的访问方法及设备 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
CN107590077B (zh) | 一种Spark负载访存行为追踪方法及装置 | |
CN111831691A (zh) | 一种数据读写方法及装置、电子设备、存储介质 | |
CN115599532A (zh) | 一种访问索引的方法以及计算机集群 | |
CN116303133A (zh) | 数据处理方法、系统、装置和计算机设备 | |
CN112130747A (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 |