掌桥专利:专业的专利平台
掌桥专利
首页

基于多层缓存的数据处理方法及装置、电子设备

文献发布时间:2023-06-19 16:06:26



技术领域

本发明涉及数据处理技术领域,具体而言,涉及一种基于多层缓存的数据处理方法及装置、电子设备。

背景技术

相关技术中,快照已经成为存储或应用软灾备方案中不可或缺的常见解决方案,更是其他系统复制、备份的基础,已成为存储的一个标配特性。快照实现原理常见的有COW(Copy On Write)和ROW(Redirect On Write)两种,其中,ROW的实现方式是通过快照的Rename,每次生成快照时通过创建新的元数据并建立新的映射关系来实现。在本地cache中比较容易实现,所有对象(object)的元数据信息记录在缓存中,通常缓存和数据盘在同一个节点中(即集中式的缓存,缓存和数据盘冗余度相同,相互绑定)。当快照Rename时,更新高速介质中object元数据信息时,生成的快照需要指向源数据对象,将进行一系列的数据更新,因为只有单层结构,主PG只有一个,通过强一致性保障,其他副本只要写入缓存层即可返回成功。

相对于集中缓存,分布式多层缓存近些年来发展迅速,完全打破了cache高速介质和数据低速盘必须绑定的限制,提供更稳定的缓存性能,缓存可以分布在独立的若干台服务器上,也可以和数据层共用服务器,并且它们可以使用不同的冗余策略,例如缓存服务器是3副本,数据服务器是2副本或者其他,通过分层缓存能够更好满足分布式存储中大集群大数据中心的需求。

但是,相关技术中的分布式分层缓存架构存在如下多个问题:

1.快照rename时,需要同时向多层(cache层,data层)发送rename命令,要保证这个rename在缓存层和数据层的事务性是一个非常复杂的过程,而且当前数据层一般是由低速磁盘构成的,rename也会慢很多,这样会导致rename整体的延迟非常高;

2.删除流程,与rename类似,性能和事务性要求都非常难达到要求。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种基于多层缓存的数据处理方法及装置、电子设备,以至少解决相关技术中采用分层缓存架构进行数据缓存时,事务性处理方式复杂的技术问题。

根据本发明实施例的一个方面,提供了一种基于多层缓存的数据处理方法,应用于放置组PG,所述放置组分别对接有缓存层与数据层,包括:接收客户端发送的数据写入请求,其中,所述数据写入请求中至少携带有:待写入的目标数据;响应所述数据写入请求,生成与所述目标数据对应的缓存对象以及与所述缓存对象对应的数据对象和唯一标识码,其中,所述缓存对象与所述数据对象分别对应有对象元数据;将所述缓存对象迁入所述缓存层中,并建立所述缓存对象的对象元数据与所述唯一标识码的第一映射关系;将所述数据对象存储至数据层中,并建立所述数据对象的对象元数据与所述唯一标识码的第二映射关系。

可选地,在建立所述缓存对象的对象元数据与所述唯一标识码的第一映射关系之后,还包括:在所述缓存层中的对象元数据出现更新的情况下,调整所述缓存层中的对象元数据与所述唯一标识码之间的第一映射关系。

可选地,在建立所述数据对象与所述唯一标识码的第二映射关系之后,还包括:在所述缓存层触发预设下刷策略的情况下,将所述缓存对象从所述缓存层下刷到数据层的数据对象;删除所述缓存层中的所述缓存对象,并保留所述缓存对象的对象元数据;将所述缓存层中所述缓存对象的对象元数据通过所述唯一标识码指向所述数据层中的所述数据对象。

可选地,在将所述缓存层中所述缓存对象的对象元数据通过所述唯一标识码指向所述数据层中的所述数据对象之后,还包括:在确定所述缓存层中的缓存空间符合空间空闲要求的情况下,将已删除的所述缓存对象释放为读缓存;在确定缓存空间不满足空间空闲要求的情况下,将所述缓存对象所对应的缓存空间释放。

可选地,在将所述缓存对象所对应的缓存空间释放之后,还包括:在接收到数据读取请求的情况下,通过所述缓存对象的对象元数据查找所述数据对象的对象元数据;基于查找到的所述数据对象的对象元数据,查询所述数据对象;将所述数据对象缓存至所述缓存层中。

