CN114647630A - 文件同步、信息生成方法、装置、计算机设备和存储介质 - Google Patents

文件同步、信息生成方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN114647630A
CN114647630A CN202210334800.1A CN202210334800A CN114647630A CN 114647630 A CN114647630 A CN 114647630A CN 202210334800 A CN202210334800 A CN 202210334800A CN 114647630 A CN114647630 A CN 114647630A
Authority
CN
China
Prior art keywords
file
information
update
index
original
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
Application number
CN202210334800.1A
Other languages
English (en)
Inventor
覃强
陈少斌
刘子龙
马笙锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kingdee Bills Cloud Technology Shenzhen Co ltd
Original Assignee
Kingdee Bills Cloud Technology Shenzhen Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kingdee Bills Cloud Technology Shenzhen Co ltd filed Critical Kingdee Bills Cloud Technology Shenzhen Co ltd
Priority to CN202210334800.1A priority Critical patent/CN114647630A/zh
Publication of CN114647630A publication Critical patent/CN114647630A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (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)
  • Information Transfer Between Computers (AREA)

Abstract

本申请涉及一种文件同步、信息生成方法、装置、计算机设备。所述方法包括:服务器根据更新信息对服务器中的原始文件索引信息进行更新,得到更新文件索引信息。服务器检测到终端发送的文件同步请求时,将更新文件索引信息发送给终端。终端接收服务器发送的更新文件索引信息,将更新文件索引信息和终端中的原始文件索引信息进行节点对比,得到差异叶子节点信息。根据差异叶子节点信息中文件索引和文件状态对原始文件进行文件同步。采用本方法能够提高文件同步效率。

Description

