CN112948336A - 数据加速方法及缓存单元、电子设备及存储介质 - Google Patents
数据加速方法及缓存单元、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112948336A CN112948336A CN202110338561.2A CN202110338561A CN112948336A CN 112948336 A CN112948336 A CN 112948336A CN 202110338561 A CN202110338561 A CN 202110338561A CN 112948336 A CN112948336 A CN 112948336A
- Authority
- CN
- China
- Prior art keywords
- data
- cache unit
- cache
- module
- service
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于数据链的数据加速方法及缓存单元、电子设备及存储介质,该数据加速方法包括:调用通用缓存单元对象,生成至少一个目标缓存单元;调用至少一个目标缓存单元的缓存服务接口,使至少一个目标缓存单元分别对应地为数据链中的至少一个服务对象提供数据缓存服务。该数据加速方法通过调用通用缓存单元对象实现缓存单元,可以在存储系统的数据链中对缓存单元进行灵活配置,解决了传统缓存设计中缓存单元与系统紧耦合等问题,具有灵活性和便捷性,能够提升系统整体性能。
Description
技术领域
本公开的实施例涉及一种用于数据链的数据加速方法及缓存单元、电子设备及存储介质。
背景技术
随着网络传输技术的飞速发展,使得通过互联网提供的内容越来越丰富。例如,用户可以通过互联网读新闻、听音乐、看电影、下载应用软件等。为了能更有效率地为用户提供服务,可以采用主服务器与存储系统相结合的方式。例如,主服务器用于为用户提供服务,而服务涉及的内容数据(例如音视频数据、本文数据以及其他所需要的数据)被存储在存储系统中。存储系统包括存储服务器,存储服务器可以拥有自己的文件系统以对外提供文件访问服务。主服务器与存储系统进行交互,进行数据的存储与访问,以实现所需要的功能。
发明内容
本公开至少一个实施例提供一种用于数据链的数据加速方法,包括:调用通用缓存单元对象,生成至少一个目标缓存单元;调用所述至少一个目标缓存单元的缓存服务接口,使所述至少一个目标缓存单元分别对应地为所述数据链中的至少一个服务对象提供数据缓存服务。
例如,在本公开一实施例提供的数据加速方法中,所述至少一个目标缓存单元中的每个目标缓存单元至少部分使用持久化内存作为存储介质。
例如,在本公开一实施例提供的数据加速方法中,调用所述至少一个目标缓存单元的缓存服务接口,使所述至少一个目标缓存单元分别对应地为所述数据链中的至少一个服务对象提供数据缓存服务,包括:针对所述至少一个目标缓存单元中的每个目标缓存单元,调用所述目标缓存单元的缓存服务接口,并利用所述缓存服务接口向所述目标缓存单元传输需要缓存的数据;响应于接收到所述数据,所述目标缓存单元针对所述数据分配使用标识;所述目标缓存单元为所述数据分配所述持久化内存的存储空间;根据所述目标缓存单元的状态,判断是否对所述数据进行缓存;响应于确定对所述数据进行缓存,将所述数据存储到所述持久化内存;更新所述数据对应的元数据。
例如,在本公开一实施例提供的数据加速方法中,调用所述至少一个目标缓存单元的缓存服务接口,使所述至少一个目标缓存单元分别对应地为所述数据链中的至少一个服务对象提供数据缓存服务,还包括:响应于确定不对所述数据进行缓存,通过所述缓存服务接口返回缓存失败指示。
例如,在本公开一实施例提供的数据加速方法中,调用所述至少一个目标缓存单元的缓存服务接口,使所述至少一个目标缓存单元分别对应地为所述数据链中的至少一个服务对象提供数据缓存服务,还包括:对所述数据进行数据处理,以使所述数据的结构适于存储到所述持久化内存。
例如,在本公开一实施例提供的数据加速方法中,调用所述至少一个目标缓存单元的缓存服务接口,使所述至少一个目标缓存单元分别对应地为所述数据链中的至少一个服务对象提供数据缓存服务,还包括:响应于所述数据被存储到所述持久化内存并且所述数据对应的元数据被更新,通过所述缓存服务接口返回缓存成功指示。
例如,在本公开一实施例提供的数据加速方法中,调用所述至少一个目标缓存单元的缓存服务接口,使所述至少一个目标缓存单元分别对应地为所述数据链中的至少一个服务对象提供数据缓存服务,还包括:将所述持久化内存中存储的数据存储到持久化层。
例如,在本公开一实施例提供的数据加速方法中,所述至少一个服务对象分别为网络附属存储系统的至少一个数据处理层,所述数据链为所述网络附属存储系统中的数据链。
例如,在本公开一实施例提供的数据加速方法中,调用所述通用缓存单元对象,生成所述至少一个目标缓存单元,包括:调用对应于所述通用缓存单元对象的动态库文件,以得到对应于所述通用缓存单元对象的实例,从而生成所述至少一个目标缓存单元。
例如,在本公开一实施例提供的数据加速方法中,调用对应于所述通用缓存单元对象的动态库文件,以得到对应于所述通用缓存单元对象的实例,从而生成所述至少一个目标缓存单元,包括:基于针对所述至少一个服务对象的配置文件,调用对应于所述通用缓存单元对象的动态库文件,以得到对应于所述通用缓存单元对象的实例,从而生成所述至少一个目标缓存单元。
例如,在本公开一实施例提供的数据加速方法中,基于针对所述至少一个服务对象的配置文件,调用对应于所述通用缓存单元对象的动态库文件,以得到对应于所述通用缓存单元对象的实例,从而生成所述至少一个目标缓存单元,包括:读取所述配置文件,得到所述持久化内存的分区空间;基于所述配置文件获取针对所述至少一个服务对象的配置项;生成目标元数据,并对所述持久化内存的分区空间进行空间划分;所述动态库文件中的线程基于所述配置项运行并配置为可基于空间划分后的所述持久化内存进行数据读写操作,从而生成所述至少一个目标缓存单元。
例如,本公开一实施例提供的数据加速方法还包括:对所述持久化内存进行区域划分以得到所述分区空间,将所述持久化内存的所述分区空间以及针对所述至少一个服务对象的配置项写入所述配置文件,并且存储所述配置文件。
本公开至少一个实施例还提供一种用于数据链的缓存单元,配置为通过所述缓存单元的缓存服务接口为所述数据链中的服务对象提供数据缓存服务;其中,所述缓存单元包括缓存处理模块,所述缓存处理模块包括所述缓存服务接口和核心处理模块;所述缓存服务接口配置为传输需要缓存的数据以及与所述数据对应的元数据;所述核心处理模块配置为进行句柄管理和空间管理,并且进行线程规划。
例如,在本公开一实施例提供的缓存单元中,所述缓存单元至少部分使用持久化内存作为存储介质以存储所述数据。
例如,在本公开一实施例提供的缓存单元中,所述缓存服务接口包括第一接口和第二接口,所述第一接口配置为传输所述数据,所述第二接口配置为传输与所述数据对应的元数据。
例如,在本公开一实施例提供的缓存单元中,所述核心处理模块包括句柄管理模块和空间管理模块,所述句柄管理模块配置为提供使用标识以向所述数据发放缓存权限,所述空间管理模块配置为向所述数据分配所述持久化内存的存储空间。
例如,在本公开一实施例提供的缓存单元中,所述核心处理模块还包括线程池管理模块,所述线程池管理模块配置为根据缓存任务进行线程规划和线程处理。
例如,在本公开一实施例提供的缓存单元中,所述缓存处理模块还包括调度器,所述调度器配置为进行任务规划和调度,并且提供工作时钟。
例如,在本公开一实施例提供的缓存单元中,所述调度器包括定时器、第一任务模块、第二任务模块和轮询模块,所述定时器配置为提供所述工作时钟,所述第一任务模块配置为对第一类型任务进行管理,所述第一类型任务包括写数据和/或读数据,所述第二任务模块配置为对第二类型任务进行管理,所述第二类型任务包括访问内存、查询状态和更改配置至少之一,所述轮询模块配置为向所述缓存单元的资源提供轮询服务。
例如,本公开一实施例提供的缓存单元还包括管理工具模块,其中,所述管理工具模块包括命令接口,所述缓存处理模块还包括核心控制模块,所述管理工具模块配置为通过所述命令接口接收命令并解析所述命令,并且将解析得到的信息传输给所述核心控制模块,所述核心控制模块配置为接收所述管理工具模块传输的信息并对所述信息进行解析,以及进行命令管理。
例如,在本公开一实施例提供的缓存单元中,所述管理工具模块还包括第一解析器和第一通信模块,所述第一解析器配置为通过所述命令接口接收所述命令并解析所述命令,所述第一通信模块配置为将所述第一解析器解析得到的信息传输给所述核心控制模块。
例如,在本公开一实施例提供的缓存单元中,所述核心控制模块包括第二解析器、第二通信模块和命令管理模块,所述第二通信模块配置为接收所述管理工具模块传输的信息,所述第二解析器配置为对所述第二通信模块接收到的所述信息进行解析,所述命令管理模块配置为进行命令管理。
例如,在本公开一实施例提供的缓存单元中,所述缓存处理模块还包括硬件管理模块和调试工具模块,所述硬件管理模块配置为对所述缓存单元进行硬件管理,所述调试工具模块配置为提供调试服务。
本公开至少一个实施例还提供一种电子设备,包括本公开任一实施例提供的缓存单元。
本公开至少一个实施例还提供一种电子设备,包括:处理器;存储器,包括一个或多个计算机程序模块;其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于实现本公开任一实施例提供的数据加速方法的指令。
本公开至少一个实施例还提供一种存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时可以实现本公开任一实施例提供的数据加速方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为一种存储系统的数据路径示意图;
图2A为一种存储系统的缓存单元的设置示意图;
图2B为另一种存储系统的缓存单元的设置示意图;
图2C为另一种存储系统的缓存单元的设置示意图;
图3为本公开一些实施例提供的一种数据加速方法的流程示意图;
图4为本公开一些实施例提供的一种用于实现图3所示的数据加速方法的缓存单元的结构示意图;
图5为图3所示的数据加速方法中步骤S20的示例的流程示意图之一;
图6为图3所示的数据加速方法中步骤S20的示例的流程示意图之二;
图7为本公开一些实施例提供的一种缓存单元的内部组织逻辑图;
图8为图3所示的数据加速方法中步骤S10的示例的流程示意图之一;
图9为图3所示的数据加速方法中步骤S10的示例的流程示意图之二;
图10为本公开一些实施例提供的一种缓存单元的示意框图;
图11为本公开一些实施例提供的一种缓存单元的设置示意图;
图12为本公开一些实施例提供的一种电子设备的示意框图;
图13为本公开一些实施例提供的另一种电子设备的示意框图;以及
图14为本公开一些实施例提供的一种存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
图1为一种存储系统的数据路径示意图。如图1所示,在利用存储服务器提供数据以向用户提供服务的存储系统中,用户使用客户端(例如应用程序)通过网络与存储服务器连接,将数据通过网络写入到存储服务器,对写入的数据进行管理,并且从存储服务器中读取数据。该存储服务器例如是网络附加存储(Network Attached Storage,NAS),该存储服务器可以拥有自己的文件系统,通过NFS或CIFS(SMB)协议对外提供文件访问服务。存储服务器中的模块为层级功能结构,在数据路径中,依次为网络层、文件系统、抽象层(或称为“卷”)和持久化层。存储服务器通过网络层例如以太网(Ethernet)等提供对外存储服务。文件系统通常用于实现文件系统语义或者存储块(Block)的服务协议。抽象层是存储系统管理底层存储空间的抽象化层级。持久化层是数据持久化功能模块,可以提供针对底层硬盘空间的数据读写服务。在整个存储系统中,不同层级还提供数据处理(例如纠删码和冗余磁盘阵列)以及数据服务(例如重删和压缩)等多种功能,不同厂商的存储系统中用于实现以上功能服务的模块通常并不相同。
为了方便数据请求方对频繁访问的数据进行快速访问,提高数据的输出效率,会将持久化层(例如硬盘)中存储的数据先存放在数据链中离数据请求方较近、访问速度更快的组件中,即进行数据缓存(Cache)。在计算机系统中,缓存是一种通过软件或者硬件实现的组件,用来存放将来即将访问或者过去已经访问过的数据,用以加速数据访问的性能。在上述存储系统中,为了加速系统的数据处理能力,通常也会使用缓存,该缓存同样可以通过软件、硬件、软件与硬件的组合来实现。
为了加速数据访问,在存储系统中的不同模块或层级都有可能嵌入缓存,以加速数据访问。通常,可以将缓存设置在数据链路末端,或者将缓存设置在内存端。针对缓存的设计中,需要考虑缓存的一致性和持久性,也即,缓存应该在系统掉电后仍然够恢复,通过恢复来保证数据一致性,所以需要将数据写入到非易失存储介质中或写入多份易失性内存后再返回用户数据写入成功的响应。
图2A为一种存储系统的缓存单元的设置示意图。如图2A所示,缓存单元(Cache)设置在数据链路末端,例如设置在持久化层,该缓存单元例如使用固态硬盘(Solid StateDisk,SSD)等断电非易失的持久化存储介质。在该存储系统中,缓存操作无法与内存操作匹配,性能较低。
图2B为另一种存储系统的缓存单元的设置示意图。如图2B所示,缓存单元(Cache)对应于文件系统,设置在内存端,且由文件系统直接调用,该缓存单元例如使用SSD等断电非易失的持久化存储介质。在系统出现异常等状况下,需要将内存端的数据拷贝到非易失性存储介质中,因此需要额外设置介质或硬件。
图2C为另一种存储系统的缓存单元的设置示意图。如图2C所示,为了保证数据不丢失,数据需要写入多个位置,因此需要节点之间进行通信,以实现写入数据的同步(sync)和更新插入(merge)。例如,存储服务器1通过网络设备与存储服务器2进行通信,以实现数据的传输和同步。由此,缓存单元(Cache)与系统进行了紧耦合,并且固定在数据链路中某一个或多个模块,且使用方法固定。这样使得整体系统变得复杂,无法保证单个节点数据的完整性。
在图2A-2C所示的存储系统中,缓存单元(Cache)都与数据链路中某一个或某几个模块进行了绑定(即缓存单元与其他模块进行了紧耦合)。这些缓存单元没有自身抽象逻辑,且不能在完整的数据链路中进行灵活配置与调整。这使得缓存单元的灵活性和便捷性不足,影响了系统开发的效率,并且对系统性能的提升也产生了不利影响。
本公开至少一个实施例提供一种用于数据链的数据加速方法及缓存单元、电子设备及存储介质。该数据加速方法通过调用通用缓存单元对象实现缓存单元,可以在存储系统的数据链中对缓存单元进行灵活配置,解决了传统缓存设计中缓存单元与系统紧耦合等问题,具有灵活性和便捷性,能够提升系统整体性能。
下面,将参考附图详细地说明本公开的实施例。应当注意的是,不同的附图中相同的附图标记将用于指代已描述的相同的元件。
本公开至少一个实施例提供一种用于数据链的数据加速方法。该数据加速方法包括:调用通用缓存单元对象,生成至少一个目标缓存单元;调用至少一个目标缓存单元的缓存服务接口,使至少一个目标缓存单元分别对应地为数据链中的至少一个服务对象提供数据缓存服务。
图3为本公开一些实施例提供的一种数据加速方法的流程示意图。如图3所示,在一些实施例中,该数据加速方法包括如下操作。
步骤S10:调用通用缓存单元对象,生成至少一个目标缓存单元;
步骤S20:调用至少一个目标缓存单元的缓存服务接口,使至少一个目标缓存单元分别对应地为数据链中的至少一个服务对象提供数据缓存服务。
例如,在步骤S10中,通用缓存单元对象可以为用于提供缓存服务的动态库,该动态库可以根据使用需求被灵活加载到存储系统中运行,以生成所需要的目标缓存单元。目标缓存单元例如为对通用缓存单元对象进行实例化后得到的缓存单元,目标缓存单元可以为数据链中的任何服务对象提供数据缓存服务,所得到的目标缓存单元可以为封装好的相对独立的模块。例如,可以针对具体的服务对象,进行实例化并对应于该服务对象进行个性化配置以得到目标缓存单元,服务对象不同,则对应的目标缓存单元也不同,例如不同的服务对象对应的目标缓存单元为通用缓存单元对象的不同实例。
例如,在步骤S20中,目标缓存单元提供缓存服务接口,该缓存服务接口可以根据预设协议进行数据传输。因此,数据链中的任何服务对象可以按照预设协议使用对应的目标缓存单元,从而使用该目标缓存单元提供的数据缓存服务。例如,预设协议可以为设计人员根据需求而编制的缓存服务接口的协议,具体的协议内容可以根据实际需求而定,本公开的实施例对此不作限制。
例如,服务对象可以为网络附属存储系统中任意的数据处理层,上述数据链为该网络附属存储系统中的数据链。当服务对象为多个时,目标缓存单元也为多个,多个服务对象分别为网络附属存储系统的多个数据处理层。例如,目标缓存单元可以用于采用网络附属存储系统的企业级大规模存储。例如,网络附属存储系统可以为图1所示的存储系统,服务对象可以为图1所示的网络层、文件系统、抽象层、持久化层、客户端中的任意一个或多个。这里,网络层、文件系统、抽象层、持久化层、客户端被称为该存储系统中的数据处理层。
需要说明的是,在本公开的实施例中,网络附属存储系统不限于图1所示的存储系统,可以为具有任意结构和层级的存储系统,相应地,服务对象也不限于图1所示的各个数据处理层,可以为存储系统中任意的数据处理层,只要服务对象需要使用数据缓存服务即可。
例如,每个目标缓存单元至少部分使用持久化内存(President Memory,PMem)作为存储介质。也即是,对于每个目标缓存单元,该目标缓存单元所使用的存储介质可以仅为PMem,也可以既使用PMem又使用其他存储介质(例如DRAM、SSD、HDD等),例如,PMem支持字节寻址,可以通过CPU指令直接进行操作,断电后数据不丢失;例如,该PMem可以为 傲腾TM持久化内存,本公开的实施例对此不作限制。
由于PMem介质具有较高的性能,在数据链路上层使用不会成为性能瓶颈,从而能够较大幅度提升系统整体性能。在使用目标缓存单元时,利用目标缓存单元提供缓存服务接口将数据直接写入到PMem介质中,不存在系统异常后数据由内存拷入的过程,因此不会增加系统额外动作或负担。由于PMem介质是非易失性的,在分布式系统中,针对单节点缓存单元的数据是完整的,因此无需将数据拷贝到其他节点便可确保数据安全性和完整性。
图4为本公开一些实施例提供的一种用于实现图3所示的数据加速方法的缓存单元的结构示意图。下面结合图4对本公开实施例提供的缓存单元进行简要说明,然后结合图4对图3所示的数据加速方法进行说明。
如图4所示,可以通过封装好的通用缓存单元对象(例如动态库),以调用动态库的方式生成缓存单元10并将缓存单元10加载到存储系统中。该缓存单元10所提供的数据缓存功能被抽象成服务,缓存单元10被封装为一个相对独立的系统模块。例如,该缓存单元10配置为通过缓存单元10的缓存服务接口110为数据链中的服务对象提供数据缓存服务。在存储系统的数据链路中,任意一个模块都可以被提供一个或多个缓存单元10,并按照预设协议使用该缓存单元10。
例如,在一些示例中,该缓存单元10也可以单独组成一个子系统,从而对整个存储系统提供数据缓存服务。
例如,缓存单元10至少部分使用持久化内存(PMem)作为存储介质以存储数据。该缓存单元10包括缓存处理模块100和管理工具模块(CLI Manager)200。
缓存处理模块100为缓存单元10的核心逻辑结构,数据链路在使用数据缓存服务时只需要加载此部分即可。缓存处理模块100包括缓存服务接口(Cache Interface)110、核心处理模块(Core Module)120、调度器(Scheduler)130、核心控制模块(CacheController)140、硬件管理模块150和调试工具模块160。
缓存服务接口110配置为传输需要缓存的数据以及与该数据对应的元数据。缓存服务接口110包括第一接口111和第二接口112。第一接口111配置为传输数据,也即是,第一接口111为数据(Data)面接口。第二接口112配置为传输与该数据对应的元数据,也即是,第二接口112为元数据(Metadata)面接口。
核心处理模块120配置为进行句柄管理和空间管理,并且进行线程规划。核心处理模块120包括句柄管理模块(Identification Handle Manager)121、空间管理模块(SplitData Manager)122和线程池管理模块(Thread Pool)123。句柄管理模块121配置为提供使用标识以向数据发放缓存权限。空间管理模块122配置为向数据分配持久化内存的存储空间。线程池管理模块123配置为根据缓存任务进行线程规划和线程处理。
调度器130配置为进行任务规划和调度,并且提供工作时钟。调度器130包括定时器(Timer)131、第一任务模块132、第二任务模块133和轮询模块134。定时器131配置为提供工作时钟。第一任务模块132配置为对第一类型任务进行管理,第一类型任务包括写数据和/或读数据。第二任务模块133配置为对第二类型任务进行管理,第二类型任务包括访问内存、查询状态和更改配置至少之一。例如,在一些示例中,第一任务模块132可以为慢任务(Slow Task)管理模块,第二任务模块133可以为快任务(Fast Task)管理模块。轮询模块(Polling Module)134配置为向缓存单元10的资源提供轮询服务。
管理工具模块200包括第一解析器(Parser)210、第一通信模块(CommunicationModule)220和命令接口230。管理工具模块200配置为通过命令接口230接收命令并解析该命令,并且将解析得到的信息传输给核心控制模块140。例如,接收的命令可以为针对配置、运行信息、运行状态等的查询命令或更改命令。第一解析器210配置为通过命令接口230接收命令并解析该命令,第一通信模块220配置为将第一解析器210解析得到的信息传输给核心控制模块140并接收返回消息。
核心控制模块140配置为接收管理工具模块200传输的信息,对该信息进行解析,并进行命令管理。核心控制模块140包括第二通信模块(Communication Module)141、第二解析器(Parser)142和命令管理模块(CMD Manager)143。第二通信模块142配置为接收管理工具模块200传输的信息。例如,第二通信模块142可以监听管理工具模块200发送的消息,返回执行结果。第二解析器141配置为对第二通信模块142接收到的信息进行解析。例如,第二解析器141可以将接收到的信息转换成内部命令,并且将结果封装成消息。命令管理模块143配置为进行命令管理,例如调度执行具体命令。核心控制模块140主要用于与管理工具模块200对接。
硬件管理模块(Cache Media Manager)150配置为对缓存单元10进行硬件管理。调试工具模块(Utils Tools)160配置为提供调试服务。
图5为图3所示的数据加速方法中步骤S20的示例的流程示意图之一。下面结合图4对图3和图5所示的数据加速方法进行说明。
例如,如图5所示,在一些示例中,图3中的步骤S20可以包括如下操作。
步骤S21:针对至少一个目标缓存单元中的每个目标缓存单元,调用目标缓存单元的缓存服务接口,并利用缓存服务接口向目标缓存单元传输需要缓存的数据;
步骤S22:响应于接收到数据,目标缓存单元针对数据分配使用标识;
步骤S23:目标缓存单元为数据分配持久化内存的存储空间;
步骤S24:根据目标缓存单元的状态,判断是否对数据进行缓存;
步骤S25:响应于确定对数据进行缓存,将数据存储到持久化内存;
步骤S26:更新数据对应的元数据。
例如,在步骤S21中,通过调用目标缓存单元(在后文的描述中,目标缓存单元例如为缓存单元10)的缓存服务接口110,利用缓存服务接口110向目标缓存单元传输需要缓存的数据。例如,需要缓存的数据通过第一接口111传输。例如,还可以通过第二接口112传输该数据对应的元数据。
例如,在步骤S22中,接收到数据之后,目标缓存单元针对该数据分配使用标识。例如,句柄管理模块121针对该数据分配使用标识,从而向该数据发放缓存权限。
例如,在步骤S23中,空间管理模块122为该数据分配持久化内存的存储空间。
例如,在步骤S24中,根据目标缓存单元的状态,判断是否对数据进行缓存。例如,可以基于该目标缓存单元的存储空间是否已满、该目标缓存单元的当前工作线程数量等因素来判断是否对数据进行缓存。
例如,在步骤S25中,若确定对数据进行缓存,则将数据存储到目标缓存单元的持久化内存中。
例如,在步骤S26中,将数据存储到目标缓存单元的持久化内存之后,更新该数据对应的元数据。例如,元数据也存储在目标缓存单元的持久化内存中。
通过上述步骤S21-S26,可以实现数据缓存,该目标缓存单元可以向服务对象提供数据缓存服务。
图6为图3所示的数据加速方法中步骤S20的示例的流程示意图之二。除了还进一步包括步骤S27-S30,该数据加速方法中利用目标缓存单元提供数据缓存服务的方式与图5所示的数据加速方法中利用目标缓存单元提供数据缓存服务的方式基本相同。关于步骤S21-S26的说明可参考上文内容,此处不再赘述。
步骤S21:针对至少一个目标缓存单元中的每个目标缓存单元,调用目标缓存单元的缓存服务接口,并利用缓存服务接口向目标缓存单元传输需要缓存的数据;
步骤S22:响应于接收到数据,目标缓存单元针对数据分配使用标识;
步骤S23:目标缓存单元为数据分配持久化内存的存储空间;
步骤S28:对数据进行数据处理,以使数据的结构适于存储到持久化内存;
步骤S24:根据目标缓存单元的状态,判断是否对数据进行缓存;
步骤S25:响应于确定对数据进行缓存,将数据存储到持久化内存;
步骤S27:响应于确定不对数据进行缓存,通过缓存服务接口返回缓存失败指示;
步骤S26:在执行完步骤S25后,更新数据对应的元数据;
步骤S29:响应于数据被存储到持久化内存并且数据对应的元数据被更新,通过缓存服务接口返回缓存成功指示;
步骤S30:将持久化内存中存储的数据存储到持久化层。
例如,在步骤S28中,对数据进行数据处理,以使数据的结构适于存储到持久化内存。由于持久化内存中的数据以分片数据(Data Block)的方式进行存储,因此需要对接收到的数据进行分片处理,以得到多个分片数据文件,从而便于存储到持久化内存中。
例如,在步骤S29中,当数据被存储到持久化内存并且数据对应的元数据被更新之后,通过缓存服务接口110返回缓存成功指示,由此完成此次缓存服务。
例如,在步骤S30中,当持久化内存中的数据占用的空间达到一定程度或满足其他预设条件,则将持久化内存中存储的数据存储到持久化层,也即,进行缓存数据的下刷。
例如,在步骤S27中,若确定不对数据进行缓存,则通过缓存服务接口110返回缓存失败指示。例如,可以基于该目标缓存单元的存储空间是否已满、该目标缓存单元的当前工作线程数量等因素来判断是否对数据进行缓存。
图7为本公开一些实施例提供的一种缓存单元的内部组织逻辑图。例如,在一些示例中,如图7所示,当服务对象调用缓存服务接口时,调用前台的逻辑具体如下。首先,服务对象调用缓存服务接口。然后,句柄管理模块获取使用标识,该使用标识为目标缓存单元内部的标识。根据调用参数,获取到空间管理信息。例如,调用参数可以包括数据的起始地址、数据的大小等信息。得到空间管理信息后,对数据进行处理,例如进行分片处理等操作。然后,判断是否将数据写入目标缓存单元。若确定将数据写入目标缓存单元,则将数据存储到目标缓存单元的持久化内存中。之后,更新元数据信息。然后,通过缓存服务接口将缓存成功指示返回给服务对象。例如,缓存服务接口还可以包括用于传输非数据命令的接口,从而利用该接口返回缓存成功指示。例如,还可以通过缓存服务接口将元数据信息返回给服务对象。
当服务对象调用缓存服务接口时,目标缓存单元的内部后台逻辑具体如下。该目标缓存单元初始化时启动后台线程,运行后台逻辑。后台逻辑需要实现如下功能:
(1)句柄管理模块能够获取到空间管理信息;
(2)定期将目标缓存单元的存储介质(例如持久化内存)中存储的数据下刷至持久化层。
例如,目标缓存单元的运维逻辑具体如下。目标缓存单元接收管理命令信息,管理命令信息可以全局控制目标缓存单元的所有流程。并且,提供数据缓存服务时,调用前台的逻辑和内部后台逻辑所产生的部分性能数据被存储,以供调试工具后续调试查询。例如,目标缓存单元还可以具有恢复、控制、策略、调度、线程等管理功能。
例如,针对目标缓存单元的数据面,目标缓存单元对外提供缓存服务接口,服务对象通过调用此接口使用目标缓存单元提供的数据缓存服务。针对目标缓存单元的管控面,目标缓存单元对外提供一个可执行程序,通过调用目标缓存单元提供的命令,可以配置和查询目标缓存单元的相关运行状态和设置。
例如,如图3所示,在步骤S10中,调用通用缓存单元对象,生成至少一个目标缓存单元。例如,在一些示例中,步骤S10可以包括:调用对应于通用缓存单元对象的动态库文件以运行,以得到对应于通用缓存单元对象的实例,从而生成至少一个目标缓存单元。也即是,可以通过对通用缓存单元对象进行实例化操作来生成目标缓存单元,目标缓存单元为通用缓存单元对象的实例。
例如,在一些示例中,生成目标缓存单元的操作可以进一步包括:基于针对至少一个服务对象的配置文件,调用对应于通用缓存单元对象的动态库文件,以得到对应于通用缓存单元对象的实例,从而生成至少一个目标缓存单元。例如,在调用动态库文件生成目标缓存单元时,可以采用配置文件并从配置文件获取实例化操作所需要的信息。例如,配置文件可以为提前编写并存储的文件,该文件中存储有对应于服务对象的信息。
图8为图3所示的数据加速方法中步骤S10的示例的流程示意图之一。例如,如图8所示,在一些示例中,当基于针对服务对象的配置文件来生成目标缓存单元时,步骤S10可以包括如下操作。
步骤S11:读取配置文件,得到持久化内存的分区空间;
步骤S12:基于配置文件获取针对至少一个服务对象的配置项;
步骤S13:生成目标元数据,并对持久化内存的分区空间进行空间划分;
步骤S14:动态库文件中的线程基于配置项运行并配置为可基于空间划分后的持久化内存进行数据读写操作,从而生成至少一个目标缓存单元。
例如,在步骤S11中,读取配置文件,得到持久化内存的分区空间。例如,持久化内存的分区空间被提前写入到配置文件中,从而读取配置文件可以获得分区空间。
例如,在步骤S12中,可以根据服务对象的名称或标识,从配置文件中获取针对服务对象的配置项。例如,可以根据服务对象的需求,提前生成对应的配置项并将配置项写入配置文件,从而读取配置文件可以获得对应于服务对象的配置项。例如,配置项可以包括一个或多个配置参数,该配置参数与服务对象以及服务对象所使用的缓存服务相关联。
例如,在步骤S13中,目标缓存单元生成内部的目标元数据,并对持久化内存的分区空间进行空间划分(例如分片),得到空间管理信息。
例如,在步骤S14中,动态库文件中的线程基于配置项运行,也即,目标缓存单元的内部机制启动,例如线程池执行线程运行及线程调度等,由此,目标缓存单元可以进行数据读写操作,并基于空间划分后的持久化内存存储或读取数据。
图9为图3所示的数据加速方法中步骤S10的示例的流程示意图之二。例如,如图9所示,在一些示例中,当基于针对服务对象的配置文件来生成目标缓存单元时,除了包括步骤S11-S14,步骤S10还可以进一步包括步骤S15。关于步骤S11-S14的详细说明可参考上文内容,此处不再赘述。
步骤S15:对持久化内存进行区域划分以得到分区空间,将持久化内存的分区空间以及针对至少一个服务对象的配置项写入配置文件,并且存储配置文件。
例如,在步骤S15中,可以首先确认持久化内存是否存在,在确认持久化内存存在的情形下,根据需要为哪些服务对象提供数据缓存服务进行区域划分,从而得到分区空间。例如,在一些示例中,假设有4个服务对象需要使用数据缓存服务,则将持久化内存划分为4个分区,分区大小基于预估缓存容量计算得到。划分得到分区空间后,将分区空间写入到配置文件中。根据需要提供数据缓存服务的服务对象,生成对应的配置项,并且将配置项也写入配置文件中。例如,将配置文件存储在预设存储位置。当调用对应于通用缓存单元对象的动态库文件以进行实例化时,可以从预设存储位置读取配置文件,并且根据从配置文件获取的信息进行实例化,从而得到目标缓存单元。例如,配置文件可以采用任意的文件格式,这可以根据实际需求而定,只需与解析配置文件所采用的方式相匹配即可,本公开的实施例对此不作限制。
在本公开的实施例中,通过将通用缓存单元对象抽象成动态库供调用以实现缓存单元,由此可以将缓存单元封装为相对独立于数据处理层的系统模块,由此使得数据链路上的任何数据处理层可以按照约定的方式使用该缓存单元。因此,可以实现对缓存单元的灵活配置,解决了传统缓存设计中缓存单元与系统紧耦合等问题。利用该数据加速方法提供数据缓存服务,具有很强的灵活性和便捷性,能够提升系统整体性能,加速存储系统的传输速度。而且,针对不同的服务对象,只需基于通用缓存单元对象进行不同的实例化即可,操作简单,无需重复代码开发,提高了缓存设计的效率。
在一些实施例中,当缓存单元使用持久化内存(PMem)作为存储介质时,由于PMem介质具有较高的性能,在数据链路上层使用不会成为性能瓶颈,从而能够较大幅度提升系统整体性能。数据被直接写入PMem介质中,不存在系统异常后数据由内存拷入的过程,因此不会增加系统额外动作或负担。并且,由于PMem介质是非易失性的,在分布式系统中,针对单节点缓存单元的数据是完整的,因此无需将数据拷贝到其他节点便可确保数据安全性和完整性。
本公开至少一个实施例还提供一种用于数据链的缓存单元。该缓存单元通过调用通用缓存单元对象(例如动态库)实现,可以在存储系统的数据链中进行灵活配置,不需要直接嵌入到实现存储系统的数据处理层的结构与编码之中,由此解决了传统缓存设计中缓存单元与系统紧耦合等问题,具有灵活性和便捷性,能够提升系统整体性能。
图10为本公开一些实施例提供的一种缓存单元的示意框图。如图10所示,该缓存单元10用于数据链,配置为通过缓存单元10的缓存服务接口110为数据链中的服务对象20提供数据缓存服务。该缓存单元10通过调用通用缓存单元对象(动态库)实现,然后被加载到存储系统中。该缓存单元10所提供的数据缓存功能被抽象成服务,缓存单元10被封装为一个相对独立的系统模块。在存储系统的数据链路中,任意一个模块都可以按照预设协议使用该缓存单元10。例如,在一些示例中,该缓存单元10也可以单独组成一个子系统,从而对整个存储系统提供数据缓存服务。
例如,缓存单元10包括缓存处理模块100。缓存处理模块100为缓存单元10的核心逻辑结构,数据链路在使用数据缓存服务时只需要加载此部分即可。缓存处理模块100包括缓存服务接口110和核心处理模块120。缓存服务接口110配置为传输需要缓存的数据以及与该数据对应的元数据。核心处理模块120配置为进行句柄管理和空间管理,并且进行线程规划。
例如,缓存单元10至少部分使用持久化内存(PMem)作为存储介质以存储数据。也即是,缓存单元10所使用的存储介质可以仅为PMem,也可以既使用PMem又使用其他存储介质,本公开的实施例对此不作限制。PMem介质具有较高的性能,在数据链路上层使用不会成为性能瓶颈,从而能够较大幅度提升系统整体性能。在使用缓存单元10时,利用缓存单元10提供缓存服务接口110将数据直接写入到PMem介质中,不存在系统异常后数据由内存拷入的过程,因此不会增加系统额外动作或负担。由于PMem介质是非易失性的,在分布式系统中,针对单节点缓存单元的数据是完整的,因此无需将数据拷贝到其他节点便可确保数据安全性和完整性。
例如,该缓存单元10可以为图4所示的缓存单元10,相关说明可参考前述内容,此处不再赘述。
例如,在一些示例中,参考图4,缓存服务接口110包括第一接口111和第二接口112。第一接口111配置为传输数据,也即是,第一接口111为数据面接口。第二接口112配置为传输与该数据对应的元数据,也即是,第二接口112为元数据面接口。
核心处理模块120包括句柄管理模块121、空间管理模块122和线程池管理模块123。句柄管理模块121配置为提供使用标识以向数据发放缓存权限,空间管理模块122配置为向数据分配持久化内存的存储空间,线程池管理模块123配置为根据缓存任务进行线程规划和线程处理。
例如,缓存处理模块100还可以进一步包括调度器130、核心控制模块140、硬件管理模块150和调试工具模块160。该缓存单元10还可以包括管理工具模块200。
调度器130配置为进行任务规划和调度,并且提供工作时钟。调度器130包括定时器131、第一任务模块132、第二任务模块133和轮询模块134。定时器131配置为提供工作时钟。第一任务模块132配置为对第一类型任务进行管理,第一类型任务包括写数据和/或读数据。第二任务模块133配置为对第二类型任务进行管理,第二类型任务包括访问内存、查询状态和更改配置至少之一。例如,在一些示例中,第一任务模块132可以为慢任务管理模块,第二任务模块133可以为快任务管理模块。轮询模块134配置为向缓存单元10的资源提供轮询服务。
管理工具模块200包括第一解析器210、第一通信模块220和命令接口230。管理工具模块200配置为通过命令接口230接收命令并解析该命令,并且将解析得到的信息传输给核心控制模块140。第一解析器210配置为通过命令接口230接收命令并解析该命令。例如,接收的命令可以为针对配置、运行信息、运行状态等的查询命令或更改命令。第一通信模块220配置为将第一解析器210解析得到的信息传输给核心控制模块140并接收返回消息。
核心控制模块140配置为接收管理工具模块200传输的信息并对该信息进行解析,以及进行命令管理。核心控制模块140包括第二通信模块141、第二解析器142和命令管理模块143。第二通信模块142配置为接收管理工具模块200传输的信息。例如,第二通信模块142可以监听管理工具模块200发送的消息,返回执行结果。第二解析器141配置为对第二通信模块142接收到的信息进行解析。例如,第二解析器141可以将接收到的信息转换成内部命令,并且将结果封装成消息。命令管理模块143配置为进行命令管理,例如调度执行具体命令。核心控制模块140主要用于与管理工具模块200对接。
硬件管理模块150配置为对缓存单元10进行硬件管理。调试工具模块160配置为提供调试服务。
例如,在缓存单元10中,上述各个模块可以为硬件、软件、固件以及它们的任意可行的组合。例如,上述各个模块可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个模块的具体实现形式,本公开的实施例对此不作限制。
需要说明的是,本公开的实施例中,缓存单元10可以用于实施前述的数据加速方法,关于缓存单元10的具体功能和技术效果可以参考上文中关于数据加速方法的说明,此处不再赘述。图10和图4所示的缓存单元10的组件和结构只是示例性的,而非限制性的,根据需要,该缓存单元10还可以包括其他组件和结构。并且,缓存单元10也可以仅包含图4中示出的部分模块,而无需包含图4中示出的全部模块。
图11为本公开一些实施例提供的一种缓存单元的设置示意图。如图11所示,当存储系统运行时,通过调用通用缓存单元对象以实例化,使得缓存单元10可以灵活设置在数据链路的任意数据处理层中。例如,在一些示例中,缓存单元10可以分别设置在存储服务器的网络层、文件系统、抽象层和持久化层。缓存单元10不仅可以设置在数据链路后端,还可以设置在数据链路前端,从而加速数据处理。通过灵活设置缓存单元10,可以满足存储服务器各个数据处理层的缓存需求。例如,在一些示例中,缓存单元10还可以在与存储服务器通信连接的客户端中实现,从而进一步减轻或避免应用的时延。例如,图11中示出的缓存1、缓存2、缓存3、缓存4、缓存5均为缓存单元10,其为针对不同数据处理层的不同实例,从而为对应的数据处理层提供数据缓存服务。例如,各个数据处理层通过调用对应的缓存单元10的缓存服务接口110来使用数据缓存服务。
需要说明的是,图11中示出的设置方式仅为示意性的,而非限制性的,缓存单元10可以设置在任意一个或多个数据处理层,这可以根据实际需求而定,本公开的实施例对此不作限制。
本公开至少一个实施例还提供一种电子设备,该电子设备包括本公开任一实施例提供的缓存单元。该电子设备通过通用缓存单元对象实现缓存单元,可以在存储系统的数据链中灵活配置缓存单元,解决了传统缓存设计中缓存单元与系统紧耦合等问题,具有灵活性和便捷性,能够提升系统整体性能。
图12为本公开一些实施例提供的一种电子设备的示意框图。如图12所示,该电子设备30包括缓存单元31。例如,缓存单元31可以为图10或图4所示的缓存单元10。缓存单元31通过调用通用缓存单元对象实现,由此可以灵活配置在电子设备30中任意的数据处理层。缓存单元31可以实现本公开实施例提供的数据加速方法。例如,该电子设备30可以为存储系统、存储服务器、客户端等任意适用的设备,只要该设备需要使用数据缓存服务即可,本公开的实施例对此不作限制。关于电子设备30的详细说明和技术效果,可以参考上文中关于缓存单元10和数据加速方法的说明,此处不再赘述。
本公开至少一个实施例还提供一种电子设备,该电子设备包括处理器和存储器,一个或多个计算机程序模块被存储在该存储器中并被配置为由该处理器执行,一个或多个计算机程序模块包括用于实现本公开任一实施例提供的数据加速方法的指令。该电子设备中的缓存单元通过调用通用缓存单元对象(例如动态库)实现,可以在存储系统的数据链中进行灵活配置,解决了传统缓存设计中缓存单元与系统紧耦合等问题,具有灵活性和便捷性,能够提升系统整体性能。
图13为本公开一些实施例提供的另一种电子设备的示意框图。如图13所示,该电子设备40包括处理器41和存储器42。存储器42用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器41用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器41运行时可以执行上文所述的数据加速方法中的一个或多个步骤。存储器42和处理器41可以通过总线系统和/或其它形式的连接机构(未示出)互连。例如,根据本公开实施例的数据加速方法通过运行于该电子设备40的操作系统中的应用程序实现。
例如,处理器41可以是中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(FPGA)等;例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器41可以为通用处理器或专用处理器,可以控制电子设备40中的其它组件以执行期望的功能。
例如,存储器42可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器41可以运行一个或多个计算机程序模块,以实现电子设备40的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本公开的实施例中,电子设备40的具体功能和技术效果可以参考上文中关于数据加速方法的描述,此处不再赘述。
本公开至少一个实施例还提供一种存储介质,用于存储非暂时性计算机可读指令,当该非暂时性计算机可读指令由计算机执行时可以实现本公开任一实施例提供的数据加速方法。利用该存储介质,可以通过调用通用缓存单元对象(例如动态库)实现缓存单元,可以在存储系统的数据链中进行灵活配置,解决了传统缓存设计中缓存单元与系统紧耦合等问题,具有灵活性和便捷性,能够提升系统整体性能。
图14为本公开一些实施例提供的一种存储介质的示意图。如图14所示,存储介质50用于存储非暂时性计算机可读指令51。例如,当非暂时性计算机可读指令51由计算机执行时可以执行根据上文所述的数据加速方法中的一个或多个步骤。
例如,该存储介质50可以应用于上述电子设备中。例如,存储介质50可以为图13所示的电子设备40中的存储器42。例如,关于存储介质50的相关说明可以参考图13所示的电子设备40中的存储器42的相应描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (26)
1.一种用于数据链的数据加速方法,包括:
调用通用缓存单元对象,生成至少一个目标缓存单元;
调用所述至少一个目标缓存单元的缓存服务接口,使所述至少一个目标缓存单元分别对应地为所述数据链中的至少一个服务对象提供数据缓存服务。
2.根据权利要求1所述的数据加速方法,其中,所述至少一个目标缓存单元中的每个目标缓存单元至少部分使用持久化内存作为存储介质。
3.根据权利要求2所述的数据加速方法,其中,调用所述至少一个目标缓存单元的缓存服务接口,使所述至少一个目标缓存单元分别对应地为所述数据链中的至少一个服务对象提供数据缓存服务,包括:
针对所述至少一个目标缓存单元中的每个目标缓存单元,调用所述目标缓存单元的缓存服务接口,并利用所述缓存服务接口向所述目标缓存单元传输需要缓存的数据;
响应于接收到所述数据,所述目标缓存单元针对所述数据分配使用标识;
所述目标缓存单元为所述数据分配所述持久化内存的存储空间;
根据所述目标缓存单元的状态,判断是否对所述数据进行缓存;
响应于确定对所述数据进行缓存,将所述数据存储到所述持久化内存;
更新所述数据对应的元数据。
4.根据权利要求3所述的数据加速方法,其中,调用所述至少一个目标缓存单元的缓存服务接口,使所述至少一个目标缓存单元分别对应地为所述数据链中的至少一个服务对象提供数据缓存服务,还包括:
响应于确定不对所述数据进行缓存,通过所述缓存服务接口返回缓存失败指示。
5.根据权利要求3所述的数据加速方法,其中,调用所述至少一个目标缓存单元的缓存服务接口,使所述至少一个目标缓存单元分别对应地为所述数据链中的至少一个服务对象提供数据缓存服务,还包括:
对所述数据进行数据处理,以使所述数据的结构适于存储到所述持久化内存。
6.根据权利要求3所述的数据加速方法,其中,调用所述至少一个目标缓存单元的缓存服务接口,使所述至少一个目标缓存单元分别对应地为所述数据链中的至少一个服务对象提供数据缓存服务,还包括:
响应于所述数据被存储到所述持久化内存并且所述数据对应的元数据被更新,通过所述缓存服务接口返回缓存成功指示。
7.根据权利要求3所述的数据加速方法,其中,调用所述至少一个目标缓存单元的缓存服务接口,使所述至少一个目标缓存单元分别对应地为所述数据链中的至少一个服务对象提供数据缓存服务,还包括:
将所述持久化内存中存储的数据存储到持久化层。
8.根据权利要求1-7任一所述的数据加速方法,其中,所述至少一个服务对象分别为网络附属存储系统的至少一个数据处理层,所述数据链为所述网络附属存储系统中的数据链。
9.根据权利要求2-7任一所述的数据加速方法,其中,调用所述通用缓存单元对象,生成所述至少一个目标缓存单元,包括:
调用对应于所述通用缓存单元对象的动态库文件,以得到对应于所述通用缓存单元对象的实例,从而生成所述至少一个目标缓存单元。
10.根据权利要求9所述的数据加速方法,其中,调用对应于所述通用缓存单元对象的动态库文件,以得到对应于所述通用缓存单元对象的实例,从而生成所述至少一个目标缓存单元,包括:
基于针对所述至少一个服务对象的配置文件,调用对应于所述通用缓存单元对象的动态库文件,以得到对应于所述通用缓存单元对象的实例,从而生成所述至少一个目标缓存单元。
11.根据权利要求10所述的数据加速方法,其中,基于针对所述至少一个服务对象的配置文件,调用对应于所述通用缓存单元对象的动态库文件,以得到对应于所述通用缓存单元对象的实例,从而生成所述至少一个目标缓存单元,包括:
读取所述配置文件,得到所述持久化内存的分区空间;
基于所述配置文件获取针对所述至少一个服务对象的配置项;
生成目标元数据,并对所述持久化内存的分区空间进行空间划分;
所述动态库文件中的线程基于所述配置项运行并配置为可基于空间划分后的所述持久化内存进行数据读写操作,从而生成所述至少一个目标缓存单元。
12.根据权利要求11所述的数据加速方法,还包括:
对所述持久化内存进行区域划分以得到所述分区空间,将所述持久化内存的所述分区空间以及针对所述至少一个服务对象的配置项写入所述配置文件,并且存储所述配置文件。
13.一种用于数据链的缓存单元,配置为通过所述缓存单元的缓存服务接口为所述数据链中的服务对象提供数据缓存服务;
其中,所述缓存单元包括缓存处理模块,所述缓存处理模块包括所述缓存服务接口和核心处理模块;
所述缓存服务接口配置为传输需要缓存的数据以及与所述数据对应的元数据;
所述核心处理模块配置为进行句柄管理和空间管理,并且进行线程规划。
14.根据权利要求13所述的缓存单元,其中,所述缓存单元至少部分使用持久化内存作为存储介质以存储所述数据。
15.根据权利要求13或14所述的缓存单元,其中,所述缓存服务接口包括第一接口和第二接口,
所述第一接口配置为传输所述数据,所述第二接口配置为传输与所述数据对应的元数据。
16.根据权利要求14所述的缓存单元,其中,所述核心处理模块包括句柄管理模块和空间管理模块,
所述句柄管理模块配置为提供使用标识以向所述数据发放缓存权限,
所述空间管理模块配置为向所述数据分配所述持久化内存的存储空间。
17.根据权利要求16所述的缓存单元,其中,所述核心处理模块还包括线程池管理模块,
所述线程池管理模块配置为根据缓存任务进行线程规划和线程处理。
18.根据权利要求13所述的缓存单元,其中,所述缓存处理模块还包括调度器,
所述调度器配置为进行任务规划和调度,并且提供工作时钟。
19.根据权利要求18所述的缓存单元,其中,所述调度器包括定时器、第一任务模块、第二任务模块和轮询模块,
所述定时器配置为提供所述工作时钟,
所述第一任务模块配置为对第一类型任务进行管理,所述第一类型任务包括写数据和/或读数据,
所述第二任务模块配置为对第二类型任务进行管理,所述第二类型任务包括访问内存、查询状态和更改配置至少之一,
所述轮询模块配置为向所述缓存单元的资源提供轮询服务。
20.根据权利要求13所述的缓存单元,还包括管理工具模块,
其中,所述管理工具模块包括命令接口,所述缓存处理模块还包括核心控制模块,
所述管理工具模块配置为通过所述命令接口接收命令并解析所述命令,并且将解析得到的信息传输给所述核心控制模块,
所述核心控制模块配置为接收所述管理工具模块传输的信息并对所述信息进行解析,以及进行命令管理。
21.根据权利要求20所述的缓存单元,其中,所述管理工具模块还包括第一解析器和第一通信模块,
所述第一解析器配置为通过所述命令接口接收所述命令并解析所述命令,
所述第一通信模块配置为将所述第一解析器解析得到的信息传输给所述核心控制模块。
22.根据权利要求20所述的缓存单元,其中,所述核心控制模块包括第二解析器、第二通信模块和命令管理模块,
所述第二通信模块配置为接收所述管理工具模块传输的信息,
所述第二解析器配置为对所述第二通信模块接收到的所述信息进行解析,
所述命令管理模块配置为进行命令管理。
23.根据权利要求13所述的缓存单元,其中,所述缓存处理模块还包括硬件管理模块和调试工具模块,
所述硬件管理模块配置为对所述缓存单元进行硬件管理,
所述调试工具模块配置为提供调试服务。
24.一种电子设备,包括如权利要求13-23任一所述的缓存单元。
25.一种电子设备,包括:
处理器;
存储器,包括一个或多个计算机程序模块;
其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于实现权利要求1-12任一所述的数据加速方法的指令。
26.一种存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时可以实现权利要求1-12任一所述的数据加速方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110338561.2A CN112948336B (zh) | 2021-03-30 | 2021-03-30 | 数据加速方法及缓存单元、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110338561.2A CN112948336B (zh) | 2021-03-30 | 2021-03-30 | 数据加速方法及缓存单元、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112948336A true CN112948336A (zh) | 2021-06-11 |
CN112948336B CN112948336B (zh) | 2023-01-03 |
Family
ID=76227401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110338561.2A Active CN112948336B (zh) | 2021-03-30 | 2021-03-30 | 数据加速方法及缓存单元、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948336B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113904969A (zh) * | 2021-09-28 | 2022-01-07 | 青岛海尔科技有限公司 | 物联设备的性能检测方法 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452447A (en) * | 1992-12-21 | 1995-09-19 | Sun Microsystems, Inc. | Method and apparatus for a caching file server |
CN1497448A (zh) * | 2002-09-30 | 2004-05-19 | �Ҵ���˾ | 在操作系统内核环境中高速缓存应用数据的系统和方法 |
CN102938731A (zh) * | 2012-11-22 | 2013-02-20 | 北京锐易特软件技术有限公司 | 一种基于代理缓存适配模型的交换集成装置及方法 |
CN103023879A (zh) * | 2012-11-26 | 2013-04-03 | 国电南瑞科技股份有限公司 | 一种基于高速缓存的数据中心间广域数据同步方法 |
CN103793876A (zh) * | 2012-10-26 | 2014-05-14 | 辉达公司 | 分布式拼接式进行高速缓存 |
CN104657143A (zh) * | 2015-02-12 | 2015-05-27 | 中復保有限公司 | 高性能数据缓存方法 |
CN105049530A (zh) * | 2015-08-24 | 2015-11-11 | 用友网络科技股份有限公司 | 多种分布式缓存系统的自适配装置和方法 |
CN105701219A (zh) * | 2016-01-14 | 2016-06-22 | 北京邮电大学 | 一种分布式缓存的实现方法 |
CN105897859A (zh) * | 2016-03-25 | 2016-08-24 | 天津书生云科技有限公司 | 一种存储系统 |
CN106095698A (zh) * | 2016-06-03 | 2016-11-09 | 合网络技术(北京)有限公司 | 面向对象的缓存写入、读取方法及装置 |
CN107562367A (zh) * | 2016-07-01 | 2018-01-09 | 阿里巴巴集团控股有限公司 | 基于软件化存储系统读写数据的方法以及装置 |
CN107977165A (zh) * | 2017-11-22 | 2018-05-01 | 用友金融信息技术股份有限公司 | 数据缓存优化方法、装置和计算机设备 |
CN109240613A (zh) * | 2018-08-29 | 2019-01-18 | 平安科技(深圳)有限公司 | 数据缓存方法、装置、计算机设备及存储介质 |
CN111723113A (zh) * | 2020-06-19 | 2020-09-29 | 深圳前海微众银行股份有限公司 | 业务数据的分布式缓存方法、装置、终端设备及存储介质 |
CN111737168A (zh) * | 2020-06-24 | 2020-10-02 | 华中科技大学 | 一种缓存系统、缓存处理方法、装置、设备及介质 |
CN112000287A (zh) * | 2020-08-14 | 2020-11-27 | 北京浪潮数据技术有限公司 | 一种io请求处理装置、方法、设备及可读存储介质 |
-
2021
- 2021-03-30 CN CN202110338561.2A patent/CN112948336B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452447A (en) * | 1992-12-21 | 1995-09-19 | Sun Microsystems, Inc. | Method and apparatus for a caching file server |
CN1497448A (zh) * | 2002-09-30 | 2004-05-19 | �Ҵ���˾ | 在操作系统内核环境中高速缓存应用数据的系统和方法 |
CN103793876A (zh) * | 2012-10-26 | 2014-05-14 | 辉达公司 | 分布式拼接式进行高速缓存 |
CN102938731A (zh) * | 2012-11-22 | 2013-02-20 | 北京锐易特软件技术有限公司 | 一种基于代理缓存适配模型的交换集成装置及方法 |
CN103023879A (zh) * | 2012-11-26 | 2013-04-03 | 国电南瑞科技股份有限公司 | 一种基于高速缓存的数据中心间广域数据同步方法 |
CN104657143A (zh) * | 2015-02-12 | 2015-05-27 | 中復保有限公司 | 高性能数据缓存方法 |
CN105049530A (zh) * | 2015-08-24 | 2015-11-11 | 用友网络科技股份有限公司 | 多种分布式缓存系统的自适配装置和方法 |
CN105701219A (zh) * | 2016-01-14 | 2016-06-22 | 北京邮电大学 | 一种分布式缓存的实现方法 |
CN105897859A (zh) * | 2016-03-25 | 2016-08-24 | 天津书生云科技有限公司 | 一种存储系统 |
CN106095698A (zh) * | 2016-06-03 | 2016-11-09 | 合网络技术(北京)有限公司 | 面向对象的缓存写入、读取方法及装置 |
CN107562367A (zh) * | 2016-07-01 | 2018-01-09 | 阿里巴巴集团控股有限公司 | 基于软件化存储系统读写数据的方法以及装置 |
CN107977165A (zh) * | 2017-11-22 | 2018-05-01 | 用友金融信息技术股份有限公司 | 数据缓存优化方法、装置和计算机设备 |
CN109240613A (zh) * | 2018-08-29 | 2019-01-18 | 平安科技(深圳)有限公司 | 数据缓存方法、装置、计算机设备及存储介质 |
CN111723113A (zh) * | 2020-06-19 | 2020-09-29 | 深圳前海微众银行股份有限公司 | 业务数据的分布式缓存方法、装置、终端设备及存储介质 |
CN111737168A (zh) * | 2020-06-24 | 2020-10-02 | 华中科技大学 | 一种缓存系统、缓存处理方法、装置、设备及介质 |
CN112000287A (zh) * | 2020-08-14 | 2020-11-27 | 北京浪潮数据技术有限公司 | 一种io请求处理装置、方法、设备及可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113904969A (zh) * | 2021-09-28 | 2022-01-07 | 青岛海尔科技有限公司 | 物联设备的性能检测方法 |
CN113904969B (zh) * | 2021-09-28 | 2023-09-15 | 青岛海尔科技有限公司 | 物联设备的性能检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112948336B (zh) | 2023-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111008155B (zh) | 管理计算机设备的存储器的方法、计算机设备、介质 | |
US10552936B2 (en) | Solid state storage local image processing system and method | |
JP7539202B2 (ja) | コンピューティング環境におけるアクセラレータとストレージとの間のダイレクト・データ・アクセス | |
CN113918101B (zh) | 一种写数据高速缓存的方法、系统、设备和存储介质 | |
CN106557427B (zh) | 共享内存数据库的内存管理方法及装置 | |
US20080301691A1 (en) | Method for improving run-time execution of an application on a platform based on application metadata | |
CN110457261B (zh) | 数据访问方法、装置及服务器 | |
CN102667714B (zh) | 支持访问由操作系统环境外的资源提供的功能的方法和系统 | |
US10158710B2 (en) | Efficient replication of changes to a byte-addressable persistent memory over a network | |
JP2009512948A (ja) | ストレージサーバにおけるスループットを増加させる方法および装置 | |
CA3129982A1 (en) | Method and system for accessing distributed block storage system in kernel mode | |
CN116414735A (zh) | 数据存储方法、系统、存储访问配置方法及相关设备 | |
CN113438184A (zh) | 网卡的队列管理方法、装置及电子设备 | |
US20060277221A1 (en) | Transactional file system with client partitioning | |
CN112948336B (zh) | 数据加速方法及缓存单元、电子设备及存储介质 | |
US10545909B2 (en) | Computing system management using shared memory | |
CN118312102A (zh) | Io请求处理方法、装置、存储设备及存储介质 | |
CN114510321A (zh) | 资源调度方法、相关装置和介质 | |
CN117608856A (zh) | NVMe加速卡内存扩展方法、系统、终端及存储介质 | |
US20050091266A1 (en) | Data file system, data access server and data access program storage medium | |
CN114327769B (zh) | 一种操作系统事件记录方法、装置及计算机系统 | |
CN108334453B (zh) | 一种文件调试方法、装置、终端设备及存储介质 | |
US20220318042A1 (en) | Distributed memory block device storage | |
US20190171584A1 (en) | Access control device, access control method, and recording medium containing access control program | |
CN113867947A (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 |