可选地,在生成与所述目标数据对应的缓存对象以及与所述缓存对象对应的数据对象和唯一标识码之后,还包括:将所述缓存对象分别存储至所述缓存层和所述数据层;在接收到对象删除指令的情况下,删除所述缓存层的所述缓存对象,并更新所述缓存对象的对象元数据;接收所述缓存层的后台线程发起的回收下刷指令;响应回收下刷指令,向所述数据层发送对象删除指令,以删除所述数据层中的缓存对象,更新所述数据层中的缓存对象的对象元数据;释放所述缓存层的缓存对象的缓存空间与所述数据层中的所述缓存对象的缓存空间。

可选地,响应所述数据写入请求,生成与所述目标数据对应的缓存对象以及与所述缓存对象对应的数据对象和唯一标识码的步骤,包括:响应所述数据写入请求,创建与所述目标数据对应的缓存对象;采用标识分配器,为所述缓存对象分配所述唯一标识码。

根据本发明实施例的另一方面,还提供了一种基于多层缓存的数据处理装置,应用于放置组PG,所述放置组分别对接有缓存层与数据层,包括:接收单元,用于接收客户端发送的数据写入请求,其中,所述数据写入请求中至少携带有:待写入的目标数据;响应单元,用于响应所述数据写入请求,生成与所述目标数据对应的缓存对象以及与所述缓存对象对应的数据对象和唯一标识码,其中,所述缓存对象与所述数据对象分别对应有对象元数据;第一建立单元,用于将所述缓存对象迁入所述缓存层中,并建立所述缓存对象的对象元数据与所述唯一标识码的第一映射关系;第二建立单元,用于将所述数据对象存储至数据层中,并建立所述数据对象的对象元数据与所述唯一标识码的第二映射关系。

可选地,基于多层缓存的数据处理装置还包括:第一调整单元,用于在建立所述缓存对象的对象元数据与所述唯一标识码的第一映射关系之后,在所述缓存层中的对象元数据出现更新的情况下,调整所述缓存层中的对象元数据与所述唯一标识码之间的第一映射关系。

可选地,基于多层缓存的数据处理装置还包括:下刷单元,用于在建立所述数据对象与所述唯一标识码的第二映射关系之后,在所述缓存层触发预设下刷策略的情况下,将所述缓存对象从所述缓存层下刷到数据层的数据对象;第一删除单元,用于删除所述缓存层中的所述缓存对象,并保留所述缓存对象的对象元数据;指向单元,用于将所述缓存层中所述缓存对象的对象元数据通过所述唯一标识码指向所述数据层中的所述数据对象。

可选地,基于多层缓存的数据处理装置还包括:第一释放单元,用于在将所述缓存层中所述缓存对象的对象元数据通过所述唯一标识码指向所述数据层中的所述数据对象之后,在确定所述缓存层中的缓存空间符合空间空闲要求的情况下,将已删除的所述缓存对象释放为读缓存;第二释放单元,用于在确定缓存空间不满足空间空闲要求的情况下,将所述缓存对象所对应的缓存空间释放。

可选地,基于多层缓存的数据处理装置还包括:第一查找单元,用于在将所述缓存对象所对应的缓存空间释放之后,在接收到数据读取请求的情况下,通过所述缓存对象的对象元数据查找所述数据对象的对象元数据;第二查找单元,用于基于查找到的所述数据对象的对象元数据,查询所述数据对象;缓存单元,用于将所述数据对象缓存至所述缓存层中。

可选地,基于多层缓存的数据处理装置还包括:第一存储单元,用于在生成与所述目标数据对应的缓存对象以及与所述缓存对象对应的数据对象和唯一标识码之后,将所述缓存对象分别存储至所述缓存层和所述数据层;第二删除单元,用于在接收到对象删除指令的情况下,删除所述缓存层的所述缓存对象,并更新所述缓存对象的对象元数据;第一接收模块,用于接收所述缓存层的后台线程发起的回收下刷指令;第一响应模块,用于响应回收下刷指令,向所述数据层发送对象删除指令,以删除所述数据层中的缓存对象,更新所述数据层中的缓存对象的对象元数据;第一释放模块,用于释放所述缓存层的缓存对象的缓存空间与所述数据层中的所述缓存对象的缓存空间。

