数据同步方法、装置、客户端和计算机可读存储介质与流程

未命名 08-13 阅读:68 评论:0


1.本发明涉及分布式文件系统领域,具体而言,涉及一种数据同步方法、装置、客户端和计算机可读存储介质。


背景技术:

2.在分布式文件系统中,为了提高文件读写性能,客户端通常使用本地内存来缓存经常访问的文件数据。当一个文件被多个客户端读取时,每个客户端被授予读权限,并将数据缓存到本地内存中。客户端在拥有文件的读权限期间,可以直接访问本地内存中的数据。
3.当某个客户端需要修改该文件时,则该客户端申请该文件的写权限,同时其他客户端该文件的读权限被召回且本地缓存数据失效。其他客户端再次读取该文件时需要重新申请读权限,被授予写权限的客户端将脏数据保存到数据服务器并将写权限释放,被授权读权限的客户端从数据服务器读取该文件数据保存到本地缓存。这样的数据同步方式需要通过数据服务器读写文件数据来保证客户端缓存的一致性,数据同步消耗的时间较长,从而影响分布式文件系统io读写性能。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种数据同步方法、装置、客户端和计算机可读存储介质,采用多个客户端直接同步脏数据的方式保证客户端缓存的一致性,减少与数据服务器的数据交互,有效降低数据服务器的业务负担和减少数据同步的时间,进而提升分布式文件系统io读写性能。
5.为了实现上述目的,本发明实施例采用的技术方案如下:第一方面,本发明提供一种数据同步方法,应用于客户端,所述方法包括:确定与所述客户端进行数据同步的目标客户端;所述目标客户端与所述客户端为同一目标文件所对应的已注册客户端;与所述目标客户端进行脏数据同步,以使所述客户端与所述目标客户端的缓存数据一致。
6.在可选的实施方式中,所述与所述目标客户端进行脏数据同步,以使所述客户端与所述目标客户端的缓存数据一致,包括:当所述客户端打开所述目标文件时,将所述目标客户端的脏数据同步到所述客户端的缓存;当所述客户端修改所述目标文件时,将所述客户端的脏数据同步到所述目标客户端的缓存。
7.在可选的实施方式中,所述当所述客户端打开所述目标文件时,将所述目标客户端的脏数据同步到所述客户端的缓存,包括:当所述客户端打开所述目标文件时,向所述目标客户端发送所述目标文件的脏数据查询请求;
接收所述目标客户端基于所述脏数据查询请求返回的所述目标文件的脏数据;将接收到的所述目标文件的全部脏数据保存到所述客户端的缓存。
8.在可选的实施方式中,所述当所述客户端修改所述目标文件时,将所述客户端的脏数据同步到所述目标客户端的缓存,包括:当所述客户端修改所述目标文件时,将待写入数据作为脏数据保存到所述客户端的缓存;将所述脏数据发送给所述目标客户端,以便所述目标客户端将所述客户端的脏数据保存到缓存。
9.在可选的实施方式中,所述确定与所述客户端进行数据同步的目标客户端,包括:当所述客户端打开所述目标文件时,向监控服务器发送注册请求,以便所述监控服务器根据所述注册请求获取所述目标文件对应的所有已注册客户端的标识;根据所述监控服务器返回的所述目标文件对应的所有已注册客户端的标识,确定目标客户端;所述目标客户端为所述目标文件对应的除所述客户端之外的全部已注册客户端。
10.在可选的实施方式中,所述确定与所述客户端进行数据同步的目标客户端,包括:当所述客户端修改所述目标文件时,向监控服务器发送所述目标文件的写权限请求,以便所述监控服务器根据所述写权限请求返回授权信息;所述授权信息包括所述目标文件对应的所有已注册客户端的标识;根据所述目标文件对应的所有已注册客户端的标识,确定目标客户端;所述目标客户端为所述目标文件对应的除所述客户端之外的全部已注册客户端。
11.第二方面,本发明提供一种数据同步装置,应用于客户端,所述装置包括:决策模块,用于确定与所述客户端进行数据同步的目标客户端;所述目标客户端与所述客户端为同一目标文件所对应的已注册客户端;同步模块,用于与所述目标客户端进行脏数据同步,以使所述客户端与所述目标客户端的缓存数据一致。
12.在可选的实施方式中,所述同步模块用于当所述客户端打开所述目标文件时,将所述目标客户端的脏数据同步到所述客户端的缓存;当所述客户端修改所述目标文件时,将所述客户端的脏数据同步到所述目标客户端的缓存。
13.第三方面,本发明提供一种客户端,所述客户端包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于在调用所述计算机程序时执行如前述实施方式任一项所述的数据同步方法。
14.第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述实施方式任一项所述的数据同步方法。
15.相比于现有技术,本发明实施例提供的数据同步方法、装置、客户端和计算机可读存储介质,通过确定与客户端进行数据同步的目标客户端;目标客户端与客户端为同一目标文件所对应的已注册客户端;与目标客户端进行脏数据同步,以使客户端与目标客户端的缓存数据一致。本发明采用多个客户端直接同步脏数据的方式保证客户端缓存的一致性,减少与数据服务器的数据交互,有效降低数据服务器的业务负担和减少数据同步的时间,进而提升分布式文件系统io读写性能。
16.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
17.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
18.图1示出了本发明实施例提供的一种应用场景示意图。
19.图2示出了本发明实施例提供的数据同步方法的一种示意图。
20.图3示出了图2中步骤s20的子步骤的一种示意图。
21.图4示出了图3中步骤s201和s202的子步骤的一种示意图。
22.图5示出了图4中步骤s10的子步骤的一种示意图。
23.图6示出了本发明实施例提供的数据同步装置的方框示意图。
24.图7示出了本发明实施例提供的客户端的一种方框示意图。
25.图标:10-客户端;20-监控服务器;30-数据服务器;110-存储器;120-处理器;130-通信模块;200-数据同步装置;201-决策模块;202-同步模块。
具体实施方式
26.下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
27.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
28.需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
29.在分布式文件系统中,为了提高文件系统性能,常常引入不同类型的缓存存储系统,缓存存储系统一般分为两类,一类是分布式缓存,如memcached、redis和tair等;另一类是本地缓存,如facebook的flushcache、固态硬盘、本地内存保存数据等,其中固态硬盘属于本地磁盘缓存,本地内存保存数据属于本地内存缓存。
30.为了提高文件系统的性能以及热点数据的命中率,通常在客户端引入本地内存来缓存经常访问的文件数据。一旦在客户端引入内存缓存数据,那么如何保证多个客户端缓存一致性显得尤为重要。目前通常利用数据服务器做中转保证客户端缓存一致性,即客户
端将脏数据保存到数据服务器,其他客户端从数据服务器获取数据更新本地缓存,从而保证打开同一文件的全部客户端所缓存的数据是完全相同的。采用数据服务器中转数据的方式会消耗较长时间读写数据,从而影响分布式文件系统io读写性能。
31.基于此,本发明实施例提供了一种数据同步方法、装置、客户端和计算机可读存储介质,采用多个客户端直接同步脏数据的方式保证客户端缓存的一致性,减少与数据服务器的数据交互,有效降低数据服务器的业务负担和减少数据同步的时间,进而提升分布式文件系统io读写性能。
32.请参照图1,图1示出了适用于本发明实施例的一种应用场景示意图。在图1中,多个客户端10之间通信连接,每个客户端10分别与监控服务器20和数据服务器30通信连接。其中,客户端10响应用户针对文件的访问请求,访问请求中可以包括打开文件、修改文件属性、对文件进行追加写或覆盖写数据等,其中修改文件属性、对文件进行追加写或覆盖写数据都是对文件的修改操作。客户端10根据接收到的访问请求具体要求执行下述示例中s10~s20步骤以及对应的子步骤,以实现对应的技术效果。监控服务器20主要负责监控客户端10打开的文件,以及控制文件写权限。数据服务器30主要负责存储客户端10产生的数据和元数据,以及处理客户端10读取数据或元数据的请求。
33.下面结合附图对本发明的各实施例进行详细说明。
34.图2示出了本发明实施例提供的数据同步方法的一种示意图,该方法的执行主体可以为前文所述的其中一个客户端,请参照图2,该方法包括以下步骤:步骤s10,确定与客户端进行数据同步的目标客户端;目标客户端与客户端为同一目标文件所对应的已注册客户端。
35.在本发明实施例中,当客户端打开文件时,客户端需要进行注册。假设客户端访问文件a,此时文件a即为目标文件,由于已经打开目标文件的其他客户端也可能读写目标文件,为保证每个客户端都能访问到目标文件的最新数据,首先获取目标文件对应的已注册客户端,将其作为目标客户端。
36.步骤s20,与目标客户端进行脏数据同步,以使客户端与目标客户端的缓存数据一致。
37.在本发明实施例中,通过客户端与目标客户端之间同步脏数据,以使客户端与目标客户端缓存的数据一致,也就是说,若客户端存在脏数据则客户端将脏数据同步给目标客户端,以使目标客户端将接收到的脏数据保存到本地缓存中;若目标客户端存在脏数据则将目标客户端的脏数据同步过来保存到本地缓存中,由此,保证同一目标文件对应的多个客户端缓存是一致的。
38.综上所述,本发明实施例提供的数据同步方法,首先,确定与客户端进行数据同步的目标客户端;目标客户端与客户端为同一目标文件所对应的已注册客户端;再与目标客户端进行脏数据同步,以使客户端与目标客户端的缓存数据一致。本发明采用多个客户端直接同步脏数据的方式保证客户端缓存的一致性,减少与数据服务器的数据交互,有效降低数据服务器的业务负担和减少数据同步的时间,进而提升分布式文件系统io读写性能。
39.需要说明的是,监控服务器根据客户端的操作相应生成或更新管理数据,其中包括用于记录已被打开文件的注册表,用于记录文件写权限授权情况的锁权限表。
40.作为一种实施方式,监控服务器通过注册表记录文件inode号和打开该文件客户
端的对应关系,注册表中记录着全部已被打开的文件inode号和打开该文件的全部客户端的标识,其中,文件inode号是文件系统中用于标识文件的唯一整数值,客户端的标识可以为客户端名称、客户端id或客户端ip地址,对此本发明不予限定,本发明实施例以客户端ip地址为例进行阐述。
41.假设文件inode号为10的文件已经被客户端b和客户端n打开,其中,客户端b的ip地址为8.8.8.8,客户端n的ip地址为8.8.8.9。监控服务器的注册表中已记录文件inode号为10的客户端注册信息,如表1所示。
42.表1在本发明实施例中,为提升文件的读写性能,可将文件划分成多个特定范围,并使用范围锁来保证多个客户端不在同一时间修改目标文件的同一特定范围。例如根据预设的页大小将文件拆分成页,假设页大小为64m,那么100m的文件就被拆分为2页,页编码为0和1。
43.作为一种实施方式,监控服务器通过锁权限表记录文件inode号、页编码以及持有该文件页写权限的客户端之间的对应关系,假设客户端b的id为1,文件inode号为10,页编码为0的范围锁写权限被客户端b持有。监控服务器的锁权限表中已记录文件inode号为10,页编码为0的范围锁的写权限授权情况,如表2所示。
44.表2可选地,在实际应用中,客户端打开或修改目标文件时,需要与目标客户端进行数据同步。请参照图3,步骤s20的子步骤可以包括:步骤s201,当客户端打开目标文件时,将目标客户端的脏数据同步到客户端的缓存。
45.在本发明实施例中,客户端响应用户请求打开目标文件时,获取目标客户端缓存中没有保存到数据服务器的脏数据,并将获取到的脏数据同步到客户端的缓存中,以保证新打开目标文件的客户端能够访问最新数据。
46.作为一种实施方式,客户端将目标客户端的脏数据同步到本地缓存时,同步信息中可以包括文件inode号、脏数据总页数、脏数据对应的页编码、脏数据的数据长度以及脏数据。
47.步骤s202,当客户端修改目标文件时,将客户端的脏数据同步到目标客户端的缓存。
48.在本发明实施例中,客户端通过追加写、覆盖写或修改属性信息等操作修改目标文件时,都会对应的产生脏数据,将客户端新产生的脏数据同步到目标客户端的缓存中,以保证目标客户端能够读取到最新数据或基于最新数据进行更新。
49.作为一种实施方式,客户端通过异步分发的方式将脏数据同步给目标客户端,异
步同步信息中可以包括文件inode号、脏数据对应的页编码、脏数据的数据长度以及脏数据。
50.可选地,在实际应用中,通过获取目标客户端中目标文件的脏数据构建客户端新打开的目标文件对应缓存数据,以保证客户端能够访问到目标文件的最新数据。请参照图4,步骤s201的子步骤可以包括:步骤s2011,当客户端打开目标文件时,向目标客户端发送目标文件的脏数据查询请求。
51.在本发明实施例中,每个客户端只缓存已打开文件的最新数据,当客户端关闭文件时,客户端才清除已关闭文件的缓存数据,因此,目标客户端可能存在目标文件的脏数据,当客户端打开一个目标文件时,需要向目标客户端发送脏数据查询请求,查询请求中包括目标文件的inode号。
52.目标客户端接收到脏数据查询请求后,利用查询请求中携带的文件inode号查询本地缓存,获取对应的脏数据,并将脏数据返回给客户端。
53.步骤s2012,接收目标客户端基于脏数据查询请求返回的目标文件的脏数据。
54.步骤s2013,将接收到的目标文件的全部脏数据保存到客户端的缓存。
55.在本发明实施例中,客户端向全部目标客户端发送获取脏数据的请求,但可能只有其中一部分目标客户端有脏数据,也可能每个目标客户端都有脏数据或都没有脏数据,因此根据接收到的每个目标客户端返回结果获取目标文件的脏数据,最后将目标文件的所有脏数据都保存到客户端的缓存中。
56.可选地,在实际应用中,将客户端修改目标文件产生的脏数据同步给全部目标客户端,以使每个目标客户端都能够访问目标文件的最新数据。请参照图4,步骤s202的子步骤可以包括:步骤s2021,当客户端修改目标文件时,将待写入数据作为脏数据保存到客户端的缓存。
57.步骤s2022,将脏数据发送给目标客户端,以便目标客户端将客户端的脏数据保存到缓存。
58.在本发明实施例中,当客户端修改目标文件时,会随之生成对应的待写入数据,待写入数据包括目标文件的元数据和数据,将待写入数据作为脏数据保存到客户端本地缓存中,并将脏数据发送给目标客户端,目标客户端将接收到的脏数据保存到缓存中,以便能够访问目标文件的最新数据。
59.需要说明的是,假设目标客户端缓存b中已存在目标文件第n页的脏数据,客户端a修改目标文件第n页产生脏数据,将脏数据发送给目标客户端b,目标客户端b接收到目标文件第n页脏数据同步请求后,查询本地缓存中目标文件第n页的状态,若状态为普通,则将脏数据保存到本地缓存中,若状态为脏数据,则将状态更新为普通,并将脏数据保存到本地缓存中。由此保证,多个客户端不存在重复的脏数据。
60.可选地,在实际应用中,为保证新打开目标文件的客户端能够访问目标文件的最新数据,向监控服务器获取目标客户端,以便将目标客户端的脏数据同步到本地。请参照图5,步骤s10的子步骤可以包括:步骤s101,当客户端打开目标文件时,向监控服务器发送注册请求,以便监控服务
器根据注册请求获取目标文件对应的所有已注册客户端的标识。
61.在本发明实施例中,当客户端打开目标文件时,客户端向监控服务器发送注册请求,注册请求中包括客户端a的标识和目标文件inode号,监控服务器根据接收到的注册请求更新注册表。
62.监控服务器将新注册客户端的标识发送给已注册客户端,以便已注册客户端后续将新产生的脏数据同步给新注册的客户端,从而实现客户端之间缓存一致性。同时,监控服务器为首次注册的客户端分配统一编址的客户端id,以便客户端修改文件时申请写权限使用。最后,监控服务器将新注册的客户端id和目标文件对应的已注册客户端的标识发给新注册的客户端,以便新注册的客户端与目标客户端进行脏数据同步。
63.步骤s102,根据监控服务器返回的目标文件对应的所有已注册客户端的标识,确定目标客户端;目标客户端为目标文件对应的除客户端之外的全部已注册客户端。
64.在本发明实施例中,客户端将监控服务器返回的客户端id和目标文件对应的已注册客户端的标识保存起来,并根据目标文件对应的已注册客户端ip确定目标客户端,其中,目标客户端不包括新注册的客户端。
65.可选地,在实际应用中,为保证同一时间只允许一个客户端修改目标文件的特定范围,修改目标文件前需要申请对应的写权限。请参照图5,步骤s10的子步骤可以包括:步骤s103,当客户端修改目标文件时,向监控服务器发送目标文件的写权限请求,以便监控服务器根据写权限请求返回授权信息;授权信息包括目标文件对应的所有已注册客户端的标识。
66.当客户端对目标文件的某个页写数据时,首先判断自身是否已经持有目标文件该页范围锁的写权限,若已有写权限,则直接将待写入数据写入缓存,并同步给目标客户端;若没有写权限,则向监控服务器发送申请目标文件写权限请求,写权限请求中包括客户端id、文件inode号以及页编码。
67.监控服务器根据接收到的写权限请求中的文件inode号和页编码查询锁权限表,若该范围锁的写权限未授权给其他客户端,则直接将该范围锁的持有者更新为新申请的客户端;若该范围锁的写权限已授权给其他客户端,则向持有该范围锁写权限的客户端发出召回锁写权限的消息,成功召回范围锁的写权限后,将该范围锁的持有者更新为新申请的客户端。同时根据文件inode号从注册表中获取目标文件对应的所有已注册客户端的标识,并将目标文件对应的所有已注册客户端的标识以及授权结果作为授权信息发送给客户端。
68.可见,客户端修改完数据后不会主动释放写权限,继续持有写权限,通过监控服务器召回写权限的方式减少客户端与监控服务器的交互,从而简化锁的实现过程,提升修改数据的效率。
69.需要说明的是,从已注册客户端的标识中剔除新申请客户端的标识这个动作可以由监控服务器执行,也可以由客户端执行。对此,本技术不予限定。客户端被授予目标文件范围锁的写权限后,便可以对该页进行写操作。
70.步骤s104,根据目标文件对应的所有已注册客户端的标识,确定目标客户端;目标客户端为目标文件对应的除客户端之外的全部已注册客户端。
71.在本发明实施例中,根据除客户端之外的已注册客户端的标识确定目标客户端。
72.为保证客户端读取数据的完整性,使用客户端本地读写锁处理客户端本地缓存读
写互斥场景,即需持有本地写锁才能修改客户端的本地缓存或持有本地读锁才能读取本地缓存数据,有效避免读取到部分更新前数据和部分更新后数据。
73.基于同一发明构思,本发明实施例还提供了一种数据同步装置。其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。
74.请参照图6,图6示出了本发明实施例提供的数据同步装置200的方框示意图。数据同步装置200应用于客户端,数据同步装置200包括决策模块201和同步模块202。
75.决策模块201,用于确定与客户端进行数据同步的目标客户端;目标客户端与客户端为同一目标文件所对应的已注册客户端。
76.同步模块202,用于与目标客户端进行脏数据同步,以使客户端与目标客户端的缓存数据一致。
77.综上所述,本发明实施例提供的数据同步装置,包括决策模块和同步模块,其中,决策模块用于确定与客户端进行数据同步的目标客户端;目标客户端与客户端为同一目标文件所对应的已注册客户端。同步模块用于与目标客户端进行脏数据同步,以使客户端与目标客户端的缓存数据一致。本发明采用多个客户端直接同步脏数据的方式保证客户端缓存的一致性,减少与数据服务器的数据交互,有效降低数据服务器的业务负担和减少数据同步的时间,进而提升分布式文件系统io读写性能。
78.可选地,同步模块202,具体用于当客户端打开目标文件时,将目标客户端的脏数据同步到客户端的缓存;当客户端修改目标文件时,将客户端的脏数据同步到目标客户端的缓存。
79.可选地,同步模块202,具体用于当客户端打开目标文件时,向目标客户端发送目标文件的脏数据查询请求;接收目标客户端基于脏数据查询请求返回的目标文件的脏数据;将接收到的目标文件的全部脏数据保存到客户端的缓存。
80.可选地,同步模块202,具体用于当客户端修改目标文件时,将待写入数据作为脏数据保存到客户端的缓存;将脏数据发送给目标客户端,以便目标客户端将客户端的脏数据保存到缓存。
81.可选地,决策模块201,具体用于当客户端打开目标文件时,向监控服务器发送注册请求,以便监控服务器根据注册请求获取目标文件对应的所有已注册客户端的标识;根据监控服务器返回的目标文件对应的所有已注册客户端的标识,确定目标客户端;目标客户端为目标文件对应的除客户端之外的全部已注册客户端。
82.可选地,决策模块201,具体用于当客户端修改目标文件时,向监控服务器发送目标文件的写权限请求,以便监控服务器根据写权限请求返回授权信息;授权信息包括目标文件对应的所有已注册客户端的标识;根据目标文件对应的所有已注册客户端的标识,确定目标客户端;目标客户端为目标文件对应的除客户端之外的全部已注册客户端。
83.请参照图7,图7示出了本发明实施例提供的客户端10的一种方框示意图。客户端10可以是个人电脑(personal computer,pc)、掌上电脑(personal digital assistant,pda)、笔记本电脑、平板电脑等具有数据处理功能的任意设备等。客户端10包括存储器110、处理器120及通信模块130。存储器110、处理器120以及通信模块130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通
讯总线或信号线实现电性连接。
84.其中,存储器110用于存储程序或者数据。存储器110可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。
85.处理器120用于读/写存储器110中存储的数据或程序,并执行相应地功能。例如,当存储器110中存储的计算机程序被处理器120执行时,可以实现上述各实施例所揭示的数据同步方法。
86.通信模块130用于通过网络建立客户端10与其它通信终端之间的通信连接,并用于通过网络收发数据。
87.应当理解的是,图7所示的结构仅为客户端10的结构示意图,客户端10还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。图7中所示的各组件可以采用硬件、软件或其组合实现。
88.本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器120执行时实现上述各实施例所揭示的数据同步方法。
89.在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
90.另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
91.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
92.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种数据同步方法,其特征在于,应用于客户端,所述方法包括:确定与所述客户端进行数据同步的目标客户端;所述目标客户端与所述客户端为同一目标文件所对应的已注册客户端;与所述目标客户端进行脏数据同步,以使所述客户端与所述目标客户端的缓存数据一致。2.根据权利要求1所述的数据同步方法,其特征在于,所述与所述目标客户端进行脏数据同步,以使所述客户端与所述目标客户端的缓存数据一致,包括:当所述客户端打开所述目标文件时,将所述目标客户端的脏数据同步到所述客户端的缓存;当所述客户端修改所述目标文件时,将所述客户端的脏数据同步到所述目标客户端的缓存。3.根据权利要求2所述的数据同步方法,其特征在于,所述当所述客户端打开所述目标文件时,将所述目标客户端的脏数据同步到所述客户端的缓存,包括:当所述客户端打开所述目标文件时,向所述目标客户端发送所述目标文件的脏数据查询请求;接收所述目标客户端基于所述脏数据查询请求返回的所述目标文件的脏数据;将接收到的所述目标文件的全部脏数据保存到所述客户端的缓存。4.根据权利要求2所述的数据同步方法,其特征在于,所述当所述客户端修改所述目标文件时,将所述客户端的脏数据同步到所述目标客户端的缓存,包括:当所述客户端修改所述目标文件时,将待写入数据作为脏数据保存到所述客户端的缓存;将所述脏数据发送给所述目标客户端,以便所述目标客户端将所述客户端的脏数据保存到缓存。5.根据权利要求1所述的数据同步方法,其特征在于,所述确定与所述客户端进行数据同步的目标客户端,包括:当所述客户端打开所述目标文件时,向监控服务器发送注册请求,以便所述监控服务器根据所述注册请求获取所述目标文件对应的所有已注册客户端的标识;根据所述监控服务器返回的所述目标文件对应的所有已注册客户端的标识,确定目标客户端;所述目标客户端为所述目标文件对应的除所述客户端之外的全部已注册客户端。6.根据权利要求1所述的数据同步方法,其特征在于,所述确定与所述客户端进行数据同步的目标客户端,包括:当所述客户端修改所述目标文件时,向监控服务器发送所述目标文件的写权限请求,以便所述监控服务器根据所述写权限请求返回授权信息;所述授权信息包括所述目标文件对应的所有已注册客户端的标识;根据所述目标文件对应的所有已注册客户端的标识,确定目标客户端;所述目标客户端为所述目标文件对应的除所述客户端之外的全部已注册客户端。7.一种数据同步装置,其特征在于,应用于客户端,所述装置包括:决策模块,用于确定与所述客户端进行数据同步的目标客户端;所述目标客户端与所述客户端为同一目标文件所对应的已注册客户端;
同步模块,用于与所述目标客户端进行脏数据同步,以使所述客户端与所述目标客户端的缓存数据一致。8.根据权利要求7所述的数据同步装置,其特征在于,所述同步模块用于当所述客户端打开所述目标文件时,将所述目标客户端的脏数据同步到所述客户端的缓存;当所述客户端修改所述目标文件时,将所述客户端的脏数据同步到所述目标客户端的缓存。9.一种客户端,其特征在于,所述客户端包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于在调用所述计算机程序时执行如权利要求1-6任一项所述的数据同步方法。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-6任一项所述的数据同步方法。

技术总结
本发明实施例提出一种数据同步方法、装置、客户端和计算机可读存储介质,通过确定与客户端进行数据同步的目标客户端;目标客户端与客户端为同一目标文件所对应的已注册客户端;与目标客户端进行脏数据同步,以使客户端与目标客户端的缓存数据一致。本发明采用多个客户端直接同步脏数据的方式保证客户端缓存的一致性,减少与数据服务器的数据交互,有效降低数据服务器的业务负担和减少数据同步的时间,进而提升分布式文件系统IO读写性能。进而提升分布式文件系统IO读写性能。进而提升分布式文件系统IO读写性能。


技术研发人员:熊震
受保护的技术使用者:成都泛联智存科技有限公司
技术研发日:2023.07.10
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