CN110020328A - 在线表格的数据处理方法、装置、电子设备及存储介质 - Google Patents
在线表格的数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110020328A CN110020328A CN201910303972.0A CN201910303972A CN110020328A CN 110020328 A CN110020328 A CN 110020328A CN 201910303972 A CN201910303972 A CN 201910303972A CN 110020328 A CN110020328 A CN 110020328A
- Authority
- CN
- China
- Prior art keywords
- block data
- metadata
- data
- online table
- online
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种在线表格的数据处理方法、装置、电子设备及存储介质,该方法包括:在获取到对所述在线表格的操作指令时,确定所述操作指令对应的第一表格数据所属的第一分块数据;根据所述第一分块数据生成第二分块数据,并在所述第二分块数据中与所述第一表格数据对应的第二表格数据中应用所述操作指令;将所述在线表格的元数据与所述第一分块数据的引用关系更新为与所述第二分块数据的引用关系。实现了用户读写并发操作,并保证了数据完整性和原子性。
Description
技术领域
本公开涉及数据管理技术领域,尤其涉及一种在线表格的数据处理方法、装置、电子设备及存储介质。
背景技术
在线表格是可以多个用户异地协同编辑的电子表格工具,可以在云端实时保存,并通过互联网实时共享。
在线表格的数据存储通常包括单元格数据和元数据,为了解决大表格的存储、传输和加载问题,通常会将单元格数据进行分块存储,每个分块可以分散存储在云端的任意位置。当展示或者编辑在线表格的某个或某些目标单元格时,通常只需要读取目标单元格对应的分块数据即可。
在用户编辑在线表格时,需要保证不影响其他用户的正常浏览。比如多个用户对同一在线表格进行编辑或浏览,现有技术中通常是获取在线表格的读写互斥锁后才能对在线表格的共享数据进行读或写操作。但这种方式极大地降低了在线表格的读写并发能力。
发明内容
本公开提供一种在线表格的数据处理方法、装置、电子设备及存储介质,以解决现有技术在线表格读写并发能力低等缺陷。
本公开第一个方面提供一种在线表格的数据处理方法,包括:
在获取到对所述在线表格的操作指令时,确定所述操作指令对应的第一表格数据所属的第一分块数据;
根据所述第一分块数据生成第二分块数据,并在所述第二分块数据中与所述第一表格数据对应的第二表格数据中应用所述操作指令;
将所述在线表格的元数据与所述第一分块数据的引用关系更新为与所述第二分块数据的引用关系。
本公开第二个方面提供一种在线表格的数据处理装置,包括:
获取模块,用于在获取到对所述在线表格的操作指令时,确定所述操作指令对应的第一表格数据所属的第一分块数据;
处理模块,用于根据所述第一分块数据生成第二分块数据,并在所述第二分块数据中与所述第一表格数据对应的第二表格数据中应用所述操作指令;
更新模块,用于将所述在线表格的元数据中与所述第一分块数据的引用关系更新为与所述第二分块数据的引用关系。
本公开第三个方面提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现第一个方面提供的方法。
本公开第四个方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现第一个方面提供的方法。
本公开提供的在线表格的数据处理方法、装置、电子设备及存储介质,通过在用户编辑在线表格时,服务器将该用户的编辑操作所涉及到的第一分块数据生成第二分块数据,对该第二分块数据应用编辑操作,并将第二分块数据持久化到新的位置,比如服务器中任意与第一分块数据所在位置不同的位置,然后更新在线表格的元数据的引用关系,使得更新后的元数据不再引用第一分块数据,而是引用用户编辑后的第二分块数据。在内存中应用编辑操作,并将第二分块数据存储在新的位置,最后更新元数据与分块数据的引用关系,可以有效实现多用户读写并发操作,在第一用户编辑的过程中,不影响其他用户的读写操作,若有第二用户打开在线表格,可以直接获取未应用编辑操作的元数据和第一分块数据,无需获取互斥锁,且第二用户不会浏览到第一用户正在进行的编辑操作的内容。并且,即使元数据更新失败,则整个编辑操作应用失败,并不修改原来的元数据和第一分块数据,当用户打开在线表格时,仍可以获取到未应用编辑操作的元数据和第一分块数据,保证了数据完整性和原子性。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例适用的数据处理***的结构示意图;
图2为本公开一实施例提供的方在线表格的数据处理法的流程示意图;
图3为本公开另一实施例提供的在线表格的数据处理方法的流程示意图;
图4为本公开一实施例提供的在线表格的数据处理方法的示例性示意图;
图5为本公开一实施例提供的在线表格的数据处理装置的结构示意图;
图6为本公开一实施例提供的电子设备的结构示意图;
图7为适用于本公开实施例的电子设备800的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开实施例提供的在线表格的数据处理方法,适用于以下数据处理***:如图1所示,为本公开实施例适用的数据处理***的结构示意图,该数据处理***可以包括服务器和至少一个用户终端。服务器可以是云端服务器。在线表格的数据存储在服务器中,多个用户可以通过用户终端协同编辑在线表格。在线表格的数据包括单元格数据和元数据,为了解决大表格的存储、传输和加载问题,可以将单元格数据进行分块存储,每个分块数据可以分散存储在云端服务器的任意位置。在用户编辑在线表格时,服务器将该用户的编辑操作所涉及到的第一分块数据读取到内存中,在内存中对该第一分块数据应用编辑操作,获得第二分块数据,将第二分块数据持久化到新的位置,比如服务器中任意与第一分块数据所在位置不同的位置,然后更新在线表格的元数据的引用关系,使得更新后的元数据不再引用第一分块数据,而是引用用户编辑后的第二分块数据。在内存中应用编辑操作,并将第二分块数据存储在新的位置,最后更新元数据与分块数据的引用关系,可以有效实现多用户读写并发操作,在第一用户编辑的过程中,不影响其他用户的读写操作,若有第二用户打开在线表格,可以直接获取未应用编辑操作的元数据和分块数据,无需获取互斥锁,且第二用户不会浏览到第一用户正在进行的编辑操作的内容。并且,即使元数据更新失败,则整个编辑操作应用失败,并不修改原来的元数据和分块数据,当用户打开在线表格时,仍可以获取到未应用编辑操作的元数据和分块数据,保证了数据完整性和原子性。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
本公开一实施例提供一种在线表格的数据处理方法,用于对在线表格的数据进行相应的处理。本公开实施例的执行主体为在线表格的数据处理装置,该装置可以设置在服务器中或云端服务器中。
如图2所示,为本公开实施例提供的在线表格的数据处理方法的流程示意图,该方法包括:
步骤101,在获取到对在线表格的操作指令时,确定操作指令对应的第一表格数据所属的第一分块数据。
具体的,当第一用户在用户终端对在线表格进行操作时,比如编辑某个或某些单元格的内容,则会向在线表格的数据处理装置发送操作指令,该操作指令可以包括操作类型(比如修改、删除、***等等)、操作对象(比如,在线表格的标识信息、待操作的单元格的标识信息等)、操作内容(比如修改后的内容、删除的内容、***的内容等等)等等。在获取到对在线表格的操作指令时,可以确定该操作指令对应的第一表格数据所属的第一分块数据,其中,第一分块数据可以是一个分块数据也可以是多个分块数据,具体根据实际分块情况及用户操作的单元格来确定。
具体可以是从该在线表格的元数据的存储位置(可以称为第一位置)读取该在线表格的元数据到内存中,根据元数据记录的待操作的单元格与分块数据的引用关系确定操作指令对应的第一表格数据所属的第一分块数据,从第一分块数据所在的存储位置(可以称为第二位置)读取第一分块数据到内存中。
需要说明的是,由于分块数据可以分散存储在服务器的任意位置,且分块数据可能与在线表格的元数据未存储在一起,所以上述第一位置和第二位置可以是相同位置,也可以是不同位置,具体可以根据实际需求设置。比如元数据存储在一个数据库中,分块数据存储在另一个数据库中。或者,元数据和分块数据存储在同一个数据库中等等。当然这里不限于是存储在数据库中,也可以是其他的存储方式,比如存储在磁盘中等,具体可以根据实际需求设置。
步骤102,根据第一分块数据生成第二分块数据,并在第二分块数据中与第一表格数据对应的第二表格数据中应用操作指令。
具体的,在确定了操作指令对应的第一表格数据所属的第一分块数据后,可以根据第一分块数据生成第二分块数据,并在第二分块数据中与第一表格数据对应的第二表格数据中应用该操作指令,以完成对在线表格的编辑操作。其中,根据第一分块数据生成第二分块数据可以是对第一分块数据进行复制,也即生成的第二分块数据与第一分块数据是一致的,而在第二分块数据中与与第一表格数据对应的第二表格数据中应用操作指令后,第二分块数据变为根据操作指令编辑后的分块数据,可以将第二分块数据进行存储,与第一分块数据分别存储,确保不会覆盖第一分块数据。
可选地,可以是在内存中生成第二分块数据,并在应用操作指令后,将编辑后的第二分块数据持久化到另外的存储位置。
这里在内存中应用操作指令,完成编辑操作,并未对实际存储的该在线表格的元数据和分块数据进行修改。
步骤103,将在线表格的元数据与第一分块数据的引用关系更新为与第二分块数据的引用关系。
具体的,在在第二分块数据中与第一表格数据对应的第二表格数据中应用操作指令后,可以将实际存储的该在线表格的元数据与第一分块数据的引用关系更新为与第二分块数据的引用关系。也即将实际存储的在线表格的元数据中第一用户编辑的单元格对应的分块数据更新为第二分块数据,以完成第一用户的编辑操作,当后续再有用户要打开该在线表格时,可以直接读取应用了编辑操作后的元数据以及对于第一用户编辑了的那些单元格,读取到的是编辑后的第二分块数据,而不再读取第一用户编辑前的第一分块数据。
可以理解地,更新元数据的引用关系的过程,包括了增加新的元数据的过程,当用户增加了单元格时,元数据中也需要增加新单元格的描述信息,并记录新单元格引用的单元格数据等信息,具体处理方式为现有技术,在此不再赘述。
可选地,元数据的引用关系的具体更新方式,可以是直接对实际存储的元数据进行更新,也可以是将元数据读取到内存中,在内存中进行更新后,将更新后的元数据持久化到元数据的原始位置,覆盖原来的元数据,来实现元数据的更新。具体可以根据实际需求设置。
可以理解地,在元数据更新成功之前,当有第二用户打开该在线表格时,由于对实际存储的元数据和分块数据并未修改,第二用户可以打开未经编辑的在线表格,展示的仍为第一分块数据中的内容,而不会浏览到第一用户正在编辑的内容,保证了在线表格的读写并发能力,并且保证了数据的完整性和原子性。
可选地,由于用户的操作是在内存中进行相应的处理,得到的第二分块数据也是另外存储的,在编辑过程中,对在线表格的原始数据未修改,因此,可以多个用户同时对该在线表格进行操作,只要区分各用户的操作即可,比如可以为每个用户的操作获得的第二分块数据设置相应的区分标识,分别存储。比如可以根据用户操作触发先后顺序设置版本号,在内存中完成编辑操作的应用后,按照顺序更新元数据与分块数据的引用关系,实现多用户协同操作。
本公开实施例提供的在线表格的数据处理方法,通过在用户编辑在线表格时,服务器将该用户的编辑操作所涉及到的第一分块数据生成第二分块数据,对该第二分块数据应用编辑操作,并将第二分块数据持久化到新的位置,比如服务器中任意与第一分块数据所在位置不同的位置,然后更新在线表格的元数据的引用关系,使得更新后的元数据不再引用第一分块数据,而是引用用户编辑后的第二分块数据。在内存中应用编辑操作,并将第二分块数据存储在新的位置,最后更新元数据与分块数据的引用关系,可以有效实现多用户读写并发操作,在第一用户编辑的过程中,不影响其他用户的读写操作,若有第二用户打开在线表格,可以直接获取未应用编辑操作的元数据和第一分块数据,无需获取互斥锁,且第二用户不会浏览到第一用户正在进行的编辑操作的内容。并且,即使元数据更新失败,则整个编辑操作应用失败,并不修改原来的元数据和第一分块数据,当用户打开在线表格时,仍可以获取到未应用编辑操作的元数据和第一分块数据,保证了数据完整性和原子性。
本公开另一实施例对上述实施例提供的在线表格的数据处理方法做进一步补充说明。
如图3所示,为本公开实施例提供的在线表格的数据处理方法的流程示意图。
作为一种可实施的方式,在上述实施例的基础上,可选地,该方法还可以包括:
步骤2011,若在将在线表格的元数据与第一分块数据的引用关系更新为与第二分块数据的引用关系之前,获取到对在线表格的读取指令,则根据在线表格的元数据与第一分块数据的引用关系读取第一分块数据。
具体的,在元数据更新成功之前,当有第二用户打开该在线表格时,由于对实际存储的元数据和第一分块数据并未修改,第二用户可以打开未经编辑的在线表格,展示的仍为第一分块数据中的内容,而不会浏览到第一用户正在编辑的内容,保证了在线表格的读写并发能力,并且保证了数据的完整性和原子性。
作为一种可实施的方式,在上述实施例的基础上,可选地,该方法还可以包括:
若在将在线表格的元数据与第一分块数据的引用关系更新为与第二分块数据的引用关系之后,获取到对在线表格的读取指令,则根据在线表格的元数据与第二分块数据的引用关系读取第二分块数据。
具体的,当第一用户的编辑操作已成功,即成功将实际存储的元数据中原本引用第一分块数据的单元格更新为了引用编辑后的第二分块数据,那么当第二用户再次打开该在线表格时,读取到的即为更新后的元数据和第二分块数据,当然若该在线表格还引用有其他分块数据,会根据引用关系读取其他分块数据,这里只是说明对于第一用户编辑过的部分的读取,不限制对于其他分块数据的读取。则展示给第二用户的是第一用户编辑后的在线表格。这里第二用户与第一用户可以是同一用户,也可以是不同用户。
作为一种可实施的方式,在上述实施例的基础上,可选地,在将在线表格的元数据与第一分块数据的引用关系更新为与第二分块数据的引用关系之后,该方法还可以包括:
步骤104,向在线协同的各用户发送在线表格的数据更新通知。
具体的,当第一用户对在线表格的操作成功后,为了让其他协同操作的用户能够及时看到最新的在线表格,可以向在线协同的各用户发送该在线表格的数据更新通知,以通知各用户刷新正在查看的在线表格,重新读取编辑后的元数据和分块数据,展示编辑后的在线表格,提高协同操作的实时性。
作为一种可实施的方式,在上述实施例的基础上,可选地,在线表格的元数据对应至少一个分块数据;
第一分块数据为操作指令对应的第一表格数据所属的分块数据。
具体的,由于在线表格的单元格数据进行分块存储,则该在线表格可能对应多个分块数据,在用户操作时,可以只读取用户的操作涉及到的分块数据即可,未涉及到的可以不用读取,减少数据传输和加载时间,提高数据处理的效率。
作为一种可实施的方式,在上述实施例的基础上,可选地,当获取到多个用户对在线表格的操作指令时,对于各用户的操作指令,所获得的各第二分块数据分别进行存储。
具体的,由于用户的操作是在内存中进行相应的处理,得到的第二分块数据也是另外存储的,在编辑过程中,对在线表格的原始数据未修改,因此,可以多个用户同时对该在线表格进行操作,只要区分各用户的操作即可,比如可以为每个用户的操作获得的第二分块数据设置相应的区分标识,分别存储。比如可以根据用户操作触发先后顺序设置版本号,在内存中完成编辑操作的应用后,按照顺序更新元数据与分块数据的引用关系,实现多用户协同操作。
作为一种可实施的方式,在上述实施例的基础上,可选地,将在线表格的元数据与第一分块数据的引用关系更新为与第二分块数据的引用关系,包括:
步骤2021,从在线表格的元数据的原始存储位置读取在线表格的第一元数据。
步骤2022,将第一元数据与第一分块数据的引用关系更新为与第二分块数据的引用关系,获得第二元数据。
步骤2023,将第二元数据持久化到在线表格的元数据的原始存储位置。
具体的,元数据的更新方式可以为,将元数据读取到内存中,在内存中进行更新后,将更新后的元数据持久化到元数据的原始位置,覆盖原来的元数据,来实现元数据的更新。
作为一种示例性的实施方式,可选地,该方法具体可以包括:
1、用户对在线表格进行一次编辑操作。
2、编辑操作被同步到云端服务器。
3、云端服务器解析编辑操作,从存储元数据的第一位置加载在线表格的元数据及从存储分块数据的第二位置加载编辑操作涉及的第一分块数据到内存,生成第二分块数据,并在内存中对第二分块数据应用编辑操作。
4、云端服务器先将内存中的第一分块数据持久化到新的位置,再更新元数据的分块引用关系获得第二元数据,最后将第二元数据持久化回原来的位置(即第一位置)。
5、云端服务器将在线表格的数据更新通知给其他在线协同的用户。
6、若同时有新的用户打开该在线表格时,则直接从云端服务器获取最新版本的元数据和分块数据。
示例性的,如图4所示,为本公开实施例提供的在线表格的数据处理方法的示例性示意图。对于在线表格的每一次编辑操作都分配一个单调递增的版本号,相应的在线表格的元数据和分块数据也标记上编辑操作的版本号。比如当前在线表格的元数据版本号为100,且包含3个分块数据,依次覆盖第1行至第200行、第201行至第400行、第401行至第600行的单元格数据。
当用户对该在线表格的第300行进行编辑操作时,产生一个版本号为101 的编辑操作,该编辑操作只影响到第2个分块的单元格数据。云端服务器应用版本号101的编辑操作时,先复制版本号100的第2个分块数据(即第一分块数据),修改第300行的单元格数据,持久化为版本号101的新分块数据(即第二分块数据),最后修改元数据,将对第2个分块数据的的引用关系更新指向新分块数据。
在应用编辑操作时,先将元数据和涉及到的分块数据读取到内存,再更新内存中的元数据和分块数据,并不修改原来位置的分块数据,在元数据持久化回原来位置之前,若有用户打开在线表格,可以直接获取上一个版本号的元数据和分块数据,无需获取读写锁,而且,由于上一版本号的分块数据并未被修改,用户不会浏览到当前版本号编辑操作的未提交内容。
需要说明的是,本公开实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本公开不做限定。
本公开实施例提供的在线表格的数据处理方法,通过在用户编辑在线表格时,服务器将该用户的编辑操作所涉及到的第一分块数据生成第二分块数据,对该第二分块数据应用编辑操作,并将第二分块数据持久化到新的位置,比如服务器中任意与第一分块数据所在位置不同的位置,然后更新在线表格的元数据的引用关系,使得更新后的元数据不再引用第一分块数据,而是引用用户编辑后的第二分块数据。在内存中应用编辑操作,并将第二分块数据存储在新的位置,最后更新元数据与分块数据的引用关系,可以有效实现多用户读写并发操作,在第一用户编辑的过程中,不影响其他用户的读写操作,若有第二用户打开在线表格,可以直接获取未应用编辑操作的元数据和第一分块数据,无需获取互斥锁,且第二用户不会浏览到第一用户正在进行的编辑操作的内容。并且,即使元数据更新失败,则整个编辑操作应用失败,并不修改原来的元数据和第一分块数据,当用户打开在线表格时,仍可以获取到未应用编辑操作的元数据和第一分块数据,保证了数据完整性和原子性。并且在更新后可以向在线协同的各用户发送该在线表格的数据更新通知,以通知各用户刷新正在查看的在线表格,重新读取编辑后的元数据和分块数据,展示编辑后的在线表格,提高协同操作的实时性。
本公开再一实施例提供一种在线表格的数据处理装置,用于执行上述实施例提供的在线表格的数据处理方法。
如图5所示,为本公开实施例提供的在线表格的数据处理装置的结构示意图。该在线表格的数据处理装置30包括获取模块31、处理模块32和更新模块33。
其中,获取模块,用于用于在获取到对在线表格的操作指令时,确定操作指令对应的第一表格数据所属的第一分块数据;处理模块,用于根据第一分块数据生成第二分块数据,并在第二分块数据中与第一表格数据对应的第二表格数据中应用操作指令;更新模块,用于将在线表格的元数据中与第一分块数据的引用关系更新为与第二分块数据的引用关系。
关于本公开实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本公开实施例提供的在线表格的数据处理装置,通过在用户编辑在线表格时,服务器将该用户的编辑操作所涉及到的第一分块数据生成第二分块数据,对该第二分块数据应用编辑操作,并将第二分块数据持久化到新的位置,比如服务器中任意与第一分块数据所在位置不同的位置,然后更新在线表格的元数据的引用关系,使得更新后的元数据不再引用第一分块数据,而是引用用户编辑后的第二分块数据。在内存中应用编辑操作,并将第二分块数据存储在新的位置,最后更新元数据与分块数据的引用关系,可以有效实现多用户读写并发操作,在第一用户编辑的过程中,不影响其他用户的读写操作,若有第二用户打开在线表格,可以直接获取未应用编辑操作的元数据和第一分块数据,无需获取互斥锁,且第二用户不会浏览到第一用户正在进行的编辑操作的内容。并且,即使元数据更新失败,则整个编辑操作应用失败,并不修改原来的元数据和第一分块数据,当用户打开在线表格时,仍可以获取到未应用编辑操作的元数据和第一分块数据,保证了数据完整性和原子性。
本公开又一实施例对上述实施例提供的在线表格的数据处理装置做进一步补充说明。
作为一种可实施的方式,在上述实施例的基础上,可选地,获取模块,还用于:若在将在线表格的元数据与第一分块数据的引用关系更新为与第二分块数据的引用关系之前,获取到对在线表格的读取指令,则根据在线表格的元数据与第一分块数据的引用关系读取第一分块数据。
作为另一种可实施的方式,在上述实施例的基础上,可选地,获取模块,还用于:
若在将在线表格的元数据与第一分块数据的引用关系更新为与第二分块数据的引用关系之后,获取到对在线表格的读取指令,则根据在线表格的元数据中与第二分块数据的引用关系读取第二分块数据。
作为另一种可实施的方式,在上述实施例的基础上,可选地,处理模块,还用于:向在线协同的各用户发送在线表格的数据更新通知。
作为另一种可实施的方式,在上述实施例的基础上,可选地,在线表格的元数据对应至少一个分块数据;第一分块数据为操作指令指示的操作所涉及的分块数据。
作为另一种可实施的方式,在上述实施例的基础上,可选地,处理模块,还用于:当获取到多个用户对在线表格的操作指令时,对于各用户的操作指令,所获得的各第二分块数据分别进行存储。
作为另一种可实施的方式,在上述实施例的基础上,可选地,更新模块,具体用于:
从在线表格的元数据的原始存储位置读取在线表格的第一元数据;将第一元数据与第一分块数据的引用关系更新为与第二分块数据的引用关系,获得第二元数据;将第二元数据持久化到在线表格的元数据的原始存储位置。
关于本公开实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
需要说明的是,本公开实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本公开不做限定。
根据本公开实施例的在线表格的数据处理装置,通过在用户编辑在线表格时,服务器将该用户的编辑操作所涉及到的第一分块数据生成第二分块数据,对该第二分块数据应用编辑操作,并将第二分块数据持久化到新的位置,比如服务器中任意与第一分块数据所在位置不同的位置,然后更新在线表格的元数据的引用关系,使得更新后的元数据不再引用第一分块数据,而是引用用户编辑后的第二分块数据。在内存中应用编辑操作,并将第二分块数据存储在新的位置,最后更新元数据与分块数据的引用关系,可以有效实现多用户读写并发操作,在第一用户编辑的过程中,不影响其他用户的读写操作,若有第二用户打开在线表格,可以直接获取未应用编辑操作的元数据和第一分块数据,无需获取互斥锁,且第二用户不会浏览到第一用户正在进行的编辑操作的内容。并且,即使元数据更新失败,则整个编辑操作应用失败,并不修改原来的元数据和第一分块数据,当用户打开在线表格时,仍可以获取到未应用编辑操作的元数据和第一分块数据,保证了数据完整性和原子性。并且在更新后可以向在线协同的各用户发送该在线表格的数据更新通知,以通知各用户刷新正在查看的在线表格,重新读取编辑后的元数据和分块数据,展示编辑后的在线表格,提高协同操作的实时性。
本公开再一实施例提供一种电子设备,用于执行上述实施例提供的方法。该电子设备可以为服务器、云端服务器等设备。
如图6所示,为本公开实施例提供的电子设备的结构示意图。该电子设备50包括:至少一个处理器51和存储器52;
存储器存储计算机程序;至少一个处理器执行存储器存储的计算机程序,以实现上述实施例提供的方法。
根据本公开实施例的电子设备,通过在用户编辑在线表格时,服务器将该用户的编辑操作所涉及到的第一分块数据生成第二分块数据,对该第二分块数据应用编辑操作,并将第二分块数据持久化到新的位置,比如服务器中任意与第一分块数据所在位置不同的位置,然后更新在线表格的元数据的引用关系,使得更新后的元数据不再引用第一分块数据,而是引用用户编辑后的第二分块数据。在内存中应用编辑操作,并将第二分块数据存储在新的位置,最后更新元数据与分块数据的引用关系,可以有效实现多用户读写并发操作,在第一用户编辑的过程中,不影响其他用户的读写操作,若有第二用户打开在线表格,可以直接获取未应用编辑操作的元数据和第一分块数据,无需获取互斥锁,且第二用户不会浏览到第一用户正在进行的编辑操作的内容。并且,即使元数据更新失败,则整个编辑操作应用失败,并不修改原来的元数据和第一分块数据,当用户打开在线表格时,仍可以获取到未应用编辑操作的元数据和第一分块数据,保证了数据完整性和原子性。并且在更新后可以向在线协同的各用户发送该在线表格的数据更新通知,以通知各用户刷新正在查看的在线表格,重新读取编辑后的元数据和分块数据,展示编辑后的在线表格,提高协同操作的实时性。
在一种示例性的实施例中,可选地,如图7所示,为适用于本公开实施例的电子设备800的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、 PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7 示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备800可以包括处理装置(例如中央处理器、图形处理器等)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储装置808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有电子设备800操作所需的各种程序和数据。处理装置801、ROM 802以及RAM 803通过总线804彼此相连。输入/ 输出(I/O)接口805也连接至总线804。
通常,以下装置可以连接至I/O接口805:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置806;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置807;包括例如磁带、硬盘等的存储装置808;以及通信装置809。通信装置809可以允许电子设备 800与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备800,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置809从网络上被下载和安装,或者从存储装置808被安装,或者从ROM 802 被安装。在该计算机程序被处理装置801执行时,执行本公开实施例的方法中限定的上述功能。
本公开又一实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,计算机程序被执行时实现上述任一实施例提供的方法。
根据本公开实施例的计算机可读存储介质,通过在用户编辑在线表格时,服务器将该用户的编辑操作所涉及到的第一分块数据生成第二分块数据,对该第二分块数据应用编辑操作,并将第二分块数据持久化到新的位置,比如服务器中任意与第一分块数据所在位置不同的位置,然后更新在线表格的元数据的引用关系,使得更新后的元数据不再引用第一分块数据,而是引用用户编辑后的第二分块数据。在内存中应用编辑操作,并将第二分块数据存储在新的位置,最后更新元数据与分块数据的引用关系,可以有效实现多用户读写并发操作,在第一用户编辑的过程中,不影响其他用户的读写操作,若有第二用户打开在线表格,可以直接获取未应用编辑操作的元数据和第一分块数据,无需获取互斥锁,且第二用户不会浏览到第一用户正在进行的编辑操作的内容。并且,即使元数据更新失败,则整个编辑操作应用失败,并不修改原来的元数据和第一分块数据,当用户打开在线表格时,仍可以获取到未应用编辑操作的元数据和第一分块数据,保证了数据完整性和原子性。并且在更新后可以向在线协同的各用户发送该在线表格的数据更新通知,以通知各用户刷新正在查看的在线表格,重新读取编辑后的元数据和分块数据,展示编辑后的在线表格,提高协同操作的实时性。
在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本公开实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等) 或处理器(processor)执行本公开各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。
Claims (10)
1.一种在线表格的数据处理方法,其特征在于,包括:
在获取到对所述在线表格的操作指令时,确定所述操作指令对应的第一表格数据所属的第一分块数据;
根据所述第一分块数据生成第二分块数据,并在所述第二分块数据中与所述第一表格数据对应的第二表格数据中应用所述操作指令;
将所述在线表格的元数据与所述第一分块数据的引用关系更新为与所述第二分块数据的引用关系。
2.根据权利要求1所述的方法,其特征在于,若在将所述在线表格的元数据与所述第一分块数据的引用关系更新为与所述第二分块数据的引用关系之前,获取到对所述在线表格的读取指令,则根据所述在线表格的元数据与所述第一分块数据的引用关系读取所述第一分块数据。
3.根据权利要求1所述的方法,其特征在于,若在将所述在线表格的元数据与所述第一分块数据的引用关系更新为与所述第二分块数据的引用关系之后,获取到对所述在线表格的读取指令,则根据所述在线表格的元数据中所述第二分块数据的引用关系读取所述第二分块数据。
4.根据权利要求1所述的方法,其特征在于,在将所述在线表格的元数据与所述第一分块数据的引用关系更新为与所述第二分块数据的引用关系之后,所述方法还包括:
向在线协同的各用户发送所述在线表格的数据更新通知。
5.根据权利要求1所述的方法,其特征在于,所述在线表格的元数据引用至少一个分块数据。
6.根据权利要求1所述的方法,其特征在于,当获取到多个用户对所述在线表格的操作指令时,对于各用户的操作指令,所获得的各第二分块数据分别进行存储。
7.根据权利要求1-6任一项所述的方法,其特征在于,将所述在线表格的元数据与所述第一分块数据的引用关系更新为与所述第二分块数据的引用关系,包括:
从所述在线表格的元数据的原始存储位置读取所述在线表格的第一元数据;
将所述第一元数据与所述第一分块数据的引用关系更新为与所述第二分块数据的引用关系,获得第二元数据;
将所述第二元数据持久化到所述在线表格的元数据的原始存储位置。
8.一种在线表格的数据处理装置,其特征在于,包括:
获取模块,用于在获取到对所述在线表格的操作指令时,确定所述操作指令对应的第一表格数据所属的第一分块数据;
处理模块,用于根据所述第一分块数据生成第二分块数据,并在所述第二分块数据中与所述第一表格数据对应的第二表格数据中应用所述操作指令;
更新模块,用于将所述在线表格的元数据中与所述第一分块数据的引用关系更新为与所述第二分块数据的引用关系。
9.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910303972.0A CN110020328A (zh) | 2019-04-16 | 2019-04-16 | 在线表格的数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910303972.0A CN110020328A (zh) | 2019-04-16 | 2019-04-16 | 在线表格的数据处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110020328A true CN110020328A (zh) | 2019-07-16 |
Family
ID=67191580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910303972.0A Pending CN110020328A (zh) | 2019-04-16 | 2019-04-16 | 在线表格的数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110020328A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111581930A (zh) * | 2020-05-09 | 2020-08-25 | 北京字节跳动网络技术有限公司 | 在线表格数据处理方法、装置、电子设备和可读介质 |
CN111832268A (zh) * | 2020-06-30 | 2020-10-27 | 北京印象笔记科技有限公司 | 信息交互方法、可读存储介质和电子设备 |
CN112749533A (zh) * | 2019-10-30 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 数据输入控制方法、装置、电子设备及存储介质 |
CN112989773A (zh) * | 2019-12-13 | 2021-06-18 | 北京庖丁科技有限公司 | 用于同步更新数据的方法、装置、设备和计算机可读介质 |
WO2023124910A1 (zh) * | 2021-12-27 | 2023-07-06 | 北京字跳网络技术有限公司 | 数据处理方法、装置、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5642503A (en) * | 1993-12-15 | 1997-06-24 | Microsoft Corporation | Method and computer system for implementing concurrent accesses of a database record by multiple users |
CN101119365A (zh) * | 2007-09-13 | 2008-02-06 | 复旦大学 | 大规模协同环境下的协同交互优化方法 |
WO2009061638A1 (en) * | 2007-11-09 | 2009-05-14 | Microsoft Corporation | Collaborative authoring |
CN104281506A (zh) * | 2014-07-10 | 2015-01-14 | 中国科学院计算技术研究所 | 一种文件***的数据维护方法及*** |
CN104424030A (zh) * | 2013-08-22 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 多进程操作共享内存的方法和装置 |
CN109542898A (zh) * | 2018-10-30 | 2019-03-29 | 天津字节跳动科技有限公司 | 资料库表格的数据存储方法、装置、电子设备及存储介质 |
-
2019
- 2019-04-16 CN CN201910303972.0A patent/CN110020328A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5642503A (en) * | 1993-12-15 | 1997-06-24 | Microsoft Corporation | Method and computer system for implementing concurrent accesses of a database record by multiple users |
CN101119365A (zh) * | 2007-09-13 | 2008-02-06 | 复旦大学 | 大规模协同环境下的协同交互优化方法 |
WO2009061638A1 (en) * | 2007-11-09 | 2009-05-14 | Microsoft Corporation | Collaborative authoring |
CN104424030A (zh) * | 2013-08-22 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 多进程操作共享内存的方法和装置 |
CN104281506A (zh) * | 2014-07-10 | 2015-01-14 | 中国科学院计算技术研究所 | 一种文件***的数据维护方法及*** |
CN109542898A (zh) * | 2018-10-30 | 2019-03-29 | 天津字节跳动科技有限公司 | 资料库表格的数据存储方法、装置、电子设备及存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749533A (zh) * | 2019-10-30 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 数据输入控制方法、装置、电子设备及存储介质 |
CN112749533B (zh) * | 2019-10-30 | 2023-08-04 | 腾讯科技(深圳)有限公司 | 数据输入控制方法、装置、电子设备及存储介质 |
CN112989773A (zh) * | 2019-12-13 | 2021-06-18 | 北京庖丁科技有限公司 | 用于同步更新数据的方法、装置、设备和计算机可读介质 |
CN112989773B (zh) * | 2019-12-13 | 2024-02-20 | 北京庖丁科技有限公司 | 用于同步更新数据的方法、装置、设备和计算机可读介质 |
CN111581930A (zh) * | 2020-05-09 | 2020-08-25 | 北京字节跳动网络技术有限公司 | 在线表格数据处理方法、装置、电子设备和可读介质 |
CN111832268A (zh) * | 2020-06-30 | 2020-10-27 | 北京印象笔记科技有限公司 | 信息交互方法、可读存储介质和电子设备 |
WO2023124910A1 (zh) * | 2021-12-27 | 2023-07-06 | 北京字跳网络技术有限公司 | 数据处理方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110020328A (zh) | 在线表格的数据处理方法、装置、电子设备及存储介质 | |
CN110019279B (zh) | 在线文档的协同更新方法、装置、设备及存储介质 | |
US11847438B2 (en) | Offline capabilities for live applications in a cloud collaboration platform | |
CN103988200B (zh) | 用于web应用的轻量化框架 | |
CN111598533A (zh) | 流程审批处理方法、装置、电子设备及存储介质 | |
CN109492200A (zh) | 协同文档还原方法、装置、存储介质及电子设备 | |
CN106412622A (zh) | 在播放视频内容时显示弹幕信息的方法和装置 | |
CN108055320B (zh) | 资源下载的处理方法、终端设备及计算机可读存储介质 | |
CN103294479A (zh) | 分布式事务处理方法与*** | |
CN106357791A (zh) | 业务处理方法、装置及*** | |
CN114047892A (zh) | 投屏控制方法、装置、存储介质及电子设备 | |
CN110070592A (zh) | 特效包的生成方法、装置和硬件装置 | |
CN109271367A (zh) | 分布式文件***多节点快照回滚方法及*** | |
CN115185967A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN109309734A (zh) | 用于传输数据的方法及装置 | |
CN105122238A (zh) | 协作文档中的非协作过滤器 | |
KR20170135011A (ko) | 공동 편집 문서를 공유하는 방법 및 장치 | |
WO2023186130A1 (zh) | 信息展示和信息发送方法、装置、设备、介质和产品 | |
CN110347468A (zh) | 贴图切换方法、贴图切换装置及电子设备 | |
CN104620218A (zh) | 任务链的方法与装置 | |
CN104123130B (zh) | 信息处理方法、装置及*** | |
CN109614383A (zh) | 数据复制方法、装置、电子设备及存储介质 | |
CN109753621A (zh) | 用户信息处理方法、装置、电子设备及可读存储介质 | |
CN110851097B (zh) | 一种笔迹数据一致的控制方法、装置、介质和电子设备 | |
CN110288309B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190716 |