可选地,所述响应单元包括:第二响应模块,用于响应所述数据写入请求,创建与所述目标数据对应的缓存对象;分配模块,用于采用标识分配器,为所述缓存对象分配所述唯一标识码。

根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的基于多层缓存的数据处理方法。

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项所述的基于多层缓存的数据处理方法。

本申请中,在接收客户端发送的数据写入请求后,响应数据写入请求,生成与目标数据对应的缓存对象以及与缓存对象对应的数据对象和唯一标识码,其中,缓存对象与数据对象分别对应有对象元数据,将缓存对象迁入缓存层中,并建立缓存对象的对象元数据与唯一标识码的第一映射关系,并将数据对象存储至数据层中,并建立数据对象的对象元数据与唯一标识码的第二映射关系。在该实施例中,采用唯一标识码来关联数据层和缓存层的中的对象映射关系,降低事务性处理方式的复杂性,且保证缓存对象和数据对象的对应关系,能够提高数据查询效率和缓存效率,从而解决相关技术中采用分层缓存架构进行数据缓存时,事务性处理方式复杂的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的基于多层缓存的数据处理方法的流程图;

图2是根据本发明实施例的一种可选的分层缓存的对象映射关系图;

图3是根据本发明实施例的一种可选的分层缓存的进行数据下刷的示意图;

图4是根据本发明实施例的一种可选的基于多层缓存的数据处理装置的示意图;

图5是根据本发明实施例的一种基于多层缓存的数据处理方法的电子设备(或移动设备)的硬件结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于本领域技术人员方便理解本发明,下面对本发明各实施例中出现的部分术语或者名词做出解释:

放置组,Placement Group,简称PG,实现不同存储池之间的策略隔离,用途是对object的存储进行组织和位置映射。

对象,Object,集群管理的最小数据存储单元。

数据层,又称Data Pool,存储分层结构中的数据层,由每个节点的机械磁盘HDD、普通固态磁盘SSD等相对低速存储介质组成。

缓存层,又称Cache OSD,Cache,存储分层结构中的cache层,由每个节点的SSD、NVMe等高速存储介质组成。

数据卷,volume,简称卷,逻辑存储空间;

存储桶,buckut,也可以叫缓存桶。

本发明可以应用于各种数据存储系统\缓存装置中,该数据存储系统或者缓存装置,包括:客户端(Client)、缓存层(或者是缓存池Cache)、数据层(或者是数据存储池DataPool),通过数据存储系统\缓存装置,能够实现数据快照备份、数据下刷处理、数据淘汰等,对于数据快照处理,主要实现的是ROW方式,通过快照的Rename,每次生成快照时通过创建新的元数据并建立新的映射关系来实现,当快照Rename时,更新高速介质中对象元数据信息时,生成的快照需要指向源数据对象,将进行一系列的数据更新。

本发明中,引入多层缓存间的对象映射方法和处理策略,包括映射关系的建立和管理,映射的唯一性,利用映射关系处理数据下刷和空间回收等,能够解决分层结构下包括快照rename或其他元数据更新在分层结构中面临的问题,在得到唯一性的保证情况下,实现方案更简单,事务处理延迟性显著降低。

本发明可以为多层间的后台的异步处理数据提供支撑条件,避免了同步处理方式导致的性能下降,同时能够有效解决多层联动过程中各种异常切换可能产生的数据一致性问题。

本发明下述各实施例,可以实现一种分层缓存的对象映射、分配及删除机制的方案。下面对本发明各实施例进行说明。

实施例一

根据本发明实施例,提供了一种基于多层缓存的数据处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本发明实施例提供了一种基于多层缓存的数据处理方法,应用于放置组PG,放置组分别对接有缓存层与数据层。本实施例中的PG,往上负责接收和处理来自客户端的请求;往下负责将这些数据请求翻译为能够被本地对象存储所能理解的事务。

图1是根据本发明实施例的一种可选的基于多层缓存的数据处理方法的流程图,如图1所示,该方法包括如下步骤:

步骤S102,接收客户端发送的数据写入请求,其中,数据写入请求中至少携带有:待写入的目标数据。

在本发明实施例中,客户端的类型包括但不限于:PC机、笔记本、移动终端、面板等。客户端可以是指业务层或者请求发起层,在需要存储数据或者拿取数据时,需要向缓存层发送请求。

