一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分布式文件访问方法及相关设备与流程

2022-07-30 13:16:21 来源:中国专利 TAG:


1.本技术涉及终端技术领域,尤其涉及一种分布式文件访问方法及相关设备。


背景技术:

2.随着网络技术和信息技术的不断发展,手机、平板、电脑、车载设备等智能终端得到越来越广泛的应用。智能终端在为用户提供方便的数据存储与访问服务的同时,也产生在不同终端之间进行数据访问的需求。现有的分布式文件访问方法(例如smb(server messages block,信息服务块)远程文件读写、nfs(network file system,网络文件系统)基于文件代理模式的文件读写)主要应用于大型集群、中心化、较为理想的网络环境,为设备提供高吞吐量的数据访问。这种分布式文件访问方法通过服务器实现设备间文件访问,对网络稳定性依赖较强,在网络不稳定的情况下,文件访问耗时较长。智能终端一般处于复杂不稳定的网络环境,终端之间不通过服务器通信连接,现有的分布式文件访问方法显然不适用于终端间文件访问的场景。


技术实现要素:

3.本技术实施例公开了一种分布式文件访问方法及相关设备,能够提高电子设备间文件访问的性能。
4.本技术第一方面公开了一种分布式文件访问方法,应用于第一电子设备,所述第一电子设备与第二电子设备通信连接,所述第一电子设备存储有所述第二电子设备上的第一文件的元数据,所述元数据包括文件修改类型和文件修改标签,所述方法包括:
5.接收对所述第一文件的读取指令;
6.读取所述第一文件的文件修改类型和文件修改标签;
7.根据所述第一文件的文件修改类型和所述文件修改标签,对所述第一文件进行读取。
8.电子设备在进行跨设备文件读取时,获取文件的文件修改类型和文件修改标签,根据文件修改类型和文件修改标签对文件进行读取。电子设备可以针对不同的文件修改类型和文件修改标签采取不同的读取策略,提高分布式文件访问性能。
9.在一些可选的实施方式中,所述文件修改类型包括下列至少一种:无终端写类型、单终端写类型、偶发多终端写类型、频繁多终端写类型。
10.在一些可选的实施方式中,所述根据所述文件修改类型和所述文件修改标签,对所述第一文件进行读取包括:
11.若所述第一文件的文件修改类型是频繁多终端写类型,则从所述第二电子设备读取所述第一文件。
12.在一些可选的实施方式中,所述根据所述文件修改类型和所述文件修改标签,对所述第一文件进行读取包括:
13.若所述第一文件的文件修改类型是无终端写类型或单终端写类型或偶发多终端
写类型、所述第一文件不在所述第一电子设备的本地缓存中,则从所述第二电子设备下载所述第一文件缓存到本地,从所述第一电子设备的本地缓存中读取所述第一文件。
14.对于无终端写类型或单终端写类型或偶发多终端写类型的远端文件,本技术将远端文件缓存到本地后进行读取,提高了文件读取的效率。
15.在一些可选的实施方式中,所述根据所述文件修改类型和所述文件修改标签,对所述第一文件进行读取包括:
16.若所述第一文件的文件修改类型是无终端写类型、所述第一文件在所述第一电子设备的本地缓存中,或者若所述第一文件的文件修改类型是单终端写类型或偶发多终端写类型、所述第一文件在所述第一电子设备的本地缓存中、所述第一文件的文件修改标签中的设备id与所述第一电子设备的设备id一致,则从所述第一电子设备的本地缓存中读取所述第一文件。
17.在一些可选的实施方式中,所述根据所述文件修改类型和所述文件修改标签,对所述第一文件进行读取包括:
18.若所述第一文件的文件修改类型是单终端写类型或偶发多终端写类型、所述第一文件在本地缓存中、所述第一文件的文件修改标签中的设备id与第一电子设备的设备id不一致,则从所述第二电子设备获取所述第一文件的文件修改记录,根据所述第一文件的文件修改记录更新所述第一文件,并读取更新后的所述第一文件。
19.在一些可选的实施方式中,所述文件修改记录包括修改位置信息和修改部分,所述根据所述第一文件的文件修改记录更新所述第一文件包括:
20.将所述修改部分按照所述修改位置信息更新到所述第一电子设备本地缓存的所述第一文件中;或者
21.所述文件修改记录包括修改位置信息和修改数据大小,所述根据所述第一文件的文件修改记录更新所述第一文件包括:
22.根据所述修改位置信息和所述修改数据大小从所述第二电子设备获取所述第一文件的修改部分,将所述修改部分按照所述修改位置信息更新到所述第一电子设备本地缓存的所述第一文件中。
23.在一些可选的实施方式中,所述第一电子设备还存储有第二文件、所述第二文件的元数据、所述第二文件的文件修改记录,所述第二电子设备存储有所述第二文件的元数据,所述方法还包括:
24.获取对所述第二文件的修改指令;
25.响应对所述第二文件的修改指令,修改所述第二文件并更新所述第二文件的文件修改记录。
26.在一些可选的实施方式中,所述方法还包括:
27.根据所述第二文件的文件修改记录,更新所述第二文件的元数据中的文件修改类型和文件修改标签;
28.将更新后的所述第二文件的元数据同步到所述第二电子设备。
29.在一些可选的实施方式中,所述方法还包括:
30.获取对所述第一文件的修改指令;
31.响应对所述第一文件的修改指令,生成所述第一文件的文件修改信息,所述文件
修改信息包括修改前的文件修改标签、修改后的文件修改标签、修改位置信息和修改部分;
32.向所述第二电子设备发送文件修改请求,所述文件修改请求携带所述第一文件的文件修改信息。
33.在一些可选的实施方式中,所述根据所述第二文件的文件修改信息、更新后的所述第二文件的文件修改记录,更新所述第二文件的元数据中的文件修改类型和文件修改标签包括:
34.若所述第二文件的文件修改类型为无终端写类型,将所述第二文件的文件修改类型修改为单终端写类型;
35.若所述第二文件的文件修改类型为单终端写类型、固定时间窗口内有两个或者两个以上设备对所述第二文件进行修改、所述两个或者两个以上设备对所述第二文件进行修改的时间间隔小于预设时间间隔,则将所述第二文件的文件修改类型修改为频繁多终端写类型;
36.若所述第二文件的文件修改类型为单终端写类型、固定时间窗口内有两个或者两个以上设备对所述第二文件进行修改、所述两个或者两个以上设备对所述第二文件进行修改的时间间隔大于或等于预设时间间隔,则将所述第二文件的文件修改类型修改为偶发多终端写类型;
37.若所述第二文件的文件修改类型为偶发多终端写类型、固定时间窗口内有两个或者两个以上设备对所述第二文件进行修改、所述两个或者两个以上设备对所述第二文件进行修改的时间间隔小于预设时间间隔,则将所述第二文件的文件修改类型修改为频繁多终端写类型;
38.若所述第二文件的文件修改类型为偶发多终端写类型、固定时间窗口内没有两个或者两个以上设备对所述第二文件进行修改,则将所述第二文件的文件修改类型修改为但终端写类型;
39.若所述第二文件的文件修改类型为频繁多终端写类型、固定时间窗口内有两个或者两个以上设备对所述第二文件进行修改、所述两个或者两个以上设备对所述第二文件进行修改的时间间隔大于或等于预设时间间隔,则将所述第二文件的文件修改类型修改为偶发多终端写类型;
40.若所述第二文件的文件修改类型为频繁多终端写类型、固定时间窗口内没有两个或者两个以上设备对所述第二文件进行修改,则将所述第二文件的文件修改类型修改为单终端写类型。
41.本技术根据不同文件选择不同初始文件修改类型,在不同的文件冲突场景下,自适应切换文件修改类型。相对于传统的文件访问方法,无终端写、单终端写及偶发多终端写场景下,本技术提供的文件访问方法具有更优的性能,在高时延的网络条件下性能提升更加明显。本技术减少单次瞬时的设备实时协议传输,相对于nfs代理模式,可以减少网络交互,并且不存在写独占情况,本技术在单设备网络不稳定情况下,不影响其他设备的操作性能。
42.在一些可选的实施方式中,所述根据所述第二文件的文件修改信息、更新后的所述第二文件的文件修改记录,更新所述第二文件的元数据中的文件修改类型和文件修改标签还包括:
43.若更新后的所述第二文件的文件修改类型为单终端写类型或者偶发多终端写类型、所述第二文件的文件修改信息中的修改前的文件修改标签与所述第二文件的元数据中的文件修改标签不一致,或者若更新后的所述第二文件的文件修改类型为频繁多终端写类型,则为所述第二文件生成新的文件修改标签,将所述第二文件的元数据中的文件修改标签更新为所述新的文件修改标签;
44.若更新后的所述第二文件的文件修改类型为单终端写类型或者偶发多终端写类型、所述第二文件的文件修改信息中的修改前的文件修改标签与所述第二文件的元数据中的文件修改标签一致,则将所述第二文件的元数据中的文件修改标签更新为所述第二文件的文件修改信息中的修改后的文件修改标签。
45.在一些可选的实施方式中,所述修改位置信息包括修改位置偏移量。
46.本技术第二方面公开了一种分布式文件访问装置,应用于第一电子设备,所述第一电子设备与第二电子设备通信连接,所述第一电子设备存储有所述第二电子设备上的第一文件的元数据,所述元数据包括文件修改类型和文件修改标签,所述装置包括:
47.接收模块,用于接收对所述第一文件的读取指令;
48.读取模块,用于读取所述第一文件的文件修改类型和文件修改标签,根据所述第一文件的文件修改类型和所述文件修改标签,对所述第一文件进行读取。
49.在一些可选的实施方式中,所述文件修改类型包括下列至少一种:无终端写类型、单终端写类型、偶发多终端写类型、频繁多终端写类型。
50.在一些可选的实施方式中,所述读取模块用于:
51.若所述第一文件的文件修改类型是频繁多终端写类型,则从所述第二电子设备读取所述第一文件。
52.在一些可选的实施方式中,所述读取模块用于:
53.若所述第一文件的文件修改类型是无终端写类型或单终端写类型或偶发多终端写类型、所述第一文件不在所述第一电子设备的本地缓存中,则从所述第二电子设备下载所述第一文件缓存到本地,从所述第一电子设备的本地缓存中读取所述第一文件。
54.在一些可选的实施方式中,所述读取模块用于:
55.若所述第一文件的文件修改类型是无终端写类型、所述第一文件在所述第一电子设备的本地缓存中,或者若所述第一文件的文件修改类型是单终端写类型或偶发多终端写类型、所述第一文件在所述第一电子设备的本地缓存中、所述第一文件的文件修改标签中的设备id与所述第一电子设备的设备id一致,则从所述第一电子设备的本地缓存中读取所述第一文件。
56.在一些可选的实施方式中,所述读取模块用于:
57.若所述第一文件的文件修改类型是单终端写类型或偶发多终端写类型、所述第一文件在本地缓存中、所述第一文件的文件修改标签中的设备id与第一电子设备的设备id不一致,则从所述第二电子设备获取所述第一文件的文件修改记录,根据所述第一文件的文件修改记录更新所述第一文件,并读取更新后的所述第一文件。
58.在一些可选的实施方式中,所述文件修改记录包括修改位置信息和修改部分,所述读取模块用于:
59.将所述修改部分按照所述修改位置信息更新到所述第一电子设备本地缓存的所
述第一文件中;或者
60.所述文件修改记录包括修改位置信息和修改数据大小,所述读取模块用于:
61.根据所述修改位置信息和所述修改数据大小从所述第二电子设备获取所述第一文件的修改部分,将所述修改部分按照所述修改位置信息更新到所述第一电子设备本地缓存的所述第一文件中。
62.在一些可选的实施方式中,所述第一电子设备还存储有第二文件、所述第二文件的元数据、所述第二文件的文件修改记录,所述第二电子设备存储有所述第二文件的元数据,所述装置还包括:
63.设备内修改模块,用于获取对所述第二文件的修改指令;
64.所述设备内修改模块,还用于响应对所述第二文件的修改指令,修改所述第二文件并更新所述第二文件的文件修改记录。
65.在一些可选的实施方式中,所述设备内修改模块,还用于根据所述第二文件的文件修改记录,更新所述第二文件的元数据中的文件修改类型和文件修改标签,将更新后的所述第二文件的元数据同步到所述第二电子设备。
66.在一些可选的实施方式中,所述装置还包括:
67.跨设备修改模块,用于获取对所述第一文件的修改指令,响应对所述第一文件的修改指令,生成所述第一文件的文件修改信息,所述文件修改信息包括修改前的文件修改标签、修改后的文件修改标签、修改位置信息和修改部分,向所述第二电子设备发送文件修改请求,所述文件修改请求携带所述第一文件的文件修改信息。
68.本技术第三方面公开了一种分布式文件访问方法,应用于第二电子设备,所述第二电子设备与第一电子设备通信连接,所述第二电子设备存储有第一文件、所述第一文件的元数据、所述第一文件的文件修改记录,所述元数据包括文件修改类型和文件修改标签,所述方法包括:
69.将所述第一文件的元数据同步到所述第一电子设备;
70.若接收到所述第一电子设备发送的修改记录获取请求,向所述第一电子设备返回所述第一文件的文件修改记录。
71.在一些可选的实施方式中,所述方法还包括:
72.若接收到所述第一电子设备发送的对所述第一文件的文件修改请求,根据所述文件修改请求修改所述第一文件;
73.更新所述第一文件的文件修改记录;
74.更新所述第一文件的元数据;
75.将更新后的所述第一文件的元数据同步到所述第一电子设备。
76.本技术第四方面公开了一种分布式文件访问装置,应用于第二电子设备,所述第二电子设备与第一电子设备通信连接,所述第二电子设备存储有第一文件、所述第一文件的元数据、所述第一文件的文件修改记录,所述元数据包括文件修改类型和文件修改标签,所述装置包括:
77.同步模块,用于将所述第一文件的元数据同步到所述第一电子设备;
78.修改响应模块,用于若接收到所述第一电子设备发送的修改记录获取请求,向所述第一电子设备返回所述第一文件的文件修改记录。
79.在一些可选的实施方式中,所述修改响应模块,还用于若接收到所述第一电子设备发送的对所述第一文件的文件修改请求,根据所述文件修改请求修改所述第一文件,更新所述第一文件的文件修改记录和元数据,将更新后的所述第一文件的元数据同步到所述第一电子设备。
80.本技术第五方面公开了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面或第三方面所述的分布式文件访问方法。
81.本技术第六方面公开了一种计算机可读存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如第一方面或第三方面所述的分布式文件访问方法。
82.本技术第七方面公开了一种电子设备,所述电子设备包括处理器和存储器,所述存储器,用于存储指令,所述处理器用于调用所述存储器中的指令,使得所述电子设备执行如第一方面或第三方面所述的分布式文件访问方法。
83.本技术第八方面公开了一种芯片系统,该芯片系统应用于电子设备;芯片系统包括接口电路和处理器;接口电路和处理器通过线路互联;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行该计算机指令时,芯片系统执行如第一方面或第三方面所述的分布式文件访问方法。
84.应当理解地,上述提供的第二方面与第四方面的分布式文件访问装置、第五方面的计算机程序产品、第六方面所述的计算机可读存储介质、第七方面所述的电子设备及第八方面所述的芯片系统均与上述第一方面与第二方面的方法对应,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
85.图1是本技术实施例公开的分布式文件访问方法的应用场景示意图。
86.图2是实现本技术分布式文件访问方法的电子设备的软件架构图。
87.图3是本技术使用的元数据的示意图。
88.图4是初始化文件修改类型的示意图。
89.图5是本技术使用的文件修改标签、文件修改信息、文件修改记录的示意图。
90.图6是根据本技术分布式文件访问方法,跨设备修改文件的示意图。
91.图7是根据本技术分布式文件访问方法,跨设备读取文件的策略及分析。
92.图8是根据本技术分布式文件访问方法,跨设备读取无终端写类型文件的示意图。
93.图9是根据本技术分布式文件访问方法,跨设备读写单终端写类型文件的示意图。
94.图10、11是根据本技术分布式文件访问方法,跨设备读写偶发多终端写类型的文件的示意图。
95.图12是根据本技术分布式文件访问方法,跨设备读写频繁多终端写类型的文件的示意图。
96.图13是根据本技术分布式文件访问方法,第一电子设备读取第二电子设备上的文件的流程图。
97.图14是根据本技术分布式文件访问方法,第一电子设备修改第一电子设备上的第二文件的流程图。
98.图15是根据本技术分布式文件访问方法,第一电子设备修改第二电子设备上的第一文件的流程图。
99.图16是根据本技术分布式文件访问方法,第一电子设备根据第二文件的文件修改信息、更新后的第二文件的文件修改记录更新第二文件的元数据中的文件修改类型和文件修改标签(即图14中1404)的细化流程图。
100.图17是根据本技术分布式文件访问方法,发生写冲突时的处理流程示意图。
101.图18是本技术实施例公开的应用于第一电子设备的分布式文件访问装置的功能模块示意图。
102.图19是本技术实施例公开的应用于第二电子设备的分布式文件访问装置的功能模块示意图。
103.图20是本技术实施例公开的电子设备的结构示意图。
具体实施方式
104.为了便于理解,示例性的给出了部分与本技术实施例相关概念的说明以供参考。
105.需要说明的是,本技术中“至少一个”是指一个或者多个,“多个”是指两个或多于两个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。本技术的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不是用于描述特定的顺序或先后次序。
106.为了更好地理解本技术实施例公开的分布式文件访问方法及相关设备,下面首先对本技术分布式文件访问方法的应用场景进行描述。
107.图1是本技术实施例公开的分布式文件访问方法的应用场景示意图。如图1所示,多个电子设备10通过网络(即分布式网络)通信连接,电子设备10根据文件修改类型、文件修改标签进行设备间文件访问,以提高电子设备10之间文件访问的性能。
108.其中,电子设备10可以是手机、平板、电脑、车载设备、大屏、智能手环、智能手表等。如图1所示,分布式网络中的电子设备10包括手机、平板和大屏。
109.可以为多个电子设备10组建分布式网络,可以采用本技术分布式文件访问方法在分布式网络中的任意两个电子设备10之间进行文件访问。分布式网络中的每个电子设备10可以将本地文件提供给其他电子设备访问,也可以访问其他电子设备中的文件。
110.电子设备10之间可以是无线连接也可以是有线连接。电子设备10之间可以是稳定的通信连接,也可以是不稳定的通信连接。在本技术的一个实施例中,电子设备10之间可以进行短距离无线通信。例如,电子设备10之间可以通过蓝牙、wi-fi、近场通信(near field communication,nfc)、zigbee技术、红外数据组织(infrared data association,irda)技术、超宽带(ultra wideband,uwb)技术、无线通用串行总线(universal serial bus,usb)等方式进行短距离无线通信。
111.图2是实现本技术分布式文件访问方法的电子设备10的软件架构图。
112.如图2所示,电子设备10可以包括分布式文件系统驱动100、通信模块101、应用102、分布式文件服务端103、分布式文件客户端104、分布式元数据服务端105、分布式数据库106。电子设备10可以包括内核空间11和用户空间12。在本技术的一个实施例中,分布式
文件系统驱动100和通信模块101位于电子设备10的内核空间11,应用102、分布式文件服务端103、分布式文件客户端104、分布式元数据服务端105、分布式数据库106位于电子设备10的用户空间12。
113.在本技术的其他实施例中,分布式文件系统驱动100、分布式文件服务端103、分布式文件客户端104、分布式元数据服务端105、分布式数据库106可以采用其他的分布方式。例如,分布式文件系统驱动100、分布式文件服务端103、分布式文件客户端104、分布式元数据服务端105、分布式数据库106可以都位于内核空间11。又如,分布式文件系统驱动100可以位于内核空间11,分布式文件服务端103、分布式文件客户端104、分布式元数据服务端105、分布式数据库106可以位于用户空间12。
114.分布式文件系统驱动100用于提供分布式文件访问接入的能力。
115.通信模块101用于与其他电子设备通信。
116.应用102可以是任意能够在电子设备10上运行的应用,例如工具类应用、社交聊天类应用、媒体类应用等。电子设备10通过应用102访问文件。例如,电子设备10包括音乐播放器,电子设备10通过音乐播放器播放其他电子设备中的音频文件。又如,电子设备10包括文本编辑器,电子设备10通过文本编辑器编辑其他电子设备中的文本。
117.分布式文件服务端103用于提供本地文件管理及访问的能力。
118.分布式文件客户端104用于与分布式文件服务端103交互,以实现设备间文件访问。例如,设备b的分布式文件客户端104与设备a的分布式文件服务端103交互,以访问设备a上的文件。
119.分布式元数据服务端105负责同步和管理各个电子设备的元数据。分布式元数据服务端105可以生成分布式文件目录,在分布式文件目录中显示各个电子设备的文件。
120.分布式数据库106用于存储文件的元数据。
121.每个电子设备(例如设备b)存储的元数据包括本地文件的元数据,还包括远端设备(例如设备a)同步过来的远端文件(例如设备a上的文件)的元数据。
122.文件的元数据用于记录文件的属性信息,例如文件名、文件大小、文件位置、最后修改时间等信息。在对文件进行操作(例如读取、编辑)之前,需要获得文件的文件位置信息,根据文件位置信息定位到文件的位置,从该位置获得文件的内容。例如,设备b根据从设备a同步过来的元数据,可以获取设备a上的文件的文件位置信息,根据文件位置信息访问设备a上的文件。
123.本技术分布式文件访问在文件的元数据中增加了文件修改类型和文件修改标签两个字段,以提高跨设备文件访问的性能,文件修改类型和文件修改标签的具体内容参见图3的相关描述。
124.图3是本技术使用的元数据的示意图。
125.如图3所示,本技术使用的元数据包括文件修改类型(表示为file type)和文件修改标签(表示为tag)两个字段。电子设备(例如设备a)确定本地文件的元数据中的文件修改类型和文件修改标签,通过分布式元数据服务端将包含文件修改类型和文件修改标签的元数据同步到其他电子设备(例如设备b)。
126.在本技术的一个实施例中,文件修改类型包括无终端写类型、单终端写类型、偶发多终端写类型和频繁多终端写类型。
127.应当理解,在本技术的其他实施例中,可以使用其他的文件修改类型。例如,文件修改类型包括只读类型、单终端写类型、偶发多终端写类型和频繁多终端写类型。文件修改类型的数量可以更多(例如五种)或更少(例如三种)。例如,文件修改类型包括只读类型、无终端写类型、单终端写类型、多终端写类型。
128.无终端写类型:在固定时间窗口(例如当前时间前10分钟)内,没有设备对文件进行修改。例如,用户使用设备b读取设备a的媒体类文件,此媒体类文件在固定时间窗口内未进行过修改,为无终端写类型。
129.单终端写类型:在固定时间窗口内,有一个设备对文件进行修改。例如,用户使用设备b修改设备a的文档类文件,在固定时间窗口内,没有其他设备修改该文档类文件,此文档类文件为单终端写类型。
130.偶发多终端写类型:在固定时间窗口内,有两个或者两个以上设备对文件进行修改,不同设备修改文件的时间间隔大于或等于预设时间间隔(例如10秒)或者文件的修改次数小于或等于预设次数或者对文件进行修改的设备数量小于或等于预设个数。例如,用户使用设备b修改设备a的文档类文件,然后又使用设备c继续修改设备a的文档类文件,设备b修改文档类文件与设备c修改文档类文件的时间间隔大于10秒,不存在设备b和设备c同时修改设备a中的文档类文件的情况,此文档类文件为偶发多终端写类型。
131.频繁多终端写类型:在固定时间窗口内,有两个或者两个以上设备对文件进行修改,不同设备修改文件的时间间隔小于预设时间间隔或者文件的修改次数大于预设次数或者对文件进行修改的设备数量大于预设个数。例如,第一用户在设备b、第二用户在设备c同时修改设备a的文档类文件,此文档类文件为频繁多终端写类型。
132.需要说明的是,在确定文件修改类型时,对文件(例如设备a上的文件)进行修改的设备可以是文件所属设备(例如设备a),也可以是远端设备(例如设备b)。例如,设备a包括文件test,在固定时间窗口内,设备a和设备b对文件test进行修改,则有两个设备对文件test进行修改。
133.在本技术的一个实施例中,电子设备可以按照预设更新时间间隔,对本地文件的文件修改类型进行更新。每次更新时,若固定时间窗口内,没有设备对文件进行修改,将文件修改类型修改为无终端写类型;若固定时间窗口内,有一个设备对文件进行修改,将文件修改类型修改为单终端写类型;若固定时间窗口内,有两个或者两个以上设备对文件进行修改,不同设备修改文件的时间间隔大于或等于预设时间间隔或者文件的修改次数小于或等于预设次数或者对文件进行修改的设备数量小于或等于预设个数,将文件修改类型修改为偶发多终端写类型;若固定时间窗口内,有两个或者两个以上设备对文件进行修改,不同设备修改文件的时间间隔小于预设时间间隔或者文件的修改次数大于预设次数或者对文件进行修改的设备数量大于预设个数,将文件修改类型修改为频繁多终端写类型。
134.可以为每个文件初始化一个文件修改类型,在文件访问过程中,分布式文件服务端根据文件的修改情况对元数据中的文件修改类型进行更新。
135.图4是初始化文件修改类型的示意图。可以根据文件的扩展名初始化文件修改类型,例如,参阅图4所示,可以将.mp4、.mp3等媒体类文件和.jpg、.bmp等图片类文件初始化为无终端写类型,将.doc、.ppt、.xls等文档类文件初始化为单终端写类型。
136.在本技术的一个实施例中,可以在电子设备上显示文件的初始化设置界面,用户
通过初始化设置界面可以设置或调整文件初始的文件修改类型。例如,每个文件根据其扩展名预设了初始的文件修改类型(例如.mp4文件初始的文件修改类型预设为无终端写类型),用户可以通过初始化设置界面调整文件初始的文件修改类型(例如用户可以将.mp4文件的文件修改类型调整为单终端写类型)。
137.图5a是本技术使用的文件修改标签的示意图。
138.文件修改标签用于标识电子设备对文件的每一次修改。元数据中的文件修改标签表示文件最近一次的修改。
139.参见图5a所示,在本技术的一个实施例中,文件修改标签包括设备标识符(identifier,id)和时间戳,以保证文件修改标签的唯一性。设备id表示对文件进行修改的设备,时间戳表示文件的修改时间。
140.在本技术的其他实施例中,文件修改标签可以包括设备id和修改编号。例如设备a对文件进行多次修改,第一次修改对应的文件修改标签可以是a 1,第二次修改对应的文件修改标签可以是a 2,其中a是设备id,1、2是修改编号。
141.当电子设备(例如设备a)存储一个新的文件(例如存储新建的文档类文件,或者存储下载的音频类文件)时,可以将文件修改标签中的设备id设置为电子设备(例如设备a)的设备id,将时间戳设置为文件的存储时间。
142.电子设备对文件进行修改后,对文件生成新的文件修改标签。例如,设备b对设备a上的文件进行修改,修改前文件的文件修改标签为a 1,修改后生成新的文件修改标签b 1。
143.图5b是本技术使用的文件修改信息的示意图。
144.电子设备在对远端设备的文件进行修改时将文件修改信息发送给远端设备。参见图5b所示,在本技术的一个实施例中,文件修改信息包括修改前的文件修改标签、修改后的文件修改标签、修改位置信息和修改部分。图中base tag表示修改前的文件修改标签,new tag表示修改后的文件修改标签,offset表示修改位置信息,data表示修改部分。
145.修改前的文件修改标签就是元数据中的文件修改标签。修改后的文件修改标签就是针对本次修改生成的新的文件修改标签。
146.修改位置信息表示文件的修改位置。修改位置信息可以是修改位置偏移量。
147.修改部分表示文件的修改内容。
148.在本技术的另一个实施例中,文件修改信息还可以包括修改数据大小。例如,电子设备修改了文件一个字节的数据,则修改数据大小为一个字节。修改数据大小可以用size表示。
149.电子设备对文件进行修改时,电子设备生成文件修改信息。若是跨设备文件修改,电子设备还会将文件修改信息发送给文件所属设备。例如,设备b修改了设备a上的文件后,生成文件修改信息,并且将文件修改信息发送给设备a。
150.图5c是本技术使用的文件修改记录的示意图。
151.电子设备存储本地文件的文件修改记录,用于表示文件的修改历史。
152.参见图5c所示,在本技术的一个实施例中,电子设备根据本地文件最近的n条文件修改信息生成文件修改记录,每条记录对应一条文件修改信息,表示对文件的一次修改。n为自然数,可以根据需要设置n的数值,例如取值为10。在本技术的一个实施例中,文件修改记录可以包括修改后的文件修改标签(例如图中new tag 1、new tag 2、

、new tag n)、修
改位置信息(例如图中offset 1、offset 2、

、offset n)和修改部分(例如图中data 1、data 2、

、data n)。在本技术的另一个实施例中,文件修改记录可以包括修改后的文件修改标签、修改位置信息和修改数据大小。
153.电子设备将文件修改记录中最后一条记录中的修改后的文件修改标签(例如图中new tag n)确定为文件的元数据中的文件修改标签。
154.图6是根据本技术分布式文件访问方法,跨设备修改文件的示意图。图中以设备b修改设备a中的文件为例进行说明。
155.在设备b修改设备a中的文件之前,设备a将文件的元数据同步到设备b,元数据包括文件修改类型(图中表示为file type 1)和文件修改标签(图中表示为tag x)。
156.在设备b对文件进行修改后,设备b将文件修改信息发送给设备a。如图中所示,设备b发送给设备a的文件修改信息是(base tag x,new tag y,offset,data),其中,base tag x是修改前的文件修改标签,即设备a同步到设备b的文件修改标签;new tag y是修改后的文件修改标签,包括设备b的设备id和设备b修改文件的时间戳;offset是修改位置信息(修改位置偏移量);data是修改部分。
157.设备a接收到文件修改信息后,根据文件修改信息更新文件的文件修改记录,根据文件修改信息中的修改位置信息和修改部分修改本地存储的文件,根据文件修改信息中的文件修改类型、修改前的文件修改标签、修改后的文件修改标签修改本地存储的文件修改类型和文件修改标签,将修改后的文件修改类型和文件修改标签(例如(file type 2,tag y))同步到设备b。
158.图7是根据本技术分布式文件访问方法,跨设备读取文件的策略及分析。
159.对于无终端写类型的文件,电子设备从远端设备下载文件缓存到本地,从缓存中读取文件。若文件大小小于或等于预设大小(即小文件),可以缓存整个文件,如果文件大小大于预设大小(即大文件,例如媒体类文件),可以缓存一部分文件(即分块缓存)。电子设备只需要从本地存储的元数据中检查文件的文件修改类型(即检查file type字段),以确定是否是无终端写类型。
160.对于单终端写类型的文件,电子设备将文件从远端设备缓存到本地,从缓存中读取文件。电子设备除了从本地存储的元数据中检查文件的文件修改类型,以确定是否是单终端写类型,还要从本地存储的元数据中检查文件的文件修改标签。若文件修改标签中的设备id不是本机id,电子设备向远端设备请求文件修改记录,根据文件修改记录将本地缓存的文件更新为与远端设备中的文件一致。
161.对于偶发多终端写类型的文件,电子设备将文件从远端设备缓存到本地,从缓存中读取文件。电子设备除了从本地存储的元数据中检查文件的文件修改类型,还要从本地存储的元数据中检查文件的文件修改标签。若文件修改标签中的设备id不是本机id,向远端设备请求文件修改记录,根据文件修改记录将本地缓存的文件更新为与远端设备中的文件一致。
162.对于频繁多终端写类型的文件,电子设备不缓存文件,从远端设备读取文件。
163.需要说明的是,电子设备跨设备读取无终端写类型、单终端写类型或偶发多终端写类型的文件时,首先判断缓存中是否有所需的文件/数据块,如果没有,则从远端设备下载对应的文件/数据块缓存到本地。电子设备可以一直保留缓存的文件,直到文件缓存空间
超过预设阈值,或者文件超时老化时进行删除。
164.电子设备跨设备读取单终端写类型或偶发多终端写类型的文件时,电子设备还要从本地存储的元数据中检查文件的文件修改标签,是指在缓存中有所需的文件/数据块时,还要从本地存储的元数据中检查文件的文件修改标签。若缓存中没有所需的文件/数据块,则只需从远端设备下载对应的文件/数据块缓存到本地进行读取。
165.关于跨设备读取文件的更多细节可以参阅图13所示。
166.图7还比较了不同文件修改类型的场景频率、性能等信息,具体参见图中所示。
167.图8是根据本技术分布式文件访问方法,跨设备读取无终端写类型的文件的示意图。对于无终端写类型的远端文件(设备a上的文件),电子设备(设备b)通过本地缓存读取文件。
168.根据图8可知,通过设备b上的分布式文件客户端和设备a上的分布式文件服务端,设备b读取设备a上无终端写类型的文件。跨设备读取无终端写类型的文件更多细节请参阅图13及相关描述。
169.需要说明的是,图8仅示出设备b读取设备a上无终端写类型的文件,应当理解,设备b可以修改/写设备a上无终端写类型的文件。
170.图9是根据本技术分布式文件访问方法,跨设备读写单终端写类型的文件的示意图。对于单终端写类型的远端文件(设备a上的文件),电子设备(设备b)通过本地缓存读写文件。
171.根据图9可知,通过设备b上的分布式文件客户端和设备a上的分布式文件服务端,设备b读写设备a上单终端写类型的文件。图9仅示出设备b通过本地缓存读写设备a上的单终端写类型,更多细节请参阅图13、15及相关描述。
172.图10、11是根据本技术分布式文件访问方法,跨设备读写偶发多终端写类型的文件的示意图,其中,图10展示了存在写冲突时修改后的缓存数据,图11展示了存在写冲突时修改后再读的缓存数据。
173.根据图10、11可知,通过设备b上的分布式文件客户端和设备a上的分布式文件服务端,设备b读写设备a上偶发多终端写类型的文件。
174.对于偶发多终端写类型的远端文件(设备a上的文件),电子设备(设备b、设备c)通过本地缓存读写文件。参见图10所示,设备b、设备c对设备a上的文件进行修改且存在写冲突时,设备b、设备c缓存各自修改后的文件。参见图11所示,设备b、设备c对设备a上的文件修改(存在写冲突)后再读取文件时,设备b、设备c更新本地缓存的文件,使本地缓存的文件与设备a上的文件一致。
175.写冲突是指多个设备(例如设备b、设备c)对同一远端文件(例如设备a上的文件)进行修改,一个设备在修改文件时,远端文件被其他设备修改,导致该设备中缓存的文件与远端文件不一致。本技术通过文件修改标签检测是否存在写冲突。
176.需要说明的是,设备b、设备c对设备a上的文件的修改位置可以相同(包括部分相同)也可以不同,图上示出的是修改位置不同的情况。对于修改位置相同和不同两种情况,设备a、设备b、设备c的处理流程相同。跨设备读写偶发多终端写类型的文件的更多细节请参阅图13、15及相关描述。
177.图12是根据本技术分布式文件访问方法,跨设备读写频繁多终端写类型的文件的
示意图。对于频繁多终端写类型的远端文件(例如图中的设备a上的文件),电子设备(例如图中的设备b、设备c)不对文件进行本地缓存,每次从远端设备(例如图中的设备a)读写文件。
178.根据图12可知,通过设备b上的分布式文件客户端和设备a上的分布式文件服务端,设备b读写设备a上频繁多终端写类型的文件。
179.下面以第一电子设备和第二电子设备为例,说明根据本技术分布式文件访问方法,电子设备如何进行高效的文件访问。第一电子设备存储有第二文件、第二文件的元数据、第二文件的文件修改记录。第二电子设备存储有第一文件、第一文件的元数据、第一文件的文件修改记录。第一电子设备还存储有第二电子设备同步过来的第一文件的元数据。第二电子设备还存储有第一电子设备同步过来的第二文件的元数据。元数据包括文件修改类型和文件修改标签。
180.第一电子设备和第二电子设备可以在首次连接时互相同步元数据,即第一电子设备将本地文件(包括第二文件)的元数据同步到第二电子设备,第二电子设备将本地文件(包括第一文件)的元数据同步到第一电子设备。
181.或者,第一电子设备可以向第二电子设备发送元数据同步请求。第二电子设备接收到元数据同步请求后,将第二电子设备的本地文件的元数据同步到第一电子设备。同理,第二电子设备可以向第一电子设备发送元数据同步请求。第一电子设备接收到元数据同步请求后,将第一电子设备的本地文件的元数据同步到第二电子设备。
182.图13是根据本技术分布式文件访问方法,第一电子设备(例如设备b)读取第二电子设备(例如设备a)上的第一文件(即跨设备读取文件)的流程图。
183.1301,第一电子设备接收对第一文件的读取指令。
184.可以在第一电子设备显示分布式文件目录,各个电子设备(例如图1所示电子设备10)的文件显示在分布式文件目录中,用户从分布式文件目录点击第二电子设备的第一文件,以发出对第一文件的读取指令。
185.或者,第一电子设备(例如设备b)可以接收其他电子设备(例如设备c)对第一文件(例如设备a上的文件)的读取指令。
186.1302,第一电子设备读取第一电子设备存储的第一文件的文件修改类型和文件修改标签。
187.在本技术的一个实施例中,第一电子设备可以设置有分布式数据库,本地文件和远端文件的元数据存储在分布式数据库中,第一电子设备从分布式数据库中读取第一文件的元数据,从第一文件的元数据中读取第一文件的文件修改类型。
188.1303,第一电子设备判断第一文件的文件修改类型是否为无终端写类型。
189.1304,若第一文件的文件修改类型为无终端写类型,第一电子设备判断第一文件是否在本地缓存中。
190.若第一文件在本地缓存中,执行1313。
191.1305,若第一文件不在本地缓存中,第一电子设备从第二电子设备下载第一文件并缓存到本地,然后执行1313。
192.1306,若第一文件的文件修改类型不是无终端写类型,第一电子设备判断第一文件的文件修改类型是否为频繁多终端写类型。
193.1307,若第一文件的文件修改类型为频繁多终端写类型,第一电子设备从第二电子设备读取第一文件。
194.第一电子设备可以向第二电子设备发送文件读取请求,以读取第二电子设备中的第一文件。第二电子设备接收到文件读取请求后,将第一文件发送给第一电子设备。
195.1308,若第一文件的文件修改类型不是频繁多终端写类型,第一电子设备判断第一文件的文件修改类型是否为单终端写类型或偶发多终端写类型。
196.若第一文件的文件修改类型不是单终端写类型或偶发多终端写类型,表明第一文件的文件修改类型有误,流程结束。
197.1309,若第一文件的文件修改类型为单终端写类型或偶发多终端写类型,第一电子设备判断第一文件是否在本地缓存中。
198.若第一文件不在本地缓存中,执行1305、1313。
199.1310,若第一文件在本地缓存中,第一电子设备判断第一文件的文件修改标签中的设备id是否为第一电子设备的设备id。
200.若第一文件的文件修改标签中的设备id为第一电子设备的设备id,执行1313。
201.1311,若第一文件的文件修改标签中的设备id不是第一电子设备的设备id,第一电子设备从第二电子设备获取第一文件的文件修改记录。
202.第一电子设备可以向第二电子设备发送修改记录获取请求,接收第二电子设备返回的第一文件的文件修改记录。
203.1312,第一电子设备根据文件修改记录将本地缓存的第一文件更新为与第二电子设备中的第一文件一致。
204.在本技术的一个实施例中,文件修改记录包括修改位置信息和修改部分,第一电子设备将所述修改部分按照所述修改位置信息(例如修改位置偏移量)更新到所述第一电子设备本地缓存的所述第一文件中。例如,第一电子设备本地缓存的第一文件为123456799,文件修改记录中的修改位置偏移量为0,修改部分为55,则第一电子设备将本地缓存的第一文件更新为553456799。
205.在本技术的另一个实施例中,文件修改记录包括修改位置信息和修改数据大小,第一电子设备根据文件修改记录中的修改位置信息(例如修改位置偏移量)和修改数据大小从第二电子设备获取修改部分,根据从第二电子设备获取的修改部分更新本地缓存的第一文件。例如,第一电子设备本地缓存的第一文件为123456799,文件修改记录中的修改位置偏移量为0,修改数据大小为2(表示两个数字发生变化),则第一电子设备从第二电子设备获取修改部分55,将本地缓存的第一文件更新为553456799。
206.1313,第一电子设备从本地缓存中读取第一文件。
207.应当理解,图13描述的实施例中,第一电子设备依次判断第一文件的文件修改类型是否为无终端写类型、是否为单终端写类型、是否为偶发多终端写类型、是否为频繁多终端写类型。在本技术其他的实施例中,对第一文件的文件修改类型的判断顺序可以改变,例如,可以依次判断第一文件的文件修改类型是否为频繁多终端写类型、是否为偶发多终端写类型、是否为单终端写类型、是否为无终端写类型。或者,可以在一个步骤中直接判断第一文件的文件修改类型是无终端写类型、单终端写类型、偶发多终端写类型、频繁多终端写类型中的哪一个,根据判断结果执行相应的处理。
208.需要说明的是,若1301中,第一电子设备(例如设备b)接收的是其他电子设备(例如设备c)对第一文件(例如设备a上的文件)的读取指令,则第一电子设备从本地缓存中读取第一文件后,将第一文件发送给其他电子设备。
209.图13所示的实施例中,电子设备在进行跨设备文件读取时,获取文件的文件修改类型和文件修改标签,根据文件修改类型和文件修改标签对文件进行读取。电子设备可以针对不同的文件修改类型和文件修改标签采取不同的读取策略,提高分布式文件访问性能。
210.对于无终端写类型或单终端写类型或偶发多终端写类型的远端文件,本技术的实施例中将远端文件缓存到本地后进行读取,提高了文件读取的效率。
211.图14是根据本技术分布式文件访问方法,第一电子设备修改第一电子设备上的第二文件的流程图。
212.1401,第一电子设备接收对第二文件的修改指令。
213.可以在第一电子设备显示分布式文件目录,分布式网络中各个电子设备的文件显示在分布式文件目录中,用户从分布式文件目录打开第二文件进行修改,发出对第二文件的修改指令。
214.或者,第一电子设备(例如设备b)可以接收其他电子设备(例如设备c)对第二文件的修改指令。
215.1402,第一电子设备生成第二文件的文件修改信息。
216.生成的文件修改信息可以包括修改前的文件修改标签、修改后的文件修改标签、修改位置信息(例如修改位置偏移量)和修改部分。
217.例如,第一电子设备生成文件修改信息(base tag(n 1),new tag(n 1),offset(n 1),data(n 1))。其中,base tag(n 1)是修改前的文件修改标签;new tag(n 1)是修改后的文件修改标签;offset(n 1)是修改位置偏移量;data(n 1)是修改部分。
218.1403,第一电子设备根据第二文件的文件修改信息更新第二文件的文件修改记录。
219.例如,文件修改记录包括修改后的文件修改标签、修改位置信息和修改部分,更新前的第二文件的文件修改记录如图5c所示,第一电子设备将(new tag(n 1),offset(n 1),data(n 1))添加到更新前的第二文件的文件修改记录,得到更新后的第二文件的文件修改记录。
220.1404,第一电子设备根据第二文件的文件修改信息、更新后的第二文件的文件修改记录,更新第二文件的元数据中的文件修改类型和文件修改标签。
221.第一电子设备根据第二文件的文件修改信息、更新后的第二文件的文件修改记录更新第二文件的元数据中的文件修改类型和文件修改标签的具体过程参阅图16所示。
222.1405,第一电子设备将更新后的第二文件的元数据同步到第二电子设备。
223.第一电子设备可以将更新后的第二文件的元数据同步到分布式网络中的各个电子设备。
224.图15是根据本技术分布式文件访问方法,第一电子设备修改第二电子设备上的第一文件的流程图。
225.1501,第一电子设备接收对第一文件的修改指令。
226.可以在第一电子设备显示分布式文件目录,分布式网络中各个电子设备的文件显示在分布式文件目录中,用户从分布式文件目录打开第一文件进行修改,发出对第一文件的修改指令。
227.或者,第一电子设备(例如设备b)可以接收其他电子设备(例如设备c)对第一文件(例如设备a上的文件)的读取指令。
228.1502,第一电子设备生成第一文件的文件修改信息。
229.1503,第一电子设备向第二电子设备发送文件修改请求,所述文件修改请求携带第一电子设备生成的第一文件的文件修改信息。
230.1504,第二电子设备根据文件修改请求中的文件修改信息对本地存储的第一文件进行修改。
231.1505,第二电子设备根据文件修改请求中的文件修改信息更新第一文件的文件修改记录。
232.1506,第二电子设备根据第一文件的文件修改信息、更新后的第一文件的文件修改记录,更新第一文件的元数据中的文件修改类型和文件修改标签。
233.第二电子设备根据第一文件的文件修改信息、更新后的第一文件的文件修改记录更新第一文件的元数据中的文件修改类型和文件修改标签的具体过程参阅图16所示。
234.1507,第二电子设备将更新后的第一文件的元数据同步到第一电子设备。
235.第二电子设备可以将更新后的第一文件的元数据同步到分布式网络中的各个电子设备。
236.图16是根据本技术分布式文件访问方法,第一电子设备根据第二文件的文件修改信息、更新后的第二文件的文件修改记录更新第二文件的元数据中的文件修改类型和文件修改标签(即图14中1404)的细化流程图。第二电子设备根据第一文件的文件修改信息、更新后的第一文件的文件修改记录更新第一文件的元数据中的文件修改类型和文件修改标签(即图15中1506)的方法与第一电子设备根据第二文件的文件修改信息、更新后的第二文件的文件修改记录更新第二文件的元数据中的文件修改类型和文件修改标签(即图14中1404)相同,此处不再赘述。
237.1601,第一电子设备判断第二文件的文件修改类型是否为无终端写类型。
238.1602,若第二文件的文件修改类型为无终端写类型,第一电子设备将第二文件的文件修改类型修改为单终端写类型,然后执行1608。
239.1603,若第二文件的文件修改类型不是无终端写类型,第一电子设备判断第二文件的文件修改类型是否为单终端写类型。
240.1604,若第二文件的文件修改类型为单终端写类型,第一电子设备根据更新后的第二文件的文件修改记录判断固定时间窗口(例如当前时间前10分钟)内是否有两个或者两个以上设备对第二文件进行修改(即多设备修改)。
241.1605,若固定时间窗口内有两个或者两个以上设备对第二文件进行修改,第一电子设备判断两个或者两个以上设备对第二文件进行修改的时间间隔是否大于或等于预设时间间隔(例如10秒)。
242.1606,若两个或者两个以上设备对第二文件进行修改的时间间隔不大于或等于(即小于)预设时间间隔,第一电子设备将第二文件的文件修改类型修改为频繁多终端写类
型,然后执行1620。
243.1607,若两个或者两个以上设备对第二文件进行修改的时间间隔大于或等于预设时间间隔,第一电子设备将第二文件的文件修改类型修改为偶发多终端写类型,然后执行1618。
244.1608,若第二文件的文件修改类型不是单终端写类型,第一电子设备判断第二文件的文件修改类型是否为偶发多终端写类型。
245.1609,若第二文件的文件修改类型为偶发多终端写类型,第一电子设备根据更新后的第二文件的文件修改记录判断固定时间窗口内是否有两个或者两个以上设备对第二文件进行修改(即多设备修改)。
246.1610,若固定时间窗口内没有两个或者两个以上设备对第二文件进行修改,第一电子设备将第二文件的文件修改类型修改为单终端写类型,然后执行1618。
247.1611,若固定时间窗口内有两个或者两个以上设备对第二文件进行修改,第一电子设备判断两个或者两个以上设备对第二文件进行修改的时间间隔是否大于或等于预设时间间隔。
248.若两个或者两个以上设备对第二文件进行修改的时间间隔不大于或等于预设时间间隔,执行1618。
249.1612,若两个或者两个以上设备对第二文件进行修改的时间间隔不大于或等于(即小于)预设时间间隔,第一电子设备将第二文件的文件修改类型修改为频繁多终端写类型,然后执行1620。
250.1613,若第二文件的文件修改类型不是偶发多终端写类型,第一电子设备判断第二文件的文件修改类型是否为频繁多终端写类型。
251.若第二文件的文件修改类型不是频繁多终端写类型,表明第二文件的文件修改类型有误,流程结束。
252.1614,若第二文件的文件修改类型为频繁多终端写类型,第一电子设备根据更新后的第二文件的文件修改记录判断固定时间窗口内是否有两个或者两个以上设备对第二文件进行修改(即多设备修改)。
253.1615,若固定时间窗口内没有两个或者两个以上设备对第二文件进行修改,第一电子设备将第二文件的文件修改类型修改为单终端写类型。
254.1616,若固定时间窗口内有两个或者两个以上设备对第二文件进行修改,第一电子设备判断两个或者两个以上设备对第二文件进行修改的时间间隔是否大于或等于预设时间间隔,然后执行1618。
255.1617,若两个或者两个以上设备对第二文件进行修改的时间间隔大于或等于预设时间间隔,第一电子设备将第二文件的文件修改类型修改为偶发多终端写类型,然后执行1618。
256.1618,第一电子设备判断文件修改信息中的修改前的文件修改标签与元数据中的文件修改标签是否一致。
257.1619,若文件修改信息中的修改前的文件修改标签与元数据中的文件修改标签一致,第一电子设备将第二文件的元数据中的文件修改标签更新为文件修改信息中的修改后的文件修改标签。
258.1620,若文件修改信息中的修改前的文件修改标签与元数据中的文件修改标签不一致,表明存在写冲突,第一电子设备为第二文件生成新的文件修改标签,将第二文件的元数据中的文件修改标签更新为新的文件修改标签。
259.应当理解,图16描述的实施例中,第一电子设备依次判断第二文件的文件修改类型是否为无终端写类型、是否为单终端写类型、是否为偶发多终端写类型、是否为频繁多终端写类型。在本技术其他的实施例中,对第二文件的文件修改类型的判断顺序可以改变。例如,可以依次判断第二文件的文件修改类型是否为频繁多终端写类型、是否为偶发多终端写类型、是否为单终端写类型、是否为无终端写类型。或者,可以在一个步骤中直接判断第二文件的文件修改类型是无终端写类型、单终端写类型、偶发多终端写类型、频繁多终端写类型中的哪一个,根据判断结果执行相应的处理。
260.本技术根据不同文件选择不同初始文件修改类型,在不同的文件冲突场景下,自适应切换文件修改类型。相对于传统的文件访问方法,无终端写、单终端写及偶发多终端写场景下,本技术提供的文件访问方法具有更优的性能,在高时延的网络条件下性能提升更加明显。本技术减少单次瞬时的设备实时协议传输,相对于nfs代理模式,可以减少网络交互,并且不存在写独占情况,本技术在单设备网络不稳定情况下,不影响其他设备的操作性能。
261.图17是根据本技术分布式文件访问方法,发生写冲突时的处理流程示意图。
262.如图17所示,设备a存储有文件名为test、文件内容为123456的文件,设备a还存储有文件test的元数据,其中文件test的文件修改类型为偶发多终端写,文件修改标签为c 1。设备a首先将文件test的元数据同步到设备b和设备c。设备b从设备a读取文件test,将文件内容123456缓存到本地,设备b将文件内容123456修改为12345699。设备b向设备a发送携带文件修改信息的文件修改请求(写文件),其中修改前的文件修改标签为c 1,修改后的文件修改标签为b 1,修改位置信息(修改位置偏移量)为7,修改部分为99。设备a根据设备b的文件修改请求将元数据中的文件修改标签修改为b 1,将文件内容修改为12345699。在设备b向设备a写文件的同时,设备c从设备a读取文件test,将文件内容123456缓存到本地,设备c将文件内容123456修改为553456。设备c向设备a发送携带文件修改信息的文件修改请求,其中修改前的文件修改标签为c 1,修改位置信息(修改位置偏移量)为0,修改后的文件修改标签为c 1,修改部分为55。设备a接收到设备c的文件修改请求后,检测到写冲突,将元数据中的文件修改标签修改为c 2,将文件内容修改为55345699。设备a将修改后的元数据同步到设备b、设备c。设备b、设备c再次读取文件test,读取到的文件内容为55345699。
263.图18是本技术实施例公开的分布式文件访问装置18的功能模块示意图。分布式文件访问装置18应用于第一电子设备,第一电子设备与第二电子设备通信连接。如图18所示,分布式文件访问装置18包括接收模块180、读取模块181、设备内修改模块182、跨设备修改模块183。
264.接收模块180,用于接收对第一文件的读取指令。
265.读取模块181用于读取第一电子设备本地存储的第一文件的文件修改类型和文件修改标签,根据读取的文件修改类型和文件修改标签,对第一文件进行读取。
266.设备内修改模块182用于获取对第二文件的修改指令,响应对第二文件的修改指令,修改第二文件并更新第二文件的文件修改记录,根据第二文件的文件修改记录,更新第
二文件的元数据中的文件修改类型和文件修改标签,将更新后的第二文件的元数据同步到第二电子设备。
267.跨设备修改模块183用于获取对第一文件的修改指令,响应对第一文件的修改指令,生成第一文件的文件修改信息,向第二电子设备发送文件修改请求。文件修改信息包括修改前的文件修改标签、修改后的文件修改标签、修改位置信息和修改部分。文件修改请求携带第一文件的文件修改信息。
268.图19是本技术实施例公开的分布式文件访问装置19的功能模块示意图。分布式文件访问装置19应用于第二电子设备,第二电子设备与第一电子设备通信连接。分布式文件访问装置19包括同步模块191和修改响应模块192。
269.同步模块191用于将第一文件的元数据同步到第一电子设备。
270.修改响应模块192用于若接收到第一电子设备发送的修改记录获取请求,向第一电子设备返回第一文件的文件修改记录。若接收到第一电子设备发送的对第一文件的文件修改请求,修改响应模块192根据文件修改请求修改第一文件。
271.修改响应模块192还用于更新第一文件的文件修改记录和第一文件的元数据,将更新后的第一文件的元数据同步到第一电子设备。
272.图20是本技术实施例公开的一种电子设备(第一电子设备或第二电子设备)的结构示意图。如图20所示,电子设备200可以包括:射频(radio frequency,rf)电路2001、存储器2002、输入单元2003、显示单元2004、传感器2005、音频电路2006、无线保真(wireless fidelity,wi-fi)模块2007、处理器2008以及电源2009等部件。本领域技术人员可以理解,图20中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
273.rf电路2001可用于收发信息或在通话过程中,对信号进行接收和发送,特别地,接收基站的下行信息后,转给处理器2008进行处理;另外,将涉及上行的数据发送给基站。通常,rf电路2001包括,但不限于:天线、至少一个放大器、收发信机、耦合器、低噪声放大器(low noise amplifier,lna)、双工器等。
274.存储器2002可用于存储软件程序以及模块,处理器2008通过运行存储在存储器2002中的软件程序以及模块,从而执行电子设备的各种功能应用以及数据处理。存储器2002可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器2002可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
275.输入单元2003可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,输入单元2003可包括触控面板20031以及其他输入设备20032。触控面板20031,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触控笔等任何适合的物体或附件在触控面板20031上或在触控面板20031附近的操作),并根据预先设定的程序驱动相应的连接装置。可选地,触控面板20031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信
息,并将它转换成触点坐标,再送给处理器2008,并接收处理器2008发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板20031。除了触控面板20031,输入单元2003还可以包括其他输入设备20032。具体地,其他输入设备20032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
276.显示单元2004可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种菜单。显示单元2004可包括显示面板20041,可选地,可以采用液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)等形式来配置显示面板20041。进一步地,触控面板20031可覆盖显示面板20041,当触控面板20031检测到在其上或附近的触摸操作后,传送给处理器2008以确定触摸事件的类型,随后处理器2008根据触摸事件的类型在显示面板20041上提供相应的视觉输出。虽然在图20中,触控面板20031与显示面板20041是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板20031与显示面板20041集成而实现电子设备的输入和输出功能。
277.电子设备还可包括至少一种传感器2005,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板20041的亮度,接近传感器可在电子设备移动到耳边时,关闭显示面板20041和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;此外,电子设备还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
278.音频电路2006、扬声器20061,传声器20062可提供用户与电子设备之间的音频接口。音频电路2006可将接收到的音频数据转换后的电信号,传输到扬声器20061,由扬声器20061转换为声音信号输出;另一方面,传声器20062将收集的声音信号转换为电信号,由音频电路2006接收后转换为音频数据,再将音频数据输出处理器2008处理后,经rf电路2001发送给另一电子设备,或者将音频数据输出至存储器2002以便进一步处理。
279.wi-fi属于短距离无线传输技术,电子设备通过wi-fi模块2007可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图20示出了wi-fi模块2007,但是可以理解的是,其并不属于电子设备的必需构成,完全可以根据需要、在不改变发明本质的范围内进行省略。
280.处理器2008是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器2002内的软件程序和/或模块,以及调用存储在存储器2002内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选地,处理器2008可包括一个或多个处理单元;优选的,处理器2008可集成应用处理器和调制解调器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器2008中。
281.电子设备还包括给各个部件供电的电源2009(比如电池),可选地,电源可以通过电源管理系统与处理器2008逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功
耗管理等功能。
282.尽管未示出,电子设备还可以包括摄像头、蓝牙模块等,在此不再赘述。
283.图20中描述的电子设备可以用于实施本技术图13-16介绍的方法实施例中的部分或全部流程,可参见前述图13-16所述实施例中的相关阐述,这里不再赘述。
284.本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的内存回收方法。
285.本实施例还提供了一种计算机程序产品,当该计算机程序产品在电子设备上运行时,使得电子设备执行上述相关步骤,以实现上述实施例中的内存回收方法。
286.另外,本技术的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的内存回收方法。
287.其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
288.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
289.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
290.该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
291.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
292.该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储
器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
293.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献