文件同步、信息生成方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种文件同步、信息生成的方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机领域的发展,出现了文件同步技术,该技术是当文件发生变化时,将变化后的文件同步更新到各个设备,保持文件的保持完整性和统一性。然而,现有的文件同步技术例如云存储工具将云端存储的文件同步到本地,每次用户在云服务器更新文件后,云服务器都要扫描所有文件查找更新文件,再将更新文件同步到本地,导致服务器通过扫描文件查找更新文件的时间过长,并且每次扫描都需要消耗服务器资源,造成文件同步效率低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能快速查找更新文件,提高文件同步效率的文件同步、信息生成方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种文件同步方法。所述方法包括:
接收更新文件索引信息,更新文件索引信息是根据更新信息对原始文件索引信息进行更新后得到的,更新信息包括更新文件索引和更新文件状态;原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;
获取原始文件索引信息,将原始文件索引信息与更新文件索引信息进行节点对比,得到更新文件索引信息对应的差异叶子节点信息;
将差异叶子节点信息中的更新文件索引和更新文件状态写入预设差异叶子节点信息队列;
基于预设差异叶子节点信息队列中的更新文件索引和更新文件状态进行更新文件同步,并将原始文件索引信息替换为更新文件索引信息。
第二方面,本申请提供了一种信息生成方法。所述方法包括:
获取更新指令,更新指令携带更新文件标识和更新操作信息;
基于更新文件标识和更新操作信息生成更新文件索引和更新文件状态;
获取原始文件索引信息中的原始根节点索引,原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;
基于更新文件索引、更新文件状态和原始根节点索引进行更新根节点索引运算,得到更新根节点索引;
基于原始文件索引信息、更新根节点索引、更新文件索引和更新文件状态生成更新文件索引信息;
当接收到更新端发送的文件同步请求时,将更新文件索引信息返回至更新端,以使更新端将更新文件索引信息与终端中的原始文件索引信息进行节点对比,得到差异叶子节点信息,并使用差异叶子节点信息中的更新文件索引和更新文件状态进行更新文件同步。
第三方面,本申请还提供了一种文件同步装置。所述装置包括:
接收模块,用于接收更新文件索引信息,更新文件索引信息是根据更新信息对原始文件索引信息进行更新后得到的,更新信息包括更新文件索引和更新文件状态;原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;
对比模块,用于获取原始文件索引信息,将原始文件索引信息与更新文件索引信息进行节点对比,得到更新文件索引信息对应的差异叶子节点信息;
写入模块,用于将差异叶子节点信息中的更新文件索引和更新文件状态写入预设差异叶子节点信息队列;
同步模块,用于基于预设差异叶子节点信息队列中的更新文件索引和更新文件状态进行更新文件同步,并将原始文件索引信息替换为更新文件索引信息;
第四方面,本申请还提供了一种信息生成装置。所述装置包括:
获取指令模块,用于获取更新指令,更新指令携带更新文件标识和更新操作信息;
生成模块,用于基于更新文件标识和更新操作信息生成更新文件索引和更新文件状态;
获取索引模块,用于获取原始文件索引信息中的原始根节点索引,原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;
运算模块,用于基于更新文件索引、更新文件状态和原始根节点索引进行更新根节点索引运算,得到更新根节点索引;
索引信息生成模块,用于基于原始文件索引信息、更新根节点索引、更新文件索引和更新文件状态生成更新文件索引信息;
发送模块,用于当接收到更新端发送的文件同步请求时,将更新文件索引信息返回至更新端,以使更新端将更新文件索引信息与更新端中的原始文件索引信息进行节点对比,得到差异叶子节点信息,并使用差异叶子节点信息中的更新文件索引和更新文件状态进行更新文件同步。
第五方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收更新文件索引信息,更新文件索引信息是根据更新信息对原始文件索引信息进行更新后得到的,更新信息包括更新文件索引和更新文件状态;原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;
获取原始文件索引信息,将原始文件索引信息与更新文件索引信息进行节点对比,得到更新文件索引信息对应的差异叶子节点信息;
将差异叶子节点信息中的更新文件索引和更新文件状态写入预设差异叶子节点信息队列;
基于预设差异叶子节点信息队列中的更新文件索引和更新文件状态进行更新文件同步,并将原始文件索引信息替换为更新文件索引信息。
第六方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取更新指令,更新指令携带更新文件标识和更新操作信息;
基于更新文件标识和更新操作信息生成更新文件索引和更新文件状态;
获取原始文件索引信息中的原始根节点索引,原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;
基于更新文件索引、更新文件状态和原始根节点索引进行更新根节点索引运算,得到更新根节点索引;
基于原始文件索引信息、更新根节点索引、更新文件索引和更新文件状态生成更新文件索引信息;
当接收到更新端更新的文件同步请求时,将更新文件索引信息返回至更新端,以使更新端将更新文件索引信息与终端中的原始文件索引信息进行节点对比,得到差异叶子节点信息,并使用差异叶子节点信息中的更新文件索引和更新文件状态进行更新文件同步。
第七方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收更新文件索引信息,更新文件索引信息是根据更新信息对原始文件索引信息进行更新后得到的,更新信息包括更新文件索引和更新文件状态;原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;
获取原始文件索引信息,将原始文件索引信息与更新文件索引信息进行节点对比,得到更新文件索引信息对应的差异叶子节点信息;
将差异叶子节点信息中的更新文件索引和更新文件状态写入预设差异叶子节点信息队列;
基于预设差异叶子节点信息队列中的更新文件索引和更新文件状态进行更新文件同步,并将原始文件索引信息替换为更新文件索引信息。
第八方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取更新指令,更新指令携带更新文件标识和更新操作信息;
基于更新文件标识和更新操作信息生成更新文件索引和更新文件状态;
获取原始文件索引信息中的原始根节点索引,原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;
基于更新文件索引、更新文件状态和原始根节点索引进行更新根节点索引运算,得到更新根节点索引;
基于原始文件索引信息、更新根节点索引、更新文件索引和更新文件状态生成更新文件索引信息;
当接收到更新端更新的文件同步请求时,将更新文件索引信息返回至更新端,以使更新端将更新文件索引信息与终端中的原始文件索引信息进行节点对比,得到差异叶子节点信息,并使用差异叶子节点信息中的更新文件索引和更新文件状态进行更新文件同步。
第九方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
接收更新文件索引信息,更新文件索引信息是根据更新信息对原始文件索引信息进行更新后得到的,更新信息包括更新文件索引和更新文件状态;原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;
获取原始文件索引信息,将原始文件索引信息与更新文件索引信息进行节点对比,得到更新文件索引信息对应的差异叶子节点信息;
将差异叶子节点信息中的更新文件索引和更新文件状态写入预设差异叶子节点信息队列;
基于预设差异叶子节点信息队列中的更新文件索引和更新文件状态进行更新文件同步,并将原始文件索引信息替换为更新文件索引信息。
第十方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取更新指令,更新指令携带更新文件标识和更新操作信息;
基于更新文件标识和更新操作信息生成更新文件索引和更新文件状态;
获取原始文件索引信息中的原始根节点索引,原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;
基于更新文件索引、更新文件状态和原始根节点索引进行更新根节点索引运算,得到更新根节点索引;
基于原始文件索引信息、更新根节点索引、更新文件索引和更新文件状态生成更新文件索引信息;
当接收到更新端更新的文件同步请求时,将更新文件索引信息返回至更新端,以使终端将更新文件索引信息与更新端中的原始文件索引信息进行节点对比,得到差异叶子节点信息,并使用差异叶子节点信息中的更新文件索引和更新文件状态进行更新文件同步。
上述文件同步方法、装置、计算机设备、存储介质和计算机程序产品,终端通过将更新文件索引信息与更新端中的原始文件索引信息进行节点对比,更新端能根据更新文件索引信息与原始文件索引信息之间的节点的差异快速查找到差异叶子节点信息。然后终端将差异叶子节点信息中的更新文件索引和文件状态写入预设差异叶子节点信息队列,使得更新端能根据预设差异叶子节点信息队列中的更新文件索引和文件状态对更新端中的原始文件进行更新文件同步,从而能够提高文件同步的效率。
上述信息生成方法、装置、计算机设备、存储介质和计算机程序产品,通过服务器在获取到更新指令时,根据更新指令携带的更新文件标识和更新操作信息生成更新文件索引和更新文件状态。服务器通过将更新文件索引和更新文件状态与服务器中的原始文件索引信息中的原始根节点索引进行更新根节点索引运算,并生成更新文件索引信息,能够提高更新文件索引信息的生成效率。然后服务器在接收到终端的更新请求后将更新文件索引信息发送至终端,从而能够提高文件同步的效率。
附图说明
图1为一个实施例中文件同步、信息生成方法的应用环境图;
图2为一个实施例中文件同步方法的流程示意图;
图3为一个实施例中节点对比步骤的流程示意图;
图4为一个实施例中信息生成方法的流程示意图;
图5为另一个实施例中文件同步方法的流程示意图;
图6为一个实施例中生成原始文件索引信息的示意图;
图7为一个实施例中生成更新文件索引信息的示意图;
图8为另一个实施例中生成更新文件索引信息的示意图;
图9为另一个实施例中生成更新文件索引信息的示意图;
图10为一个实施例中检索差异叶子节点信息的流程示意图;
图11为一个实施例中文件同步装置的结构框图;
图12为一个实施例中信息生成装置的结构框图;
图13为一个实施例中计算机设备的内部结构图;
图14为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的文件同步、信息生成方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。服务器数据存储系统可以存储服务器104需要处理的数据。服务器数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。服务器数据存储系统可以包括文件同步工具服务端。本地数据存储系统可以存储终端102需要处理的数据,本地数据存储系统可以是本地文件系统、本地对象存储系统等。本地数据存储系统可以包括文件同步工具客户端。终端102接收服务器104发送的更新文件索引信息,更新文件索引信息是服务器104根据更新信息对原始文件索引信息进行更新后得到的,更新信息包括更新文件索引和更新文件状态;原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;终端102获取原始文件索引信息,将原始文件索引信息与更新文件索引信息进行节点对比,得到更新文件索引信息对应的差异叶子节点信息;终端102将差异叶子节点信息中的更新文件索引和文件状态写入预设差异叶子节点信息队列;终端102基于预设差异叶子节点信息队列中的更新文件索引和更新文件状态进行更新文件同步,并将原始文件索引信息替换为更新文件索引信息。服务器104获取更新指令,更新指令携带更新文件标识和更新操作信息;服务器104基于更新文件标识和更新操作信息生成更新文件索引和更新文件状态;服务器104获取原始文件索引信息中的原始根节点索引,原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;服务器104基于更新文件索引、更新文件状态和原始根节点索引进行更新根节点索引运算,得到更新根节点索引;服务器104基于原始文件索引信息、更新根节点索引、更新文件索引和更新文件状态生成更新文件索引信息;当服务器104接收到终端102发送的文件同步请求时,服务器104将更新文件索引信息发送终端102,以使终端102将更新文件索引信息与终端中的原始文件索引信息进行节点对比,得到差异叶子节点信息,并使用差异叶子节点信息中的更新文件索引和更新文件状态进行更新文件同步。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现,也可以是云服务器。
在一个实施例中,如图2所示,提供了一种文件同步方法,以该方法应用于图1中的终端为例进行说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,包括以下步骤:
步骤202,接收更新文件索引信息,更新文件索引信息是根据更新信息对原始文件索引信息进行更新后得到的,更新信息包括更新文件索引和更新文件状态;原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构。
其中,更新文件索引信息是指原始文件索引信息更新后的树结构。文件索引是能够获取对应的文件的信息。文件状态是用于表示对文件的处理方式的信息,包括新增文件操作、删除文件操作和文件内容更新操作等。原始文件是指以文件形式存储的原始数据,可以进行更新。
具体地,终端向服务器发送文件同步请求,然后获取到服务器根据文件同步请求返回的更新文件索引信息。
步骤204,获取原始文件索引信息,将原始文件索引信息与更新文件索引信息进行节点对比,得到更新文件索引信息对应的差异叶子节点信息。
其中,差异叶子节点信息是指原始文件索引信息与更新文件索引信息之间的有差异的叶子节点对应的节点信息。叶子节点是指没有分支的节点。原始文件索引信息是指原始文件对应的索引信息。
具体地,终端在本地存储空间中获取原始文件索引信息,然后根据原始文件索引信息中的节点与更新文件索引信息中的节点进行一致性对比。终端根据对比结果从更新文件索引信息中查找差异节点,然后根据差异节点查找差异叶子节点,并获取差异叶子节点对应的节点信息。
步骤206,将差异叶子节点信息中的更新文件索引和文件状态写入预设差异叶子节点信息队列。
其中,预设差异叶子节点信息队列是设置好的用于记录更新文件索引和文件状态的队列。预设差异叶子节点信息队列可以记录多个不同的更新文件索引和文件状态。
具体地,终端可以在原始文件索引信息与更新文件索引信息进行节点对比前生成预设差异叶子节点信息队列,也可以在原始文件索引信息与更新文件索引信息的节点对比结束后生成预设差异叶子节点信息队列。比如,终端检测到更新文件索引信息中存在差异叶子节点信息时,生成预设差异叶子节点信息队列,并将差异叶子节点信息中的更新文件索引和文件状态写入预设差异叶子节点信息队列。
步骤208,基于预设差异叶子节点信息队列中的更新文件索引和更新文件状态进行更新文件同步,并将原始文件索引信息替换为更新文件索引信息。
具体地,终端根据预设差异叶子节点信息队列中的更新文件索引获取对应的文件,然后根据更新文件状态对文件进行更新处理,完成更新文件同步。然后将原始文件索引信息替换为更新文件索引信息。
在一个具体实施例中,终端查看预设差异叶子节点信息队列中的更新文件索引和更新文件状态。当终端检测到更新文件状态是新增文件操作时,终端根据更新文件索引从服务器数据存储系统中查找并获取对应的新增文件,并将新增文件保存在本地存储系统中;当终端检测到更新文件状态是删除文件操作时,终端根据更新文件索引在本地存储系统中查找并删除对应的删除文件;当终端检测到更新文件状态是文件内容更新操作时,根据更新文件索引从服务器数据存储系统中查找并获取对应的更新文件,然后根据更新文件状态中的被更新的原始文件对应的原始文件索引在本地数据存储系统中查找对应的原始文件,将原始文件替换为更新文件。终端可以在本地数据存储系统中查找到对应的原始文件后进行删除,然后将更新文件保存至本地数据存储系统中。终端也可以直接在本地数据存储系统中将获取到的更新文件覆盖被更新的原始文件。
上述文件同步方法中,终端通过将服务器发送的更新文件索引信息与终端中的原始文件索引信息进行节点对比,终端能根据更新文件索引信息与原始文件索引信息之间的节点的差异快速查找到差异叶子节点信息。然后终端将差异叶子节点信息中的更新文件索引和文件状态写入预设差异叶子节点信息队列,使得终端能根据预设差异叶子节点信息队列中的更新文件索引和文件状态对终端中的原始文件进行更新文件同步,从而能够提高文件同步的效率。
在一个实施例中,如图3所示,步骤204,将原始文件索引信息与更新文件索引信息进行节点对比,得到更新文件索引信息对应的差异叶子节点信息,包括:
步骤302,获取原始文件索引信息中的原始根节点索引和更新文件索引信息中的更新根节点索引;
步骤304,将原始根节点索引和更新根节点索引进行比较,当原始根节点索引与更新根节点索引未相同,且更新根节点索引为非叶子节点信息时,基于更新根节点索引将更新文件索引信息划分为第一子更新文件索引信息和第二子更新文件索引信息;
步骤306,当第一子更新文件索引信息中的根节点索引与原始根节点索引相同,且第二子更新文件索引信息为叶子节点信息时,将第二子更新文件索引信息作为更新文件索引信息对应的差异叶子节点信息;
其中,根节点索引是指文件索引信息的树结构中根节点对应的索引。非叶子节点信息是指非叶子节点对应的节点信息。非叶子节点有分支节点。第一子更新文件索引信息是指更新文件索引信息的树结构中根节点下的左分支树结构。第二子更新文件索引信息是指更新文件索引信息的树结构中根节点下的右分支树结构。
具体地,终端获取原始文件索引信息中的原始根节点索引和更新文件索引信息中的更新根节点索引,将原始根节点索引和更新根节点索引进行一致性比较。当原始根节点索引与更新根节点索引未一致时,判断更新根节点索引是否为叶子节点信息。当更新根节点索引为非叶子节点信息时,将更新文件索引信息的树结构中除了根节点以外的部分树结构划分为左分支树结构和右分支树结构,并将左分支树结构和右分支树结构分别作为第一子更新文件索引信息和第二子更新文件索引信息。
然后终端获取第一子更新文件索引信息中的根节点索引,当第一子更新文件索引信息中的根节点索引与原始根节点索引相同时,说明第一子更新文件索引信息是原始文件索引信息,此时,就不用对第一子更新文件索引信息进行处理;然后终端检测到第二子更新文件索引信息是单节点树结构时,说明第二子更新文件索引信息仅由叶子节点信息组成,则将第二子更新文件索引信息作为更新文件索引信息对应的差异叶子节点信息。原始根节点索引和更新根节点索引可以是散列值。原始文件索引信息可以是由原始文件散列值和原始文件状态生成的默克尔树。更新文件索引信息可以是由原始文件索引信息、更新文件散列值和更新文件状态生成的默克尔树。
本实施例中,当原始根节点索引和更新根节点索引不一致时,说明更新文件索引信息中存在差异叶子节点信息。然后将更新文件索引信息划分为第一子更新文件索引信息和第二子更新文件索引信息,当第一子更新文件索引信息中根节点索引与原始根节点索引相同时,表明第一子更新文件索引信息中不存在差异叶子节点信息,因此不需要再查找第一子更新文件索引信息中的差异叶子节点差异,能够节省终端资源。并且当终端检测到第二子更新文件索引信息是叶子节点信息时,说明第二子更新文件索引信息是差异叶子节点信息,能够快速确定差异叶子节点信息,使得终端能根据差异叶子节点信息进行更新文件同步,从而提高了文件同步的效率。
在一个实施例中,所述方法还包括:
当第一子更新文件索引信息中的根节点索引与原始根节点索引未相同时,将第一子更新文件索引信息作为更新文件索引信息,并返回将原始根节点索引和更新根节点索引进行比较的步骤执行,直到原始根节点索引与更新根节点索引相同,得到各个第二子更新文件索引信息;
当各个第二子更新文件索引信息为叶子节点信息时,将各个第二子更新文件索引信息分别作为更新文件索引信息对应的差异叶子节点信息。
具体地,终端在执行基于更新根节点索引将更新文件索引信息划分为第一子更新文件索引信息和第二子更新文件索引信息的步骤之后,将第一子更新文件索引信息作为更新文件索引信息,并返回将原始根节点索引和更新根节点索引进行比较的步骤执行,直到原始根节点索引与更新根节点索引相同,得到各个第二子更新文件索引信息。在一个具体实施例中,当第一子更新文件索引信息中的根节点索引与原始根节点索引不相同,并且第一子更新文件索引信息中的根节点索引为非叶子节点信息时,将第一子更新文件索引信息作为更新文件索引信息进行划分,得到不同结构的第一子更新文件索引信息和第二子更新文件索引信息。然后继续将不同结构的第一子更新文件索引信息中的根节点索引与原始根节点索引进行一致性比较,直到不同结构的第一子更新文件索引信息中的根节点索引与原始根节点索引相同。此时得到各个第二子更新文件索引信息。
当终端检测到各个第二子更新文件索引信息为叶子节点信息时,将各个第二子更新文件索引信息分别作为更新文件索引信息对应的差异叶子节点信息。各个第二子更新文件索引信息中可以同时存在叶子节点信息和非叶子节点信息。终端检测到各个第二子更新文件索引信息中部分第二子更新文件索引信息为叶子节点信息时,将部分第二子更新文件索引信息分别作为更新文件索引信息对应的差异叶子节点信息。然后终端检测到各个第二子更新文件索引信息中另一部分第二子更新文件索引信息为非叶子节点信息时,获取另一部分第二子更新文件索引信息中的子叶子节点信息,将子叶子节点信息作为差异叶子节点信息。
本实施例中,第一子更新文件索引信息中的根节点索引与更新根节点索引未相同时,说明第一子更新文件索引信息中也存在差异叶子节点信息。然后将第一子更新文件索引信息作为更新文件索引信息继续划分为不同结构的第一子更新文件索引信息和第二子更新文件索引信息,直到将更新文件索引信息划分出与原始文件索引信息相同的部分树结构和各个第二子更新文件索引信息,各个第二子更新文件索引信息均含有差异叶子节点。由此,能够查找到所有的差异叶子节点信息,以使终端能够根据查找到的所有差异叶子节点信息进行更新文件同步,从而提高了文件同步的效率。
在一个实施例中,所述方法还包括:
当第一子更新文件索引信息中的根节点索引与原始根节点索引相同,且第二子更新文件索引信息为非叶子节点信息时,获取第二子更新文件索引信息中的子叶子节点信息,将子叶子节点信息作为差异叶子节点信息。
其中,子叶子节点信息是指第二子更新文件索引信息中的叶子节点对应的节点信息。
具体地,终端检测到第一子更新文件索引信息中的根节点索引与原始根节点索引相同,且第二子更新文件索引信息为非叶子节点信息时,查找第二子更新文件索引信息中各个子叶子节点,并获取各个子叶子节点对应的节点信息,终端将各个子叶子节点对应的节点信息分别作为差异叶子节点信息。
本实施例中,第二子更新文件索引信息为非叶子节点信息时表示第二子更新文件索引信息是由各个差异叶子节点生成的树结构。能够满足终端对用户更新的多个文件进行更新文件同步,从而提高了文件同步的效率。
在一个实施例中,如图4所示,提供了一种信息生成方法,以该方法应用于图1中的服务器为例进行说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,包括以下步骤:
步骤402,获取更新指令,更新指令携带更新文件标识和更新操作信息。
其中,更新指令是指用户在服务器中进行更新操作后生成的指令。更新文件标识是指用户进行更新操作的文件的标识,用于服务器查找更新文件的标识信息。更新操作信息是指用户对文件进行的更新操作方式,包括新增文件操作、删除文件操作和文件内容更新操作。
具体地,服务器响应于用户对服务器中文件的更新操作,接收更新指令。
步骤404,基于更新文件标识和更新操作信息生成更新文件索引和更新文件状态。
具体地,服务器根据更新指令中的更新文件标识在数据存储系统中查找更新文件,并对更新文件进行索引运算,得到更新文件索引。然后服务器根据更新操作信息生成更新文件索引对应的更新文件状态,包括但不限于新增文件、删除文件和更新文件。然后服务器将更新文件索引、更新文件状态和更新文件关联保存。
步骤406,获取原始文件索引信息中的原始根节点索引,原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构。
步骤408,基于更新文件索引、更新文件状态和原始根节点索引进行更新根节点索引运算,得到更新根节点索引。
其中,更新根节点运算是指计算树结构中根节点对应的索引的运算过程。
具体地,服务器在数据存储系统中获取原始文件索引信息,并从原始文件索引信息中获取原始根节点索引。服务器可以将新文件索引、更新文件状态和原始根节点索引进行一次更新根节点索引运算,得到更新根节点索引。服务器也可以先将更新文件索引和更新文件状态进行根节点索引运算,得到对应的根节点索引运算结果,再将根节点索引运算结果和原始根节点索引进行根节点索引运算,得到更新根节点索引。
步骤410,基于原始文件索引信息、更新根节点索引、更新文件索引和更新文件状态生成更新文件索引信息。
步骤412,当接收到更新端发送的文件同步请求时,将更新文件索引信息返回至更新端,以使更新端将更新文件索引信息与更新端中的原始文件索引信息进行节点对比,得到差异叶子节点信息,并使用差异叶子节点信息中的更新文件索引和更新文件状态进行更新文件同步。
其中,更新端是需要进行文件更新的设备端,可以是服务器也可以是终端。
具体地,服务器可以将更新文件索引、更新文件状态作为更新文件索引信息的叶子节点信息,然后服务器根据更新根节点索引分别与原始文件索引信息中的原始根节点索引和叶子节点信息建立连接关系,生成更新文件索引信息。当服务器检测到终端发送的文件同步请求时,向终端发送更新文件索引信息。也可以在检测到服务器发送的文件同步请求时,向服务器发送更新文件索引。上述文件同步方法中,服务器在获取到更新指令时,根据更新指令携带的更新文件标识和更新操作信息生成更新文件索引和更新文件状态。服务器通过将更新文件索引和更新文件状态与服务器中的原始文件索引信息中的原始根节点索引进行更新根节点索引运算,并生成更新文件索引信息,能够提高更新文件索引信息的生成效率。然后服务器在接收到终端的更新请求后将更新文件索引信息发送至终端,从而能够提高文件同步的效率。
可以理解的是,所述文件同步方法和信息生成方法可以实现服务器生成更新文件,终端同步更新服务器的更新文件;也可以实现终端生成更新文件,服务器同步更新终端的更新文件。
在一个实施例中,如图5所示,更新指令携带至少两个更新文件标识和至少两个更新操作信息,所述方法还包括:
步骤502,基于至少两个更新指令中的至少两个更新文件和至少两个更新操作信息生成至少两个更新文件索引和至少两个更新文件状态;
步骤504,基于至少两个更新文件索引和至少两个更新文件状态分别进行节点索引运算,得到至少两个子节点索引;
步骤506,基于至少两个子节点索引生成子更新文件索引信息;
步骤508,将子更新文件索引信息中的根节点索引与原始根节点索引进行根节点索引运算,得到目标更新根节点索引,基于目标更新根节点索引、原始文件索引信息和子更新文件索引信息生成目标更新文件索引信息。
其中,节点索引运算是计算树结构中各个节点对应的索引的运算过程。子节点索引是指树结构中各个节点对应的索引。子更新文件索引信息是指使用至少两个子节点索引生成的树结构。目标更新文件索引信息是指目标更新根节点索引、原始文件索引信息和子更新文件索引信息生成的树结构。目标更新根节点索引是目标更新文件索引信息中的根节点索引
具体地,服务器响应与用户对至少两个文件的更新操作,接收更新指令。服务器根据更新指令中至少两个更新文件分别进行索引运算,得到至少两个子节点索引,然后将至少两个子节点索引分别建立连接关系生成子更新文件索引信息。将子更新文件索引信息中的根节点索引与原始根节点索引进行根节点索引运算,得到目标更新根节点索引;然后服务器根据目标更新根节点索引分别与原始文件索引信息中的原始根节点索引和子更新文件索引信息中的根节点索引建立关联关系,生成目标更新文件索引信息。
在一个具体实施例中,索引运算、节点索引运算和根节点索引运算可以是哈希运算。更新文件索引可以是更新文件进行哈希运算后得到的散列值。子节点索引可以是子更新文件索引信息中各个节点对应的散列值。服务器可以使用默克尔树生成子更新文件索引信息和目标更新文件索引信息。
在一个具体实施例中,如图6所示,提供一种生成原始文件索引信息的示意图;
原始文件索引信息的叶子节点信息分别是{哈希1,add(新增操作)}、{哈希2,add}、{哈希3,add}、{哈希4,add}。哈希1、哈希2、哈希3和哈希4是原始文件为文档1、文档2、文档3和文档4分别进行哈希运算得到的。哈希12是将叶子节点信息为{哈希1,add}和{哈希2,add}进行哈希运算得到的离散值,哈希34是将叶子节点信息为{哈希3,add}和{哈希4,add}进行哈希运算得到的离散值。哈希1234是将离散值哈希12和哈希34进行哈希运算得到的离散值。哈希1234是原始文件索引信息的原始根节点索引,根据哈希1234、哈希12、哈希34和叶子节点信息为{哈希1,add}、{哈希2,add}、{哈希3,add}、{哈希4,add}生成原始文件索引信息。
在一个具体实施例中,如图7所示,提供一种生成更新文件索引信息的示意图;
当服务器检测到更新操作信息是新增文件操作时,根据新增文件操作生成的更新文件状态为:add,然后根据更新文件标识查找对应的新增文件为文档5并将文档5进行哈希运算,生成的更新文件索引为哈希5。然后服务器将哈希5和add作为一个新的叶子节点信息{哈希5,add}。服务器获取原始文件索引信息中的原始根节点索引为哈希1234。然后服务器将原始根节点索引为哈希1234与新的叶子节点信息{哈希5,add}进行哈希运算,得到哈希12345。将哈希12345、原始文件索引信息和{哈希5,add}生成更新文件索引信息,哈希12345是更新文件索引信息的更新根节点索引。
在一个具体实施例中,如图8所示,提供另一种生成更新文件索引信息的示意图;
当服务器检测到更新操作信息是删除文件操作时,根据删除文件操作生成的更新文件状态为:delete(删除操作),然后根据更新文件标识查找对应的删除文件为文档4并将文档4进行哈希运算,生成的更新文件索引为哈希4。服务器在生成更新文件索引哈希4后在数据存储系统中删除对应的文件为文档4。然后服务器将哈希4和delete作为一个新的叶子节点信息{哈希4,delete},并将新的叶子节点信息{哈希4,delete}与原始文件索引信息中的原始根节点索引哈希1234进行哈希运算,得到哈希12345。服务器将哈希12345、原始文件索引信息和{哈希5,add}生成更新文件索引信息。
在一个具体实施例中,如图9所示,提供另一种生成更新文件索引信息的示意图;
当服务器检测到更新操作信息是文件内容更新操作,并且检测到是对文档4的内容进行更新生成文档5时,根据文件内容更新操作和被更新的原始文件对应的原始文件索引(哈希4)生成对应的更新文件状态为:{replace(文件内容替换操作),哈希4},然后服务器根据更新文件标识查找对应的更新文件为文档5,文档5是文档4的内容更新后得到的。并将文档5进行哈希运算,得到哈希5。服务器将哈希5和{replace,哈希4}作为一个新的叶子节点信息{哈希5,{replace,哈希4}},并将新的叶子节点信息{哈希5,{replace,哈希4}}与原始文件索引信息中的原始根节点索引哈希1234进行哈希运算,得到哈希12345。服务器将哈希12345、原始文件索引信息和{哈希5,{replace,哈希4}}成更新文件索引信息。
本实施例中,服务器通过用户对多个更新文件的操作生成目标更新文件索引信息,以使终端能根据目标更新文件索引信息对多个更新文件进行更新文件同步,满足用户对多个更新文件的文件同步需求,提高了文件同步的效率和用户体验。
在一个实施例中,步骤402,在当检测到更新指令时之前,还包括:
获取各个原始文件,基于各个原始文件生成对应的原始文件状态;
将各个原始文件和各个原始文件对应的原始文件状态进行节点索引运算,得到原始文件索引信息;
将原始文件索引信息发送至终端,以使终端根据原始文件索引信息获取到各个原始文件。
其中,原始文件是指用户首次存储在数据存储系统中的文件。
具体地,服务器获取各个原始文件,根据各个原始文件生成对应的原始文件状态,并且各个原始文件对应的原始文件状态均为新增文件。服务器将各个原始文件进行索引运算,得到各个原始文件对应的原始文件索引。然后服务器将各个原始文件对应的原始文件索引与原始文件状态进行节点索引运算,得到各个节点对应的索引。根据各个节点对应的索引生成原始文件索引信息。
当服务器检测到终端发送的文件同步请求时,将原始文件索引信息发送至终端。终端发送的文件同步请求可以是全量备份请求,用于终端接收到原始文件索引信息后不需要进行节点对比,然后终端可以根据原始文件索引信息获取全部原始文件。
本实施例中,通过服务器根据原始文件生成原始文件索引信息,并将原始文件索引信息发送至终端,以使终端能根据原始索引信息准确获取原始文件,提高了文件同步的准确性。
在一个具体实施例中,如图10所示,提供一种检索差异叶子节点信息的流程示意图;终端获取到服务器发送的更新文件索引信息,然后从本地数据存储系统中获取原始文件索引信息。终端将更新文件索引信息中的更新根节点索引与原始文件索引信息中的原始根节点索引进行根节点一致性比较,当更新根节点索引与原始根节点索引相同时,说明更新文件索引信息与原始文件索引信息相同。
当更新根节点索引与原始根节点索引不相同时,判断更新根节点索引是否是叶子节点信息。当更新根节点索引为叶子节点信息时,说明更新文件索引信息是仅有叶子节点信息生成的单节点树结构,将更新文件索引信息作为差异叶子节点信息并记录到差异叶子节点信息队列中。当更新根节点索引为非叶子节点信息时,根据更新根节点索引将更新文件索引信息划分为第一更新文件索引信息和第二更新文件索引信息。然后分别进入第一更新文件索引信息和第二更新文件索引信息对应的循环分支。
第一更新文件索引信息对应的循环分支,包括:将第一更新文件索引信息作为第一个新的更新文件索引信息,并返回到将更新文件索引信息中的更新根节点索引与原始文件索引信息中的原始根节点索引进行一致性比较的步骤执行,直到更新根节点索引与原始根节点索引相同。
第二更新文件索引信息对应的循环分支,包括:判断第二更新文件索引信息是否是叶子节点信息,当第二更新文件索引信息为叶子节点信息时,将第二更新文件索引信息作为差异叶子节点信息并记录到差异叶子节点信息队列中。当第二更新文件索引信息为非叶子节点信息时,遍历第二更新文件索引信息中各个子树,依次判断各个子树中的节点索引是否是叶子节点信息,当各个子树中的节点索引为叶子节点信息时,将各个子树中的叶子节点信息作为差异叶子节点信息并记录到差异叶子节点信息队列中。当各个子树中的节点信息为非叶子节点信息时,将各个子树作为第二更新文件索引信息,返回到遍历第二更新文件索引信息中各个子树,依次判断各个子树中的节点索引是否是叶子节点信息的步骤执行,直到各个子树中的节点信息为叶子节点信息时,结束循环。
在另一个具体实施例中,如图10所示,服务器获取单个原始文件,根据单个原始文件进行哈希运算,得到单个原始文件索引。然后根据单个原始文件生成单个原始文件状态。将单个原始文件索引和单个原始文件状态作为单个叶子节点信息,根据单个叶子节点信息生成原始文件索引信息。服务器检测到终端发送的全量备份请求时,将原始文件索引信息作为更新文件索引信息发送至终端。
终端接收到更新文件索引信息后,将更新文件索引信息与原始文件索引信息进行根节点一致性比较,此时原始文件索引信息为空,则更新根节点索引与原始根节点索引不相同,并且更新根节点索引为叶子节点信息,将更新文件索引信息作为差异叶子节点信息并记录到差异叶子节点信息队列中,然后根据差异叶子节点信息队列中的更新文件索引信息从服务器中获取到全量文件并保存。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的文件同步、信息生成方法的文件同步装置和信息生成装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个文件同步装置和信息生成装置实施例中的具体限定可以参见上文中对于文件同步、信息生成方法的限定,在此不再赘述。
在一个实施例中,如图11所示,提供了一种文件同步装置1100,包括:接收模块1102、对比模块1104、写入模块1106和同步模块1108,其中:
接收模块1102,用于接收更新文件索引信息,更新文件索引信息是根据更新信息对原始文件索引信息进行更新后得到的,更新信息包括更新文件索引和更新文件状态;原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;
对比模块1104,用于获取原始文件索引信息,将原始文件索引信息与更新文件索引信息进行节点对比,得到更新文件索引信息对应的差异叶子节点信息;
写入模块1106,用于将差异叶子节点信息中的更新文件索引和更新文件状态写入预设差异叶子节点信息队列;
同步模块1108,用于基于预设差异叶子节点信息队列中的更新文件索引和更新文件状态进行更新文件同步,并将原始文件索引信息替换为更新文件索引信息。
在一个实施例中,对比模块1104,还包括:
差异叶子节点信息获取单元,用于获取原始文件索引信息中的原始根节点索引和更新文件索引信息中的更新根节点索引;
将原始根节点索引和更新根节点索引进行比较,当原始根节点索引与更新根节点索引未相同,且更新根节点索引为非叶子节点信息时,基于更新根节点索引将更新文件索引信息划分为第一子更新文件索引信息和第二子更新文件索引信息;
当第一子更新文件索引信息中的根节点索引与原始根节点索引相同,且第二子更新文件索引信息为叶子节点信息时,将第二子更新文件索引信息作为更新文件索引信息对应的差异叶子节点信息。
在一个实施例中,文件装置1100,还包括:
多个差异叶子节点信息获取模块,用于当第一子更新文件索引信息中的根节点索引与原始根节点索引未相同时,将第一子更新文件索引信息作为更新文件索引信息,并返回将原始根节点索引和更新根节点索引进行比较的步骤执行,直到原始根节点索引与更新根节点索引相同,得到各个第二子更新文件索引信息;
当各个第二子更新文件索引信息为叶子节点信息时,将各个第二子更新文件索引信息分别作为更新文件索引信息对应的差异叶子节点信息。
在一个实施例中,文件装置1100,还包括:
差异叶子节点信息确定模块,用于当第一子更新文件索引信息中的根节点索引与原始根节点索引相同,且第二子更新文件索引信息为非叶子节点信息时,获取第二子更新文件索引信息中的子叶子节点信息,将子叶子节点信息作为差异叶子节点信息。
在一个实施例中,如图12所示,提供了一种信息生成装置1200,包括:获取指令模块1202、生成模块1204、获取索引模块1206、运算模块1208、索引信息生成模块1210和发送模块1212,其中:
获取指令模块1202,用于获取更新指令,更新指令携带更新文件标识和更新操作信息;
生成模块1204,用于基于更新文件标识和更新操作信息生成更新文件索引和更新文件状态;
获取索引模块1206,用于获取原始文件索引信息中的原始根节点索引,原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;
运算模块1208,用于基于更新文件索引、更新文件状态和原始根节点索引进行更新根节点索引运算,得到更新根节点索引;
索引信息生成模块1210,用于基于原始文件索引信息、更新根节点索引、更新文件索引和更新文件状态生成更新文件索引信息;
发送模块1212,用于当接收到更新端发送的文件同步请求时,将更新文件索引信息返回至更新端,以使更新端将更新文件索引信息与更新端中的原始文件索引信息进行节点对比,得到差异叶子节点信息,并使用差异叶子节点信息中的更新文件索引和更新文件状态进行更新文件同步。
在一个实施例中,信息生成装置1200,还包括:
目标更新文件索引信息生成模块,用于基于至少两个更新文件和至少两个更新操作信息生成至少两个更新文件索引和至少两个更新文件状态;
基于至少两个更新文件和至少两个更新文件索引分别进行节点索引运算,得到至少两个子节点索引;
基于至少两个子节点索引生成子更新文件索引信息;
将子更新文件索引信息中的根节点索引与原始根节点索引进行根节点索引运算,得到目标更新根节点索引,基于目标根节点索引、原始文件索引信息和子更新文件索引信息生成目标更新文件索引信息。
在一个实施例中,信息生成装置1200,还包括:
原始文件索引信息生成模块,用于获取各个原始文件,基于各个原始文件生成对应的原始文件状态;
将各个原始文件和各个原始文件对应的原始文件状态进行节点索引运算,得到原始文件索引信息;
将原始文件索引信息发送至终端,以使终端根据原始文件索引信息获取到各个原始文件。
上述文件同步装置和信息生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储原始文件、原始文件索引信息、更新文件、更新文件索引信息。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种信息生成方法或者文件同步方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图14所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种文件同步方法或者文件同步方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图13-14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (11)