步骤S104,响应数据写入请求,生成与目标数据对应的缓存对象以及与缓存对象对应的数据对象和唯一标识码,其中,缓存对象与数据对象分别对应有对象元数据。

可选的,响应数据写入请求,生成与目标数据对应的缓存对象以及与缓存对象对应的数据对象和唯一标识码的步骤,包括:响应数据写入请求,创建与目标数据对应的缓存对象;采用标识分配器,为缓存对象分配唯一标识码。

本实施例中的唯一标识码可以是指UUID,该唯一标识码的位数根据不同的设备进行设置,在第一次有数据IO写入时,可以新生成缓存对象A,同时生成一个数据对象A*,并且会被持久化保存。本实施例中,每生成一个对象,将申请一个UUID(通用唯一识别码),且保证了A*的天然唯一性,UUID的名字空间范围是放置组PG内,UUID对应数据层中的对象。

图2是根据本发明实施例的一种可选的分层缓存的对象映射关系图,如图2所示,包括:存储缓存层(指向A)、64位UUID映射和存储数据层(指向A*)。

通过一个UUID来关联数据层和缓存层的中的对象object映射关系,实现事务性处理方式。在新增对象时会进入标识分配器的分支,个UUID的分配是以PG为命名空间,减少出错概率。

可选的,本实施例中,每次生成快照时通过创建新的元数据并建立新的映射关系来实现,当快照Rename时,更新高速介质中对象元数据信息时,生成的快照需要指向源数据对象,将进行一系列的数据更新。

步骤S106,将缓存对象迁入缓存层中,并建立缓存对象的对象元数据与唯一标识码的第一映射关系。

步骤S108,将数据对象存储至数据层中,并建立数据对象的对象元数据与唯一标识码的第二映射关系。

通过上述步骤,可以在接收客户端发送的数据写入请求后,响应数据写入请求,生成与目标数据对应的缓存对象以及与缓存对象对应的数据对象和唯一标识码,其中,缓存对象与数据对象分别对应有对象元数据,将缓存对象迁入缓存层中,并建立缓存对象的对象元数据与唯一标识码的第一映射关系,并将数据对象存储至数据层中,并建立数据对象的对象元数据与唯一标识码的第二映射关系。在该实施例中,采用唯一标识码来关联数据层和缓存层的中的对象映射关系,降低事务性处理方式的复杂性,且保证缓存对象和数据对象的对应关系,能够提高数据查询效率和缓存效率,从而解决相关技术中采用分层缓存架构进行数据缓存时,事务性处理方式复杂的技术问题。

下面结合上述各实施步骤来详细说明本发明实施例。

作为本实施例一种可选的实施方式,在建立缓存对象的对象元数据与唯一标识码的第一映射关系之后,还包括:在缓存层中的对象元数据出现更新的情况下,调整缓存层中的对象元数据与唯一标识码之间的第一映射关系。

当缓存层的对象元数据发生更新时,如当触发快照策略生产ROW快照时,那么将修改缓存层中的对象元数据,此时需要同步修改其与唯一标识码的映射关系,保证元数据对象和数据层中对象的对应关系。

本实施例中,在缓存层中的object元数据更新后,修改其与唯一标识码的映射关系,这样能够保证缓存对象和数据对象的对应关系,当在缓存中无法获取时,能够快速准确的在数据层进行查找,提高了效率,在热点数据被提升后又能保证关联性。

可选的,在建立数据对象与唯一标识码的第二映射关系之后,还包括:在缓存层触发预设下刷策略的情况下,将缓存对象从缓存层下刷到数据层的数据对象;删除缓存层中的缓存对象,并保留缓存对象的对象元数据;将缓存层中缓存对象的对象元数据通过唯一标识码指向数据层中的数据对象。

缓存层/Cache层在缓存了所有缓存对象的元数据,包括所有的数据对象的当缓存层触发一定的策略后,如水位策略、空闲刷数据策略时,会删除缓存层中的缓存对象,保留对象元数据。

图3是根据本发明实施例的一种可选的分层缓存的进行数据下刷的示意图,如图3所示,当缓存层触发一定的策略后,如水位策略、空闲刷数据策略时,一个数据对象A(object A)从缓存层下刷/flush到数据层的数据对象A*(object A*);缓存层数据对象A后会被删除,但是对象元数据A会一直存储;缓存层中的对象元数据A通过UUID指向数据层中的数据对象object A*。

