一种数据处理方法及相应装置与流程
本技术涉及计算机,具体涉及一种数据处理方法及相应装置。
背景技术:
1、随着数字化转型的加速,远程工作、跨国项目团队和在线教育的兴起要求能够在不同地点、时间和设备上实时地共同编辑和管理文档。这种需求催生了协同编辑技术的发展,它通过云计算和实时同步技术,使得多人可以同时对同一份文档进行编辑、评论和修改,极大地提高了工作效率和协同流畅性,从而实现了高效的团队合作、实时更新和远程工作的无缝整合。
2、业界普遍采用无冲突复制数据类型(conflict-free replicated data type,crdt)算法,通过设计无冲突的数据类型,使每个副本能够独立地接受更新,不依赖云端服务器,可以在各自的副本上完成自动合并、解决冲突,保证多个设备上的数据一致性。
3、为了保证支持任意时刻多副本数据合并后的一致性,需要在日志中记录很多元数据。另外,为了确保多端合并和解冲突的正确性,这些元数据不能被删除,导致日志无限膨胀,不仅会占用计算机设备中大量的存储资源,也会影响计算性能。
技术实现思路
1、本技术提供一种数据处理方法,用于及时清理日志,降低对存储资源的占用和计算性能的影响。本技术还提供了相应装置、计算机可读存储介质和计算机程序产品等。
2、本技术第一方面提供一种数据处理方法,该方法应用于第一装置,该方法包括:在与第二装置协同编辑的过程中,生成第一快照;其中,第一快照包括以压缩形式存储的第一协同数据,第一协同数据包括第二快照以及第一日志数据,第一日志数据包括在第二快照和第一快照之间的时间段内协同编辑产生的第二协同数据和第二协同数据对应的元数据;删除第三快照和第二日志数据,第三快照和第二日志数据已包含于第二快照中;或者,删除第二快照和第一日志数据。
3、本技术中,第一装置可以为终端设备或者云端装置,第二装置也可以为终端设备或者云端装置;其中,云端装置可以为物理机或虚拟机(virtual machine,vm)。
4、本技术中,协同编辑可以是各种类型的分布式协同编辑,如:crdt算法。不同的装置可以协同编辑同一个文档,协同编辑会产生协同数据和元数据,协同数据指的是用户写入或修改的数据,元数据指的是用于记录协同数据的类型,或者协同数据的位置,或者不同协同数据之间前后关系的数据。
5、本技术中,第二快照可以为第一快照的前一个快照,快照可以是周期性生成的,或者,日志数据的数据量达到一定阈值生成的。
6、本技术中,第一装置或第二装置上可以仅保留最后一个快照,以及在最后一个快照之后产生的日志数据,也可以包括在后生成的几个快照,以及几个快照中的日志数据。
7、上述第一方面中,第一装置在与第二装置协同编辑的过程中,可以周期性或者非周期性生成快照,在后生成的快照会包含在前生成的快照,以及两个快照之间产生的日志数据。这样,最后生成的快照包含了之前的编辑产生的所有日志数据(协同数据和元数据),就可以及时删除之前的快照和日志数据,从而降低了日志膨胀的概率。另外,快照中的数据是压缩形式存储的,可以降低存储空间,从而可以节省存储资源,还可以提高计算性能。
8、一种可能的实现方式中,在生成第一快照之后,该方法还包括:断开第二装置的通信连接,在经过一段时间后,重新建立与第二装置的通信连接;根据快照信息与第二装置进行快照同步和/或日志同步;其中,快照信息用于指示第一装置存储的至少一个快照。
9、本技术中,第一装置与第二装置的通信连接断开期间,无法与第二装置进行协同,所以,在第一装置重新建立与第二装置的通信连接后,要及时进行快照同步和/或日志同步,使第一装置和第二装置的数据保持一致,这样,才能继续进行协同编辑。
10、该种可能的实现方式中,第一装置与第二装置重新建立连接后,及时进行快照同步和/或日志同步,可以提高后续协同编辑的准确性。
11、一种可能的实现方式中,根据快照信息与第二装置进行快照同步和/或日志同步,包括:向第二装置发送快照信息;接收来自第二装置的比对结果,比对结果用于指示第一装置上的至少一个快照与第二装置上的快照是否存在重叠;根据至少一个快照与第二装置上的快照的重叠情况,进行快照同步和/或日志同步。
12、该种可能的实现方式中,通过两个装置上快照的重叠情况,来进行快照同步和/或日志同步,可以提高快照同步和/或日志同步的准确度。
13、一种可能的实现方式中,根据至少一个快照与第二装置上的快照的重叠情况,进行快照同步和/或日志同步,包括:若第二装置上的最后一个快照的信息与第一快照的信息相同,则从第二装置拉取第三日志数据,第三日志数据包括第一装置通信连接断开期间第二装置编辑产生的数据和元数据。
14、本技术中,第一装置上的最后一个快照为第一快照,若第二装置上的最后一个快照的信息与第一快照的信息相同,则表示在第一装置与第二装置通信连接断开期间第二装置没有生成快照,两个装置差异的是通信连接断开期间产生的日志数据,则同步日志数据即可。
15、本技术中,第一快照的信息可以是第一快照的标识或索引等可以指示第一快照的信息。同理,最后一个快照的信息可以为最后一个快照的标识或索引等可以指示最后一个快照的信息。
16、该种可能的实现方式中,通过比对第二装置上的最后一个快照的信息与第一快照的信息来确定后续同步的内容,可以提高通信连接断开后再建立连接情况下的数据同步效率。
17、一种可能的实现方式中,该方法还包括:若第一装置在通信连接断开期间产生第四日志数据,则向第二装置发送第四日志数据。
18、该种可能的实现方式中,第一装置将通信连接断开期间产生第四日志数据发送给第二装置,可以提高第二装置的数据同步效率。
19、一种可能的实现方式中,根据至少一个快照与第二装置上的快照的重叠情况,进行快照同步和/或日志同步,包括:若第二装置上的最后一个快照的信息与第一快照的信息不相同,且第二装置上的快照与第一装置上的快照存在重叠,则从第二装置拉取第四快照和第五日志数据;其中,第四快照为第一装置通信连接断开期间第二装置生成的快照,第五日志数据包括第二装置在生成第四快照后编辑产生的数据和元数据。
20、本技术中,最后一个快照的信息与第一快照的信息不相同表示在通信连接断开期间第二装置有生成新的快照,而且两个装置上的快照存在重叠,表示通信连接断开的时间还不是特别长,可以通过第一装置上已有的快照与第二装置在通信连接断开期间产生的快照进行同步,使互相协同的装置上的数据保持一致。
21、该种可能的实现方式中,针对快照存在重叠,但最后一个快照不同的情况,第一装置可以拉取在通信连接断开期间第二装置生成的快照,以及第二装置在最后一个快照后生成的日志数据的方式进行数据同步,可以提高通信连接断开后再建立连接情况下的数据同步效率。
22、一种可能的实现方式中,该方法还包括:若第一装置在通信连接断开期间基于第一快照产生了第六日志数据,则基于第一快照,第四快照和第五日志数据重新生成与第六日志数据对应的第七日志数据;向第二装置发送第七日志数据。
23、该种可能的实现方式中,第一装置可以将通信连接断开期间产生的第六日志数据与从第二装置拉取来的第四快照和第五日志数据重新生成第七日志数据,然后再发送第七日志数据给第二装置。这样,第二装置可以直接完成数据同步,针对多个装置协同的场景,该种方式可以降低其他装置因处理第六日志数据产生的重复开销。
24、一种可能的实现方式中,根据至少一个快照与第二装置上的快照的重叠情况,进行快照同步和/或日志同步,包括:若第二装置上的快照与第一装置上的快照不重叠,则从第二装置拉取第五快照和第八日志数据;其中,第五快照为第一装置通信连接断开期间第二装置生成的快照,第八日志数据包括第二装置在生成第五快照后编辑产生的数据和元数据。
25、该种可能的实现方式中,若第二装置上的快照与第一装置上的快照不重叠,则表示第一装置通信连接断开的时间过长,已经没办法通过历史快照完成与第二装置的协同,则可以直接拉取通信连接断开期间第二装置生成的第五快照,以及第八日志数据覆盖第一装置上的数据即可。这样,可以提高数据同步效率,还可以降低第一装置得数据同步开销。
26、本技术第二方面提供一种数据处理方法,该方法应用于第二装置,该方法包括:在与第一装置协同编辑的过程中,确定与第一装置的通信连接断开;在重新与第一装置建立通信连接后,接收来自第一装置的快照信息,快照信息用于指示第一装置存储的至少一个快照;根据快照信息与第一装置进行快照同步和/或日志同步。
27、该第二方面中,第二装置可以与第一装置协同编辑,在与第一装置的通信连接断开,在重新与第一装置建立通信连接后,可以根据自身快照和第一装置的快照信息,与第一装置进行快照同步和/或日志同步。从而实现对协同编辑过程中离线场景的有效支持。
28、一种可能的实现方式中,根据快照信息与第一装置进行快照同步和/或日志同步,包括:将快照信息与第二装置上的快照进行比对,确定比对结果;向第一装置发送比对结果,比对结果用于指示第一装置上的至少一个快照与第二装置上的快照是否存在重叠。
29、一种可能的实现方式中,该方法还包括:若第二装置上的最后一个快照的信息与第一装置上的最后一个快照的信息相同,则向第一装置推送第三日志数据,第三日志数据包括第一装置通信连接断开期间第二装置编辑产生的数据和元数据。
30、一种可能的实现方式中,该方法还包括:接收来自第一装置的第四日志数据,第四日志数据包括第一装置在通信连接断开期间产生数据和元数据。
31、一种可能的实现方式中,该方法还包括:若第二装置上的最后一个快照的信息与第一装置上的最后一个快照的信息不相同,且第二装置上的快照与第一装置上的快照存在重叠,则向第一装置推送第四快照和第五日志数据;其中,第四快照为第一装置通信连接断开期间第二装置生成的快照,第五日志数据包括第二装置在生成第四快照后编辑产生的数据和元数据。
32、一种可能的实现方式中,该方法还包括:接收来自第一装置的第七日志数据,第七日志数据是第一装置基于最后一个快照,第四快照和第五日志数据重新生成与第六日志数据对应的日志数据,第六日志数据是第一装置在通信连接断开期间基于第一快照产生的。
33、一种可能的实现方式中,该方法还包括:若第二装置上的快照与第一装置上的快照不重叠,则向第一装置推送第五快照和第八日志数据;其中,第五快照为第一装置通信连接断开期间第二装置生成的快照,第八日志数据包括第二装置在生成第五快照后编辑产生的数据和元数据。
34、本技术第三方面提供一种数据处理装置,包括:
35、第一处理单元,用于在与第二装置协同编辑的过程中,生成第一快照;其中,第一快照包括以压缩形式存储的第一协同数据,第一协同数据包括第二快照以及第一日志数据,第一日志数据包括在第二快照和第一快照之间的时间段内协同编辑产生的第二协同数据和第二协同数据对应的元数据;
36、第二处理单元,用于删除第三快照和第二日志数据,第三快照和第二日志数据已包含于第二快照中;或者,删除第二快照和第一日志数据。
37、一种可能的实现方式中,该装置还包括:通信单元;其中,
38、通信单元,用于断开第二装置的通信连接,在经过一段时间后,重新建立与第二装置的通信连接;
39、第一处理单元,用于根据快照信息与第二装置进行快照同步和/或日志同步;其中,快照信息用于指示第一装置存储的至少一个快照。
40、一种可能的实现方式中,通信单元,还用于向第二装置发送快照信息;接收来自第二装置的比对结果,比对结果用于指示第一装置上的至少一个快照与第二装置上的快照是否存在重叠;
41、第一处理单元,用于根据至少一个快照与第二装置上的快照的重叠情况,进行快照同步和/或日志同步。
42、一种可能的实现方式中,通信单元,还用于若第二装置上的最后一个快照的信息与第一快照的信息相同,则从第二装置拉取第三日志数据,第三日志数据包括第一装置通信连接断开期间第二装置编辑产生的数据和元数据。
43、一种可能的实现方式中,通信单元,还用于若第一装置在通信连接断开期间产生第四日志数据,则向第二装置发送第四日志数据。
44、一种可能的实现方式中,通信单元,还用于若第二装置上的最后一个快照的信息与第一快照的信息不相同,且第二装置上的快照与第一装置上的快照存在重叠,则从第二装置拉取第四快照和第五日志数据;其中,第四快照为第一装置通信连接断开期间第二装置生成的快照,第五日志数据包括第二装置在生成第四快照后编辑产生的数据和元数据。
45、一种可能的实现方式中,第一处理单元,还用于若第一装置在通信连接断开期间基于第一快照产生了第六日志数据,则基于第一快照,第四快照和第五日志数据重新生成与第六日志数据对应的第七日志数据;
46、通信单元,还用于向第二装置发送第七日志数据。
47、一种可能的实现方式中,通信单元,还用于若第二装置上的快照与第一装置上的快照不重叠,则从第二装置拉取第五快照和第八日志数据;其中,第五快照为第一装置通信连接断开期间第二装置生成的快照,第八日志数据包括第二装置在生成第五快照后编辑产生的数据和元数据。
48、本技术第四方面提供一种数据处理装置,包括:
49、第一处理单元,用于在与第一装置协同编辑的过程中,确定与第一装置的通信连接断开;
50、通信单元,用于在重新与第一装置建立通信连接后,接收来自第一装置的快照信息,快照信息用于指示第一装置存储的至少一个快照;
51、第二处理单元,用于根据快照信息与第一装置进行快照同步和/或日志同步。
52、一种可能的实现方式中,该装置还包括通信单元;
53、第一处理单元,用于将快照信息与第二装置上的快照进行比对,确定比对结果;
54、通信单元,还用于向第一装置发送比对结果,比对结果用于指示第一装置上的至少一个快照与第二装置上的快照是否存在重叠。
55、一种可能的实现方式中,通信单元,还用于若第二装置上的最后一个快照的信息与第一装置上的最后一个快照的信息相同,则向第一装置推送第三日志数据,第三日志数据包括第一装置通信连接断开期间第二装置编辑产生的数据和元数据。
56、一种可能的实现方式中,通信单元,还用于接收来自第一装置的第四日志数据,第四日志数据包括第一装置在通信连接断开期间产生数据和元数据。
57、一种可能的实现方式中,通信单元,还用于若第二装置上的最后一个快照的信息与第一装置上的最后一个快照的信息不相同,且第二装置上的快照与第一装置上的快照存在重叠,则向第一装置推送第四快照和第五日志数据;其中,第四快照为第一装置通信连接断开期间第二装置生成的快照,第五日志数据包括第二装置在生成第四快照后编辑产生的数据和元数据。
58、一种可能的实现方式中,通信单元,还用于接收来自第一装置的第七日志数据,第七日志数据是第一装置基于最后一个快照,第四快照和第五日志数据重新生成与第六日志数据对应的日志数据,第六日志数据是第一装置在通信连接断开期间基于第一快照产生的。
59、一种可能的实现方式中,通信单元,还用于若第二装置上的快照与第一装置上的快照不重叠,则向第一装置推送第五快照和第八日志数据;其中,第五快照为第一装置通信连接断开期间第二装置生成的快照,第八日志数据包括第二装置在生成第五快照后编辑产生的数据和元数据。
60、本技术第五方面提供一种计算机设备,该计算机设备包括处理器和存储有计算机程序的计算机可读存储介质;所述处理器与所述计算机可读存储介质耦合,所述计算机程序被所述处理器执行时实现如上述第一方面或任一可能的实现方式的方法。
61、本技术第六方面提供一种计算机设备,该计算机设备包括处理器和存储有计算机程序的计算机可读存储介质;所述处理器与所述计算机可读存储介质耦合,所述计算机程序被所述处理器执行时实现如上述第二方面或任一可能的实现方式的方法。
62、本技术第七方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当所述计算机执行指令被处理器执行时,所述处理器执行如上述第一方面或第一方面任意一种可能的实现方式所述的方法。
63、本技术第八方面提供一种存储一个或多个计算机执行指令的计算机可读存储介质,当所述计算机执行指令被处理器执行时,所述处理器执行如上述第二方面或第二方面任意一种可能的实现方式所述的方法。
64、本技术第九方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当所述计算机执行指令被所述处理器执行时,所述处理器执行上述第一方面或第一方面任意一种可能实现方式的方法。
65、本技术第十方面提供一种存储一个或多个计算机执行指令的计算机程序产品,当所述计算机执行指令被所述处理器执行时,所述处理器执行上述第二方面或第二方面任意一种可能实现方式的方法。
66、本技术第十一方面提供了一种芯片系统,该芯片系统包括处理器,用于支持计算机设备实现上述第一方面或第一方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存计算机设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
67、本技术第十二方面提供了一种芯片系统,该芯片系统包括处理器,用于支持计算机设备实现上述第二方面或第二方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,存储器,用于保存计算机设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
68、本技术第十三方面提供一种协同编辑系统,包括第一装置和第二装置,第一装置用于执行上述第一方面或第一方面任意一种可能的实现方式所述的方法,第二装置用于执行上述第二方面或第二方面任意一种可能的实现方式所述的方法。
69、其中,第二方面至第四方面及其任一可能的实现方式,以及第五方面至第十二方面所带来的技术效果可参考第一方面或第一方面及其不同可能实现方式所带来的技术效果,此处不再赘述。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com