1.一种文件同步方法,其特征在于,所述方法包括:
接收更新文件索引信息,所述更新文件索引信息是根据更新信息对原始文件索引信息进行更新后得到的,所述更新信息包括更新文件索引和更新文件状态;所述原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;
获取所述原始文件索引信息,将所述原始文件索引信息与所述更新文件索引信息进行节点对比,得到所述更新文件索引信息对应的差异叶子节点信息;
将所述差异叶子节点信息中的所述更新文件索引和所述更新文件状态写入预设差异叶子节点信息队列;
基于所述预设差异叶子节点信息队列中的所述更新文件索引和所述更新文件状态进行更新文件同步,并将所述原始文件索引信息替换为所述更新文件索引信息。
2.根据权利要求1所述的方法,其特征在于,所述将所述原始文件索引信息与所述更新文件索引信息进行节点对比,得到所述更新文件索引信息对应的差异叶子节点信息,包括:
获取所述原始文件索引信息中的原始根节点索引和所述更新文件索引信息中的更新根节点索引;
将所述原始根节点索引和所述更新根节点索引进行比较,当所述原始根节点索引与所述更新根节点索引未相同,且所述更新根节点索引为非叶子节点信息时,基于所述更新根节点索引将所述更新文件索引信息划分为第一子更新文件索引信息和第二子更新文件索引信息;
当所述第一子更新文件索引信息中的根节点索引与所述原始根节点索引相同,且所述第二子更新文件索引信息为叶子节点信息时,将所述第二子更新文件索引信息作为所述更新文件索引信息对应的差异叶子节点信息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述第一子更新文件索引信息中的根节点索引与所述原始根节点索引未相同时,将所述第一子更新文件索引信息作为所述更新文件索引信息,并返回将所述原始根节点索引和所述更新根节点索引进行比较的步骤执行,直到所述原始根节点索引与所述更新根节点索引相同,得到各个第二子更新文件索引信息;
当所述各个第二子更新文件索引信息为叶子节点信息时,将所述各个第二子更新文件索引信息分别作为所述更新文件索引信息对应的差异叶子节点信息。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述第一子更新文件索引信息中的根节点索引与所述原始根节点索引相同,且所述第二子更新文件索引信息为非叶子节点信息时,获取所述第二子更新文件索引信息中的子叶子节点信息,将所述子叶子节点信息作为所述差异节点信息。
5.一种信息生成方法,其特征在于,所述方法,包括:
获取更新指令,所述更新指令携带更新文件标识和更新操作信息;
基于所述更新文件标识和更新操作信息生成更新文件索引和更新文件状态;
获取原始文件索引信息中的原始根节点索引,所述原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;
基于所述更新文件索引、所述更新文件状态和所述原始根节点索引进行更新根节点索引运算,得到更新根节点索引;
基于所述原始文件索引信息、所述更新根节点索引、所述更新文件索引和所述更新文件状态生成更新文件索引信息;
当接收到更新端发送的文件同步请求时,将所述更新文件索引信息返回至所述更新端,以使所述更新端将所述更新文件索引信息与所述更新端中的原始文件索引信息进行节点对比,得到差异叶子节点信息,并使用所述差异叶子节点信息中的所述更新文件索引和所述更新文件状态进行更新文件同步。
6.根据权利要求5所述的方法,其特征在于,所述更新指令携带至少两个更新文件标识和至少两个更新操作信息,所述方法还包括:
基于所述至少两个更新文件和所述至少两个更新操作信息生成至少两个更新文件索引和至少两个更新文件状态;
基于所述至少两个更新文件索引和至少两个更新文件状态分别进行节点索引运算,得到至少两个子节点索引;
基于所述至少两个子节点索引生成子更新文件索引信息;
将所述子更新文件索引信息中的根节点索引与所述原始根节点索引进行根节点索引运算,得到目标更新根节点索引,基于所述目标更新根节点索引、所述原始文件索引信息和所述子更新文件索引信息生成目标更新文件索引信息。
7.根据权利要求5所述的方法,其特征在于,在所述当检测到更新指令时之前,还包括:
获取所述各个原始文件,基于所述各个原始文件生成对应的原始文件状态;
将所述各个原始文件和所述各个原始文件对应的原始文件状态进行节点索引运算,得到所述原始文件索引信息;
将所述原始文件索引信息发送至终端,以使所述终端根据所述原始文件索引信息获取到所述各个原始文件。
8.一种文件同步装置,其特征在于,所述装置包括:
接收模块,用于接收更新文件索引信息,所述更新文件索引信息是根据更新信息对原始文件索引信息进行更新后得到的,所述更新信息包括更新文件索引和更新文件状态;所述原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;
对比模块,用于获取所述原始文件索引信息,将所述原始文件索引信息与所述更新文件索引信息进行节点对比,得到所述更新文件索引信息对应的差异叶子节点信息;
写入模块,用于将所述差异叶子节点信息中的所述更新文件索引和所述更新文件状态写入预设差异叶子节点信息队列;
同步模块,用于基于所述预设差异叶子节点信息队列中的所述更新文件索引和所述更新文件状态进行更新文件同步,并将所述原始文件索引信息替换为所述更新文件索引信息。
9.一种信息生成装置,其特征在于,所述装置包括:
获取指令模块,用于获取更新指令,所述更新指令携带更新文件标识和更新操作信息;
生成模块,用于基于所述更新文件标识和更新操作信息生成更新文件索引和更新文件状态;
获取索引模块,用于获取原始文件索引信息中的原始根节点索引,所述原始文件索引信息是使用各个原始文件对应的原始文件索引和原始文件状态生成的树结构;
运算模块,用于基于所述更新文件索引、所述更新文件状态和所述原始根节点索引进行更新根节点索引运算,得到更新根节点索引;
索引信息生成模块,用于基于所述原始文件索引信息、所述更新根节点索引、所述更新文件索引和所述更新文件状态生成更新文件索引信息;
发送模块,用于当接收到更新端发送的文件同步请求时,将所述更新文件索引信息返回至所述更新端,以使所述更新端将所述更新文件索引信息与所述更新端中的原始文件索引信息进行节点对比,得到差异叶子节点信息,并使用所述差异叶子节点信息中的所述更新文件索引和所述更新文件状态进行更新文件同步。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202210334800.1A 2022-03-31 2022-03-31 文件同步、信息生成方法、装置、计算机设备和存储介质 Pending CN114647630A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210334800.1A CN114647630A (zh) 2022-03-31 2022-03-31 文件同步、信息生成方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210334800.1A CN114647630A (zh) 2022-03-31 2022-03-31 文件同步、信息生成方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN114647630A true CN114647630A (zh) 2022-06-21