另一种可选的,在将缓存层中缓存对象的对象元数据通过唯一标识码指向数据层中的数据对象之后,还包括:在确定缓存层中的缓存空间符合空间空闲要求的情况下,将已删除的缓存对象释放为读缓存;在确定缓存空间不满足空间空闲要求的情况下,将缓存对象所对应的缓存空间释放。

在本实施例中,在将缓存对象所对应的缓存空间释放之后,还包括:在接收到数据读取请求的情况下,通过缓存对象的对象元数据查找数据对象的对象元数据;基于查找到的数据对象的对象元数据,查询数据对象;将数据对象缓存至缓存层中。

结合图3,被删除的object A会被释放为读缓存,如果有数据读取时可以从objectA中返回,而当缓存空间不足时,这些热点较低的缓存空间将被释放,当空间释放后,再次需要读取该数据是就需要通过object元数据A查找到object元数据A*,再找到object A*,提升到缓存层后被前端应用访问。

可选的,在生成与目标数据对应的缓存对象以及与缓存对象对应的数据对象和唯一标识码之后,还包括:将缓存对象分别存储至缓存层和数据层;在接收到对象删除指令的情况下,删除缓存层的缓存对象,并更新缓存对象的对象元数据;接收缓存层的后台线程发起的回收下刷指令;响应回收下刷指令,向数据层发送对象删除指令,以删除数据层中的缓存对象,更新数据层中的缓存对象的对象元数据;释放缓存层的缓存对象的缓存空间与数据层中的缓存对象的缓存空间。

数据层中的object(缓存对象)数目决定了整个池中的可用空间,缓存层为中间过程。而数据对象通常有两种状态,在缓存层中或者在数据层中,某些特殊情况下,数据对象可以同时存在缓存层和数据层中,那么这种情况下数据对象删除的流程中,需要同时清除缓存层和数据层中的缓存对象。

缓存层缓存了所有object元数据,接收到删除缓存对象的命令后,先删除缓存层中的缓存对象(如果存在),更新对象元数据(Meta data),完成对缓存层中缓存对象的删除操作;缓存OSD后台线程发起回收flush操作(如果需要),则发删除命令到数据层OSD,等待回台处理,删除对应的object,更新Meta data,完成对数据层的操作,同时真正释放全部空间。

本实施例中,上述策略需要缓存对象A对应的数据对象A*的全部唯一性,如果A被删除再创建,那么对应的A*应该重新生成。

本实施例中,在异常情况下,数据object可以同时存在缓存层和数据层中,那么这种情况下数据对象删除的流程中,需要同时清除缓存层和数据层中的object,回收机制可以很好的cache空间回收,避免空间占用。

下面结合另一种可选的实施例来说明本发明。

实施例二

本发明实施例提供了一种基于多层缓存的数据处理装置,应用于放置组PG,放置组分别对接有缓存层与数据层。该基于多层缓存的数据处理装置包含的多个实施单元对应于上述实施例一中的各个实施步骤。

图4是根据本发明实施例的一种可选的基于多层缓存的数据处理装置的示意图,如图4所示,包括:接收单元41、响应单元43、第一建立单元45、第二建立单元47,其中,

接收单元41,用于接收客户端发送的数据写入请求,其中,数据写入请求中至少携带有:待写入的目标数据;

响应单元43,用于响应数据写入请求,生成与目标数据对应的缓存对象以及与缓存对象对应的数据对象和唯一标识码,其中,缓存对象与数据对象分别对应有对象元数据;

第一建立单元45,用于将缓存对象迁入缓存层中,并建立缓存对象的对象元数据与唯一标识码的第一映射关系;

第二建立单元47,用于将数据对象存储至数据层中,并建立数据对象的对象元数据与唯一标识码的第二映射关系。

上述基于多层缓存的数据处理装置,可以通过接收单元41在接收客户端发送的数据写入请求后,通过响应单元43响应数据写入请求,生成与目标数据对应的缓存对象以及与缓存对象对应的数据对象和唯一标识码,其中,缓存对象与数据对象分别对应有对象元数据,通过第一建立单元45将缓存对象迁入缓存层中,并建立缓存对象的对象元数据与唯一标识码的第一映射关系,并通过第二建立单元47将数据对象存储至数据层中,并建立数据对象的对象元数据与唯一标识码的第二映射关系。在该实施例中,采用唯一标识码来关联数据层和缓存层的中的对象映射关系,降低事务性处理方式的复杂性,且保证缓存对象和数据对象的对应关系,能够提高数据查询效率和缓存效率,从而解决相关技术中采用分层缓存架构进行数据缓存时,事务性处理方式复杂的技术问题。

