CN116821072A - 文件的动态缓存方法、装置、设备及存储介质 - Google Patents
文件的动态缓存方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116821072A CN116821072A CN202310786402.8A CN202310786402A CN116821072A CN 116821072 A CN116821072 A CN 116821072A CN 202310786402 A CN202310786402 A CN 202310786402A CN 116821072 A CN116821072 A CN 116821072A
- Authority
- CN
- China
- Prior art keywords
- client
- target file
- module
- file
- server
- 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
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000004044 response Effects 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 8
- 230000001680 brushing effect Effects 0.000 claims description 6
- 238000004064 recycling Methods 0.000 claims description 2
- 238000013461 design Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000002045 lasting effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种文件的动态缓存方法、装置、设备及存储介质,方法为:响应于接收到任一第一客户端访问目标文件的访问请求,将第一客户端添加至访问列表;若访问目标文件的第一客户端的数量为多个,则从多个第一客户端中确定第二客户端,其中第二客户端是与目标文件存在锁定关系的客户端,且目标文件存储在第二客户端的本地缓存模块;将目标文件从第二客户端的本地存储模块转存到服务器的存储服务器内,并解除第二客户端与目标文件的锁定关系,以使第一客户端通过存储服务器访问目标文件;若第一客户端访问目标文件结束,则将目标文件从存储服务器重新转存至第二客户端的本地缓存模块,并重新建立第二客户端与目标文件的锁定关系。
Description
技术领域
本申请涉及云计算技术领域,尤其涉及一种文件的动态缓存方法、装置、设备及存储介质。
背景技术
随着满足人工智能和云计算技术的发展,提高分布式存储系统对数据请求的运算效率,目前对分布式存储系统的存储速度也有了更高的要求。如何提高存储速度以提高分布式存储系统的运算效率,成为亟待解决的问题。
在现有技术中,通过持久化客户端缓存技术,将数据持久化缓存到客户端,当客户端发送数据请求时,可以直接从客户端本地获取数据,而不用通过网络从服务器获取数据,这样就节省了数据传输的网络时延,进而提高了数据的存储速度。
然而,当其他客户端也需要访问相同的数据时,为了避免访问冲突保持数据一致性,会将客户端持久化缓存的数据失效,导致客户端无法从本地获取数据。由此可见,现有技术中的缓存方法只适合单个客户端访问数据的情况,而不适合多个客户端访问的情况,因此适用范围较小、适用性较差。
发明内容
本申请提供了一种文件的动态缓存方法、装置、设备及存储介质,可以提高缓存方法的适用范围、适用性。
第一方面,本申请提供了一种文件的动态缓存方法,应用于分布式存储系统中的服务器,所述分布式存储系统包括多个客户端和服务器;所述方法包括:
响应于接收到任一第一客户端访问目标文件的访问请求,将所述第一客户端添加至访问列表,其中所述访问列表包括至少一个访问所述目标文件的第一客户端;
若访问所述目标文件的第一客户端的数量为多个,则从所述多个第一客户端中确定第二客户端,其中所述第二客户端是与所述目标文件存在锁定关系的客户端,且所述目标文件存储在所述第二客户端的本地缓存模块;
将所述目标文件从所述第二客户端的本地存储模块转存到所述服务器的存储服务器内,并解除所述第二客户端与所述目标文件的锁定关系,以使所述第一客户端通过所述存储服务器访问所述目标文件;
若所述第一客户端访问所述目标文件结束,则将所述目标文件从所述存储服务器重新转存至所述第二客户端的本地缓存模块,并重新建立所述第二客户端与所述目标文件的锁定关系。
在一种可能的设计中,还包括:若访问所述目标文件的第一客户端的数量为一个,则将所述目标文件从所述存储服务器转存至所述第一客户端的本地缓存模块,并建立所述第一客户端与所述目标文件的锁定关系。
在一种可能的设计中,所述访问请求包括所述第一客户端的缓存状态信息;相应地,所述将所述目标文件从所述存储服务器转存至所述第一客户端的本地缓存模块之前,还包括:获取所述第一客户端的缓存状态信息;若所述缓存状态信息为可缓存状态,则执行将所述目标文件从所述存储服务器转存至所述第一客户端的本地缓存模块的步骤;若所述缓存状态信息为不可缓存状态,则不执行将所述目标文件从所述存储服务器转存至所述第一客户端的本地缓存模块的步骤。
在一种可能的设计中,所述本地缓存模块包括缓存单元和下刷单元,其中所述缓存单元内包括多个文件和每个文件对应的锁信息;相应地,所述将所述目标文件从所述第二客户端的本地存储模块转存到所述服务器的存储服务器内,并解除所述第二客户端与所述目标文件的锁定关系,包括:根据所述目标文件的文件标识,从所述缓存单元内包括的多个文件中提取所述目标文件和所述目标文件对应的文件锁信息;通过下刷单元,将所述目标文件转存到所述服务器的存储服务器内,并将所述目标文件对应的文件锁信息设置为解锁状态。
在一种可能的设计中,所述本地缓存模块还包括回收单元;相应地,所述方法还包括:获取所述缓存单元内已缓存文件的容量以及所述缓存单元的总容量;若所述已缓存文件的容量与所述总容量之比大于预设比值,则从所述已缓存文件中查询预设时长内未被访问的目标文件;通过所述回收单元删除所述目标文件。
在一种可能的设计中,所述目标文件内包括多个未同步的数据;相应地,所述通过下刷单元,将所述目标文件转存到所述服务器的存储服务器内,包括:将所述多个未同步的数据分为多个预设容量的数据分组;依次将各个所述预设容量的数据分组,转存到所述服务器的存储服务器内。
在一种可能的设计中,还包括:响应于接收到针对所述目标文件的写入指令,确定所述目标文件中是否包括未同步的数据;若所述目标文件包括未同步的数据,则确定所述写入指令包括的多个待写入的新数据是否与所述未同步的数据有相同的数据;若所述多个待写入的新数据与所述未同步的数据有相同的数据,则将所述未同步的数据同步至所述存储服务器之后,才执行所述写入指令。
第二方面,本申请提供了一种文件的动态缓存装置,应用于分布式存储系统中的服务器,所述分布式存储系统包括多个客户端和服务器;所述装置包括:
接收模块,用于响应于接收到任一第一客户端访问目标文件的访问请求,将所述目标文件添加至访问列表,其中所述访问列表包括至少一个访问所述目标文件的第一客户端;
确定模块,用于若访问所述目标文件的第一客户端的数量为多个,则从所述多个第一客户端中确定第二客户端,其中所述第二客户端是与所述目标文件存在锁定关系的客户端,且所述目标文件存储在所述第二客户端的本地缓存模块;
转存模块,用于将所述目标文件从所述第二客户端的本地存储模块转存到所述服务器的存储服务器内,并解除所述第二客户端与所述目标文件的锁定关系,以使所述第一客户端通过所述存储服务器访问所述目标文件;
锁定模块,用于若所述第一客户端访问所述目标文件结束,则将所述目标文件从所述存储服务器重新转存至所述第二客户端的本地缓存模块,并重新建立所述第二客户端与所述目标文件的锁定关系。
第三方面,本申请提供一种电子设备,包括:处理器和存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如上第一方面以及第一方面各种可能的设计所述的文件的动态缓存方法。
第四方面,本申请提供一种计算机存储介质,所述计算机存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的文件的动态缓存方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面以及第一方面各种可能的设计所述的文件的动态缓存方法。
本申请提供的文件的动态缓存方法、装置、设备及存储介质,响应于接收到任一第一客户端访问目标文件的访问请求,将第一客户端添加至访问列表;若访问目标文件的第一客户端的数量为多个,则从多个第一客户端中确定第二客户端,其中第二客户端是与目标文件存在锁定关系的客户端,且目标文件存储在第二客户端的本地缓存模块;将目标文件从第二客户端的本地存储模块转存到服务器的存储服务器内,并解除第二客户端与目标文件的锁定关系,以使第一客户端通过存储服务器访问目标文件;若第一客户端访问目标文件结束,则将目标文件从存储服务器重新转存至第二客户端的本地缓存模块,并重新建立第二客户端与目标文件的锁定关系。由于在第一客户端访问文件时,可以将文件从第二客户端的本地缓存模块转存至存储服务器;在第一客户端访问结束以后,可以自动将文件从存储服务器重新转存至之前锁定过的第二客户端的本地缓存模块,实现了文件的动态缓存,便于第二客户端直接访问目标文件。由此可见,本申请可以解决多个客户端访问相同数据无法缓存数据的问题,所以提高了该缓存方法的适用范围和适用性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的文件的动态缓存方法的应用场景示意图;
图2为本申请实施例提供的文件的动态缓存方法流程示意图一;
图3为本申请实施例提供的文件的动态缓存方法流程示意图二;
图4为本申请实施例提供的文件的动态缓存装置的结构示意图;
图5为本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
随着满足人工智能和云计算技术的发展,提高分布式存储系统对数据请求的运算效率,目前对分布式存储系统的存储速度也有了更高的要求。如何提高存储速度以提高分布式存储系统的运算效率,成为亟待解决的问题。
在现有技术中,通过持久化客户端缓存技术,将数据持久化缓存到客户端,当客户端发送数据请求时,可以直接从客户端本地获取数据,而不用通过网络从服务器获取数据,这样就节省了数据传输的网络时延,进而提高了数据的存储速度。然而,当其他客户端也需要访问相同的数据时,为了避免访问冲突保持数据一致性,会将客户端持久化缓存的数据失效,导致客户端无法从本地获取数据。由此可见,现有技术中的缓存方法只适合单个客户端访问数据的情况,而不适合多个客户端访问的情况,因此适用范围较小、适用性较差。
由此可见,如何提高多个客户端访情况下的存储速度是目前亟待解决的技术问题。
为了解决上述技术问题,本申请实施例提出以下技术构思:接收到任一第一客户端访问目标文件的访问请求时,将目标文件从第二客户端的本地存储模块转存到服务器的存储服务器内,并解除第二客户端与目标文件的锁定关系,以使第一客户端通过存储服务器访问目标文件;若第一客户端访问目标文件结束,则将目标文件从存储服务器重新转存至第二客户端的本地缓存模块,并重新建立第二客户端与目标文件的锁定关系。由于在第一客户端访问文件时,可以将文件从第二客户端的本地缓存模块转存至存储服务器;在第一客户端访问结束以后,可以自动将文件从存储服务器重新转存至之前锁定过的第二客户端的本地缓存模块,实现了文件的动态缓存,便于第二客户端直接访问目标文件。由此可见,本申请可以解决多个客户端访问相同数据无法缓存数据的问题,所以提高了该缓存方法的适用范围和适用性。
图1是本申请实施例提供的文件的动态缓存方法的应用场景示意图。如图1所示,该动态缓存方法应用于分布式存储系统中的服务器,该分布式存储系统包括多个客户端101和服务器102。客户端102包括主服务器和存储服务器。主服务器与每个客户端101通过有线或无线联通,用于接收和发送数据,存储服务器用于存储数据。示例性的,第一客户端需要访问数据时,向主服务器发送访问请求。主服务器从存储服务器获取数据,并将数据发送至第一客户端,第一客户端缓存数据后,可以对数据锁定。而且当其他客户端需要访问锁定的数据时,第一客户端还可以对数据接触锁定,并将数据转存到存储服务器,这样其他客户端就可以从存储服务器访问数据。下面通过详细的实施例对本申请提出的文件的动态缓存方法进行详细说明。
图2为本申请实施例提供的文件的动态缓存方法流程示意图一,本实施例的执行主体可以为终端,也可以是服务器,本实施例此处不做特别限制。
如图2所示,该方法包括:
S201、响应于接收到任一第一客户端访问目标文件的访问请求,将第一客户端添加至访问列表,其中访问列表包括至少一个访问目标文件的第一客户端。
在本步骤中,当访问目标文件的第一客户端为一个时,该第一客户端即是本次访问的客户端。当访问目标文件的第一客户端为多个时,多个第一客户端中包括本次访问的客户端以及历史访问的客户端。
示例性的,本次访问的第一客户端为客户端0、历史访问的客户端为客户端1。在此情况下,访问列表中包括2个访问目标文件的第一客户端。
S202、若访问目标文件的第一客户端的数量为多个,则从多个第一客户端中确定第二客户端,其中第二客户端是与目标文件存在锁定关系的客户端,且目标文件存储在第二客户端的本地缓存模块。
可选地,服务器内包括元数据服务中心,通过元数据服务中心内记录有每个文件所在的存储位置。相应地,从多个第一客户端中确定第二客户端包括:通过目标文件的文件标识,确定目标文件的存储位置;从多个第一客户端中选择存储位置所在的客户端为第二客户端。
示例性的,访问目标文件的第一客户端的数量为2个:客户端0和客户端1。目标文件的文件标识为:图片A;确定图片A的存储位置为:客户端1的本地存储模块;确定客户端1为第二客户端。
需要说明的是,文件存储在本地存储模块,也即是将文件缓存到了客户端本地。此时,客户端与文件之间存在锁定关系,客户端可以直接从本地访问文件,从而节省了数据传输的网络时延,提高了数据的存储速度。
在本申请中,本地缓存模块可以是DPCC(Distributed Persistent ClientCache,分布式缓存)模块。
S203、将目标文件从第二客户端的本地存储模块转存到服务器的存储服务器内,并解除第二客户端与目标文件的锁定关系,以使第一客户端通过存储服务器访问目标文件。
可选地,本地缓存模块包括缓存单元和下刷单元,其中缓存单元内包括多个文件和每个文件对应的锁信息;相应地,将目标文件从第二客户端的本地存储模块转存到服务器的存储服务器内,并解除第二客户端与目标文件的锁定关系,包括:根据目标文件的文件标识,从缓存单元内包括的多个文件中提取目标文件和目标文件对应的文件锁信息;通过下刷单元,将目标文件转存到服务器的存储服务器内,并将目标文件对应的文件锁信息设置为解锁状态。
示例性的,本地缓存模块为DPCC模块。DPCC模块包括缓存单元和下刷单元;其中,缓存单元可以用Cache表示,下刷单元可以用Flusher表示。
在一些实施例中,目标文件内包括多个未同步的数据(也即是脏数据);相应地,通过下刷单元,将目标文件转存到服务器的存储服务器内,包括:将多个未同步的数据分为多个预设容量的数据分组;依次将各个预设容量的数据分组,转存到服务器的存储服务器内。本申请实施例对预设容量的数值不作具体限定,可以根据需要进行设定并修改。示例性的,预设容量可以是1M、10M、20M等。
由于当未同步的数据较小时,每次传输一个数据的传输请求较多,导致传输效率较低。这里将多个未同步的数据分为多个预设容量的数据分组,然后按分组将数据转存到存储服务器内,减小了传输请求次数,从而降低了网络交互次数,因此提高了传输效率。
需要说明的是,在本申请实施例中,还可以定期扫描本地缓存模块内长期未被访问的数据,删除超过一定时间未访问的数据,以便释放本地缓存模块的缓存空间。
可选地,本地缓存模块还包括回收单元;相应地,删除长时间未访问的数据的步骤为:从已缓存文件中查询预设时长内未被访问的目标文件;通过回收单元删除目标文件。本申请实施例对预设时长的数值不作具体限定,可以根据需要进行设定并修改。示例性的,预设时长可以是1周、2周、1个月等。示例性的,回收单元可以用Reaper表示,也即是,DPCC模块包括Cache单元、Flusher单元和Reaper单元。
这里,由于通过定期扫描本地缓存模块内长期未被访问的数据,删除超过一定时间未访问的数据,以便释放本地缓存模块的缓存空间,进而提高了本地缓存模块的读写速度。
在另一实施例中,当本地缓存模块的缓存空间剩余较少时,才删除数据。相应地,删除长时间未访问的数据的步骤为:获取缓存单元内已缓存文件的容量以及缓存单元的总容量;若已缓存文件的容量与总容量之比大于预设比值,则从已缓存文件中查询预设时长内未被访问的目标文件;通过回收单元删除目标文件。
本申请实施例对预设比值的数值不作具体限定,可以根据需要进行设定并修改。示例性的,预设比值可以是0.7、0.8、0.9等。
这里,由于当本地缓存模块的缓存空间剩余较少时,才定期扫描本地缓存模块内长期未被访问的数据,删除超过一定时间未访问的数据,以便释放本地缓存模块的缓存空间,在确保本地缓存模块的读写速度的同时,也提供了本地缓存模块存储数据的稳定性。
S204、若第一客户端访问目标文件结束,则将目标文件从存储服务器重新转存至第二客户端的本地缓存模块,并重新建立第二客户端与目标文件的锁定关系。
在一些实施例中,若第一客户端访问目标文件结束,则直接将目标文件从存储服务器重新转存至第二客户端的本地缓存模块,并重新建立第二客户端与目标文件的锁定关系。
在另一些实施例中,若第一客户端访问目标文件结束,当第二客户端再次访问目标文件时,才将目标文件从存储服务器重新转存至第二客户端的本地缓存模块,并重新建立第二客户端与目标文件的锁定关系。
本申请提供的文件的动态缓存方法,由于在第一客户端访问文件时,可以将文件从第二客户端的本地缓存模块转存至存储服务器;在第一客户端访问结束以后,可以自动将文件从存储服务器重新转存至之前锁定过的第二客户端的本地缓存模块,实现了文件的动态缓存,便于第二客户端直接访问目标文件。由此可见,本申请可以解决多个客户端访问相同数据无法缓存数据的问题,所以提高了该缓存方法的适用范围和适用性。
图3为本申请实施例提供的文件的动态缓存方法流程示意图二。在本申请实施例中,在图2提供的实施例的基础上,对第一客户端的数量为一个的情况下的动态缓存方法进行了详细说明。如图3所示,该方法还包括:
S205、若访问目标文件的第一客户端的数量为一个,则将目标文件从存储服务器转存至第一客户端的本地缓存模块,并建立第一客户端与目标文件的锁定关系。
在本申请实施例中,当访问目标文件的第一客户端的数量为一个时,则没有访问竞争,此时,将目标文件缓存至该第一客户端即可。
需要说明的是,在目标文件缓存至第一客户端之前,需要对第一客户端的缓存状态信息进行确认。只有当第一客户端处于可缓存状态时,才将目标文件缓存至第一客户端。当第一客户端处于不可缓存状态时,则不转存目标文件,而从存储服务器访问目标文件
可选地,访问请求包括第一客户端的缓存状态信息;相应地,将目标文件从存储服务器转存至第一客户端的本地缓存模块之前,还包括:获取第一客户端的缓存状态信息;若缓存状态信息为可缓存状态,则执行将目标文件从存储服务器转存至第一客户端的本地缓存模块的步骤;若缓存状态信息为不可缓存状态,则不执行将目标文件从存储服务器转存至第一客户端的本地缓存模块的步骤。
其中,可以通过本地缓存模块的标记信息,确定缓存状态信息。若访问请求包括本地缓存模块的标记信息时,则确定缓存状态信息为可缓存状态;若访问请求不包括本地缓存模块的标记信息时,则确定缓存状态信息为不可缓存状态。其中,本地缓存模块的标记信息可以为DPCC标记。
在一些实施例中,用户可以对客户端的缓存状态信息进行设定,当需要客户端缓存数据时,将缓存状态信息设置为可缓存状态,当不需要客户端缓存数据时,将缓存状态信息设置为不可缓存状态。
需要说明的是,本申请的缓存方法还可以对目标文件中的数据进行更新。若目标文件处于转存过程中,则目标文件内包括未同步的数据,此时需要等待目标文件转存结束后,才对目标文件中的数据进行更新。
相应地,对数据进行更新的步骤为:响应于接收到针对目标文件的写入指令,确定目标文件中是否包括未同步的数据;若目标文件包括未同步的数据,则确定写入指令包括的多个待写入的新数据是否与未同步的数据有相同的数据;若多个待写入的新数据与未同步的数据有相同的数据,则将未同步的数据同步至存储服务器之后,才执行写入指令。
在本申请实例中,由于当目标文件内包括未同步的数据时,等待目标文件转存结束后,才对目标文件中的数据进行更新,从而能够确保文件数据的一致性,进而提高文件的有效性和稳定性。
图4为本申请实施例提供的文件的动态缓存装置的结构示意图。该文件的动态缓存装置应用于分布式存储系统中的服务器,分布式存储系统包括多个客户端和服务器;如图4所示,该装置包括:接收模块401、确定模块402、转存模块403和锁定模块404;
其中,接收模块401,用于响应于接收到任一第一客户端访问目标文件的访问请求,将目标文件添加至访问列表,其中访问列表包括至少一个访问目标文件的第一客户端;
确定模块402,用于若访问目标文件的第一客户端的数量为多个,则从多个第一客户端中确定第二客户端,其中第二客户端是与目标文件存在锁定关系的客户端,且目标文件存储在第二客户端的本地缓存模块;
转存模块403,用于将目标文件从第二客户端的本地存储模块转存到服务器的存储服务器内,并解除第二客户端与目标文件的锁定关系,以使第一客户端通过存储服务器访问目标文件;
锁定模块404,用于若第一客户端访问目标文件结束,则将目标文件从存储服务器重新转存至第二客户端的本地缓存模块,并重新建立第二客户端与目标文件的锁定关系。
在一种可能的设计中,转存模块403,还用于若访问目标文件的第一客户端的数量为一个,则将目标文件从存储服务器转存至第一客户端的本地缓存模块,并建立第一客户端与目标文件的锁定关系。
在一种可能的设计中,访问请求包括第一客户端的缓存状态信息;相应地,转存模块403,还用于获取第一客户端的缓存状态信息;若缓存状态信息为可缓存状态,则执行将目标文件从存储服务器转存至第一客户端的本地缓存模块的步骤;若缓存状态信息为不可缓存状态,则不执行将目标文件从存储服务器转存至第一客户端的本地缓存模块的步骤。
在一种可能的设计中,本地缓存模块包括缓存单元和下刷单元,其中缓存单元内包括多个文件和每个文件对应的锁信息;相应地,转存模块403,将目标文件从第二客户端的本地存储模块转存到服务器的存储服务器内,并解除第二客户端与目标文件的锁定关系,具体包括:根据目标文件的文件标识,从缓存单元内包括的多个文件中提取目标文件和目标文件对应的文件锁信息;通过下刷单元,将目标文件转存到服务器的存储服务器内,并将目标文件对应的文件锁信息设置为解锁状态。
在一种可能的设计中,本地缓存模块还包括回收单元;相应地,方法还包括:删除模块;删除模块,用于获取缓存单元内已缓存文件的容量以及缓存单元的总容量;若已缓存文件的容量与总容量之比大于预设比值,则从已缓存文件中查询预设时长内未被访问的目标文件;通过回收单元删除目标文件。
在一种可能的设计中,目标文件内包括多个未同步的数据;相应地,转存模块403通过下刷单元,将目标文件转存到服务器的存储服务器内,包括:将多个未同步的数据分为多个预设容量的数据分组;依次将各个预设容量的数据分组,转存到服务器的存储服务器内。
在一种可能的设计中,还包括:数据写入模块;数据写入模块,用于响应于接收到针对目标文件的写入指令,确定目标文件中是否包括未同步的数据;若目标文件包括未同步的数据,则确定写入指令包括的多个待写入的新数据是否与未同步的数据有相同的数据;若多个待写入的新数据与未同步的数据有相同的数据,则将未同步的数据同步至存储服务器之后,才执行写入指令。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图5为本申请实施例提供的电子设备的硬件结构示意图。如图5所示,本实施例的电子设备包括:处理器501以及存储器502;其中
存储器502,用于存储计算机执行指令;
处理器501,用于执行存储器存储的计算机执行指令,以实现上述实施例中电子设备所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。
可选地,存储器502既可以是独立的,也可以跟处理器501集成在一起。
当存储器502独立设置时,该电子设备还包括总线503,用于连接存储器502和处理器501。
本申请实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现上述各方法实施例的文件的动态缓存方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时,实现上述各方法实施例的文件的动态缓存方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例中的方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,简称CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,简称ISA)总线、外部设备互连(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种文件的动态缓存方法,其特征在于,应用于分布式存储系统中的服务器,所述分布式存储系统包括多个客户端和服务器;所述方法包括:
响应于接收到任一第一客户端访问目标文件的访问请求,将所述第一客户端添加至访问列表,其中所述访问列表包括至少一个访问所述目标文件的第一客户端;
若访问所述目标文件的第一客户端的数量为多个,则从多个第一客户端中确定第二客户端,其中所述第二客户端是与所述目标文件存在锁定关系的客户端,且所述目标文件存储在所述第二客户端的本地缓存模块;
将所述目标文件从所述第二客户端的本地存储模块转存到所述服务器的存储服务器内,并解除所述第二客户端与所述目标文件的锁定关系,以使所述第一客户端通过所述存储服务器访问所述目标文件;
若所述第一客户端访问所述目标文件结束,则将所述目标文件从所述存储服务器重新转存至所述第二客户端的本地缓存模块,并重新建立所述第二客户端与所述目标文件的锁定关系。
2.根据权利要求1所述的方法,其特征在于,还包括:
若访问所述目标文件的第一客户端的数量为一个,则将所述目标文件从所述存储服务器转存至所述第一客户端的本地缓存模块,并建立所述第一客户端与所述目标文件的锁定关系。
3.根据权利要求2所述的方法,其特征在于,所述访问请求包括所述第一客户端的缓存状态信息;
相应地,所述将所述目标文件从所述存储服务器转存至所述第一客户端的本地缓存模块之前,还包括:
获取所述第一客户端的缓存状态信息;
若所述缓存状态信息为可缓存状态,则执行将所述目标文件从所述存储服务器转存至所述第一客户端的本地缓存模块的步骤;若所述缓存状态信息为不可缓存状态,则不执行将所述目标文件从所述存储服务器转存至所述第一客户端的本地缓存模块的步骤。
4.根据权利要求1所述的方法,其特征在于,所述本地缓存模块包括缓存单元和下刷单元,其中所述缓存单元内包括多个文件和每个文件对应的锁信息;
相应地,所述将所述目标文件从所述第二客户端的本地存储模块转存到所述服务器的存储服务器内,并解除所述第二客户端与所述目标文件的锁定关系,包括:
根据所述目标文件的文件标识,从所述缓存单元内包括的多个文件中提取所述目标文件和所述目标文件对应的文件锁信息;
通过下刷单元,将所述目标文件转存到所述服务器的存储服务器内,并将所述目标文件对应的文件锁信息设置为解锁状态。
5.根据权利要求4所述的方法,其特征在于,所述本地缓存模块还包括回收单元;相应地,所述方法还包括:
获取所述缓存单元内已缓存文件的容量以及所述缓存单元的总容量;
若所述已缓存文件的容量与所述总容量之比大于预设比值,则从所述已缓存文件中查询预设时长内未被访问的目标文件;
通过所述回收单元删除所述目标文件。
6.根据权利要求4所述的方法,其特征在于,所述目标文件内包括多个未同步的数据;
相应地,所述通过下刷单元,将所述目标文件转存到所述服务器的存储服务器内,包括:
将所述多个未同步的数据分为多个预设容量的数据分组;
依次将各个所述预设容量的数据分组,转存到所述服务器的存储服务器内。
7.根据权利要求1-6任一项所述的方法,其特征在于,还包括:
响应于接收到针对所述目标文件的写入指令,确定所述目标文件中是否包括未同步的数据;
若所述目标文件包括未同步的数据,则确定所述写入指令包括的多个待写入的新数据是否与所述未同步的数据有相同的数据;
若所述多个待写入的新数据与所述未同步的数据有相同的数据,则将所述未同步的数据同步至所述存储服务器之后,才执行所述写入指令。
8.一种文件的动态缓存装置,其特征在于,应用于分布式存储系统中的服务器,所述分布式存储系统包括多个客户端和服务器;所述装置包括:
接收模块,用于响应于接收到任一第一客户端访问目标文件的访问请求,将所述目标文件添加至访问列表,其中所述访问列表包括至少一个访问所述目标文件的第一客户端;
确定模块,用于若访问所述目标文件的第一客户端的数量为多个,则从多个第一客户端中确定第二客户端,其中所述第二客户端是与所述目标文件存在锁定关系的客户端,且所述目标文件存储在所述第二客户端的本地缓存模块;
转存模块,用于将所述目标文件从所述第二客户端的本地存储模块转存到所述服务器的存储服务器内,并解除所述第二客户端与所述目标文件的锁定关系,以使所述第一客户端通过所述存储服务器访问所述目标文件;
锁定模块,用于若所述第一客户端访问所述目标文件结束,则将所述目标文件从所述存储服务器重新转存至所述第二客户端的本地缓存模块,并重新建立所述第二客户端与所述目标文件的锁定关系。
9.一种电子设备,其特征在于,包括:处理器和存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如权利要求1至8任一项所述的文件的动态缓存方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至8任一项所述的文件的动态缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310786402.8A CN116821072A (zh) | 2023-06-29 | 2023-06-29 | 文件的动态缓存方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310786402.8A CN116821072A (zh) | 2023-06-29 | 2023-06-29 | 文件的动态缓存方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116821072A true CN116821072A (zh) | 2023-09-29 |
Family
ID=88112301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310786402.8A Pending CN116821072A (zh) | 2023-06-29 | 2023-06-29 | 文件的动态缓存方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116821072A (zh) |
-
2023
- 2023-06-29 CN CN202310786402.8A patent/CN116821072A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9087021B2 (en) | Peer-to-peer transcendent memory | |
US7707337B2 (en) | Object-based storage device with low process load and control method thereof | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
CN103607428B (zh) | 一种访问共享内存的方法和装置 | |
US10884926B2 (en) | Method and system for distributed storage using client-side global persistent cache | |
EP4310691A1 (en) | Blockchain-based data processing method, apparatus, and device, and storage medium | |
CN107197359B (zh) | 视频文件缓存方法及装置 | |
CN107341114B (zh) | 一种目录管理的方法、节点控制器和系统 | |
WO2017095820A1 (en) | Methods and devices for acquiring data using virtual machine and host machine | |
CN114827145A (zh) | 服务器集群系统、元数据的访问方法及装置 | |
CN107545050A (zh) | 数据查询方法及装置、电子设备 | |
CN111930305A (zh) | 数据的存储方法和装置、存储介质、电子装置 | |
CN111399760B (zh) | Nas集群元数据处理方法、装置、nas网关及介质 | |
CN113596010A (zh) | 一种数据处理方法、装置、节点设备及计算机存储介质 | |
EP3249539B1 (en) | Method and device for accessing data visitor directory in multi-core system | |
CN111803917A (zh) | 资源的处理方法和装置 | |
CN108958660B (zh) | 分布式存储系统及其数据处理方法和装置 | |
CN111190537A (zh) | 一种追加写场景下顺序存储磁盘管理的方法及系统 | |
CN111796772B (zh) | 缓存的管理方法、缓存节点及分布式存储系统 | |
CN117130792A (zh) | 缓存对象的处理方法、装置、设备及存储介质 | |
JPH07239808A (ja) | 分散データ管理方式 | |
CN116821072A (zh) | 文件的动态缓存方法、装置、设备及存储介质 | |
CN112130747A (zh) | 分布式对象存储系统及数据读写方法 | |
CN114089912A (zh) | 基于消息中间件的数据处理方法及装置、存储介质 | |
CN115269168A (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 |