Family

ID=81995917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210334800.1A Pending CN114647630A (zh) 2022-03-31 2022-03-31 文件同步、信息生成方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN114647630A (zh)

Similar Documents

Publication Publication Date Title
CN109254733B (zh) 用于存储数据的方法、装置和系统
US9317519B2 (en) Storage system for eliminating duplicated data
Chavan et al. Survey paper on big data
US20160147809A1 (en) Exporting and Importing Database Tables in a Multi-User Database Environment
US10310904B2 (en) Distributed technique for allocating long-lived jobs among worker processes
CN111177143B (zh) 键值数据存储方法、装置、存储介质与电子设备
US11500873B2 (en) Methods and systems for searching directory access groups
Zhai et al. Hadoop perfect file: A fast and memory-efficient metadata access archive file to face small files problem in hdfs
CN115858471A (zh) 业务数据变更记录方法、装置、计算机设备及介质
CN114924911A (zh) Windows操作系统有效数据备份方法、装置、设备和存储介质
CN114647630A (zh) 文件同步、信息生成方法、装置、计算机设备和存储介质
CN114356945A (zh) 数据处理方法、装置、计算机设备和存储介质
CN112052234A (zh) 业务数据的处理方法和装置、存储介质、电子装置
US10664442B1 (en) Method and system for data consistency verification in a storage system
CN113515518A (zh) 数据存储方法、装置、计算机设备和存储介质
US10353920B2 (en) Efficient mirror data re-sync
CN116821102B (zh) 数据迁移方法、装置、计算机设备和存储介质
CN110727672A (zh) 数据映射关系查询方法、装置、电子设备及可读介质
US9967310B2 (en) Using an RPC framework to facilitate out-of-band data transfers
CN115292094B (zh) 数据恢复处理方法、装置、设备、存储介质和程序产品
WO2024016789A1 (zh) 日志数据查询方法、装置、设备和介质
CN117648336A (zh) 数据查询方法、装置、计算机设备和存储介质
CN114610688A (zh) 日志聚合方法、装置、计算机设备和存储介质
CN117389989A (zh) 数据同步方法、装置、计算机设备、存储介质和程序产品
CN115357559A (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