可选的,基于多层缓存的数据处理装置还包括:第一调整单元,用于在建立缓存对象的对象元数据与唯一标识码的第一映射关系之后,在缓存层中的对象元数据出现更新的情况下,调整缓存层中的对象元数据与唯一标识码之间的第一映射关系。

可选的,基于多层缓存的数据处理装置还包括:下刷单元,用于在建立数据对象与唯一标识码的第二映射关系之后,在缓存层触发预设下刷策略的情况下,将缓存对象从缓存层下刷到数据层的数据对象;第一删除单元,用于删除缓存层中的缓存对象,并保留缓存对象的对象元数据;指向单元,用于将缓存层中缓存对象的对象元数据通过唯一标识码指向数据层中的数据对象。

可选的,基于多层缓存的数据处理装置还包括:第一释放单元,用于在将缓存层中缓存对象的对象元数据通过唯一标识码指向数据层中的数据对象之后,在确定缓存层中的缓存空间符合空间空闲要求的情况下,将已删除的缓存对象释放为读缓存;第二释放单元,用于在确定缓存空间不满足空间空闲要求的情况下,将缓存对象所对应的缓存空间释放。

可选的,基于多层缓存的数据处理装置还包括:第一查找单元,用于在将缓存对象所对应的缓存空间释放之后,在接收到数据读取请求的情况下,通过缓存对象的对象元数据查找数据对象的对象元数据;第二查找单元,用于基于查找到的数据对象的对象元数据,查询数据对象;缓存单元,用于将数据对象缓存至缓存层中。

可选的,基于多层缓存的数据处理装置还包括:第一存储单元,用于在生成与目标数据对应的缓存对象以及与缓存对象对应的数据对象和唯一标识码之后,将缓存对象分别存储至缓存层和数据层;第二删除单元,用于在接收到对象删除指令的情况下,删除缓存层的缓存对象,并更新缓存对象的对象元数据;第一接收模块,用于接收缓存层的后台线程发起的回收下刷指令;第一响应模块,用于响应回收下刷指令,向数据层发送对象删除指令,以删除数据层中的缓存对象,更新数据层中的缓存对象的对象元数据;第一释放模块,用于释放缓存层的缓存对象的缓存空间与数据层中的缓存对象的缓存空间。

可选的,响应单元包括:第二响应模块,用于响应数据写入请求,创建与目标数据对应的缓存对象;分配模块,用于采用标识分配器,为缓存对象分配唯一标识码。

上述的基于多层缓存的数据处理装置还可以包括处理器和存储器,上述接收单元41、响应单元43、第一建立单元45、第二建立单元47等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来响应数据写入请求,生成与目标数据对应的缓存对象以及与缓存对象对应的数据对象和唯一标识码,将缓存对象迁入缓存层中,并建立缓存对象的对象元数据与唯一标识码的第一映射关系,将数据对象存储至数据层中,并建立数据对象的对象元数据与唯一标识码的第二映射关系。

上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的基于多层缓存的数据处理方法。

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的基于多层缓存的数据处理方法。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收客户端发送的数据写入请求,其中,数据写入请求中至少携带有:待写入的目标数据;响应数据写入请求,生成与目标数据对应的缓存对象以及与缓存对象对应的数据对象和唯一标识码,其中,缓存对象与数据对象分别对应有对象元数据;将缓存对象迁入缓存层中,并建立缓存对象的对象元数据与唯一标识码的第一映射关系;将数据对象存储至数据层中,并建立数据对象的对象元数据与唯一标识码的第二映射关系。

图5是根据本发明实施例的一种基于多层缓存的数据处理方法的电子设备(或移动设备)的硬件结构框图。如图5所示,电子设备可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图5所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 基于多层缓存的数据处理方法及装置、电子设备
  • 基于多层缓存机制的大数据采集和高速处理方法及系统
技术分类

06120114704545