协同编辑过程中的数据处理方法技术

技术编号:39654207 阅读:11 留言:0更新日期:2023-12-09 11:23
本发明专利技术公开了一种协同编辑过程中的数据处理方法

【技术实现步骤摘要】
协同编辑过程中的数据处理方法、装置及电子设备


[0001]本专利技术涉及计算机处理
,尤其涉及一种协同编辑过程中的数据处理方法

装置

电子设备及计算机可读存储介质


技术介绍

[0002]协同编辑是近年来兴起的一种操作方式,主要应用于在线文档,编辑对象主要是文本类型的字符

目前的协同编辑系统主要应用操作转换
(Operation Transformation
,简称
OT)
算法或无冲突的复制数据类型
(Conflict

Free Replicated Data Type
,简称
CRDT)
算法,目的是保留所有用户的操作
(Operation)(
如新增

删除

更新等
)
和过程数据,并解决多用户编辑时的冲突问题

[0003]其中,
OT
算法通过第三方中心服务器解决冲突问题来保证多端用户的一致性,主要的应用例如为
Google Doc、
腾讯文档等产品
。CRDT
算法通过双向链表的数据结构来保证并发冲突数据的最终一致性

具体地,基于
CRDT
算法为在文档中创建的每个字符分配一个唯一的标识符,并在删除字符时保留元数据;双向链表中的每一项都唯一地记录了每次用户操作所更新的数据,从而将用户的所有操作最终全部转化为链表结构的变换,并将链表中记录的内容进行序列化编码后分发到各个客户端,从而使各个客户端重建出的文档保持完全一致的状态

较为成熟的

开源的
Web
应用例如为
Yjs、Automerge、

Teletype

crdt


[0004]从上述的说明可见,无论是
OT
算法还是
CRDT
算法,都需要保留所有的历史操作和数据,因而,随着历史编辑次数的增多,需要过滤的数据变多,导致效率降低,出现明显的卡顿现象

目前的解决方案之一是基于下次编辑可能与上一个编辑位置非常接近的假设减少需要过滤的数据,虽然该方案解决了效率低的问题,但是不能满足任意位置编辑的需求

对于
CRDT
算法,由于其在链表中采用指针关联不同的操作及内容,从而导致结构碎片化,处理器在处理这样的数据结构时必须为每个处理对象
(
如操作和
/
或内容
)
分配不同的内存地址,导致开辟内存速度慢;垃圾收集器
(Garbage Collector
,简称
GC)
需要额外的数据来跟踪所有的处理对象,导致
GC
开销大

回收速度慢;处理器在读取链表中的数据时,由于数据存储在不同的内存地址空间,因而处理器需要切换主内存和缓存,导致计算速度慢且命中率低

[0005]元宇宙是一种集合了信息技术

通信技术
、AR、VR
等技术的一种开放与共享的线上平台,元宇宙系统通常包括客户端设备和服务端设备,用户利用客户端设备上的摄像机采集当前空间环境图像并利用设备上的定位设备定位自身所在的空间位置,包括高度

方位

地理坐标等等,将这些信息发送给服务端设备

服务端设备中存储与客户端设备所在空间成1:1比例的数字空间
(
也称为元宇宙场景
)
,基于客户端设备的环境图像及空间位置定位该客户端设备在数字空间的位置,而后将当前数字空间中叠加的处于用户视野
(
用户客户端设备上摄像机的视觉采集范围
)
的数字内容推送给用户的客户端,在用户的客户端设备上显示出数字内容,从而使用户通过客户端设备屏幕看到现实空间中没有的内容

从而可见,元宇宙系统需要提供与现实1:1比例的数字空间及能够叠加在数字空间中的数字内容

无论是数字空间还是数字内容,都具有三维属性,在编辑该数字空间

数字内容时无法应用前述对在线文档进行协同编辑的方法,因而目前在构建元宇宙系统中的数字空间

数字内容时,只能单用户操作,创建周期长

效率低


技术实现思路

[0006]有鉴于此,本专利技术实施例提供一种协同编辑过程中的数据处理方法

装置

电子设备及计算机可读存储介质,用以实现多用户协同编辑元宇宙场景

[0007]第一方面,本专利技术实施例提供一种协同编辑过程中的数据处理方法,其应用于终端设备,包括以下步骤:
[0008]获取用户编辑的元宇宙场景
ID

[0009]响应于检测到用户对所述元宇宙场景中的数字内容的编辑指定操作,锁定所述数字内容,并获取所述数字内容在所述元宇宙场景中的空间
ID

[0010]在所述数字内容的锁定状态,获取用户对所述数字内容进行一次或多次编辑时产生的对象数据;
[0011]按照用户编辑的时间顺序将每次编辑产生的对象数据顺次存储到提交队列中;
[0012]响应于满足提交条件,按照先进先出方式将所述提交队列中的多个对象数据逐个序列化并组成结构化的内容数据;以及
[0013]将所述结构化的内容数据及场景
ID、
空间
ID
和用户
ID
组合在一起作为编辑数据发送给服务端

[0014]第二方面,本专利技术实施例提供一种协同编辑过程中的数据处理方法,其应用于服务器,第一用户与多个第二用户协同编辑一个元宇宙场景,所述方法包括以下步骤:
[0015]在多个用户协同编辑一个元宇宙场景过程中,响应于接收到第一用户发送的编辑数据,从所述编辑数据中提取出内容数据,并确定所述元宇宙的场景
ID、
内容数据的空间
ID
及所述第一用户的用户
ID

[0016]基于场景
ID、
空间
ID
及所述第一用户的用户
ID
查询数据存储树结构以确定目标叶子节点;
[0017]按照时间顺序在所述目标叶子节点中记录对应当前编辑数据的编辑记录及基于前一编辑记录中的数据存储地址确定当前内容数据的存储地址;
[0018]将所述当前内容数据存储在所述存储地址对应的存储区域;
[0019]更新所述目标叶子节点

作为所述目标叶子节点的父节点的中间节点和根节点中存储的编辑记本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种协同编辑过程中的数据处理方法,其特征在于,其应用于终端设备,包括:获取用户编辑的元宇宙场景
ID
;响应于检测到用户对所述元宇宙场景中的数字内容的编辑指定操作,锁定所述数字内容,并获取所述数字内容在所述元宇宙场景中的空间
ID
;在所述数字内容的锁定状态,获取用户对所述数字内容进行一次或多次编辑时产生的对象数据;按照用户编辑的时间顺序将每次编辑产生的对象数据顺次存储到提交队列中;响应于满足提交条件,按照先进先出方式将所述提交队列中的多个对象数据逐个序列化并组成结构化的内容数据;以及将所述结构化的内容数据及场景
ID、
空间
ID
和用户
ID
组合在一起作为编辑数据发送给服务端
。2.
根据权利要求1所述的数据处理方法,其特征在于,每个所述对象数据对应于一个编辑单位产生的数据,所述的编辑单位为数字内容的一个或多个自由度参数

一个或多个业务属性参数

一个或多个动画参数
。3.
根据权利要求1所述的数据处理方法,其特征在于,响应于用户创建的元宇宙场景,根据场景
ID
生成规则为所述元宇宙场景生成场景
ID
;或,响应于用户选择的已经存在的元宇宙场景,根据元宇宙场景与场景
ID
的对应关系获取用户编辑的元宇宙场景
ID。4.
根据权利要求1所述的数据处理方法,其特征在于,响应于用户在所述元宇宙场景分配的一个或多个空间范围,为每个空间范围创建空间
ID。5.
根据权利要求1所述的数据处理方法,其特征在于,在所述提交队列已满时确认满足提交条件;或者,在达到定时周期时确认满足提交条件;或者,在接收到用户对数字内容的编辑完成操作时确认满足提交条件
。6.
根据权利要求1所述的数据处理方法,其特征在于,在检测到用户对数字内容的编辑完成操作时,解除对所述数字内容的锁定
。7.
一种协同编辑过程中的数据处理方法,其特征在于,其应用于服务器,第一用户与多个第二用户协同编辑一个元宇宙场景,所述方法包括:在多个用户协同编辑一个元宇宙场景过程中,响应于接收到第一用户发送的编辑数据,从所述编辑数据中提取出内容数据,并确定所述元宇宙的场景
ID、
内容数据的空间
ID
及所述第一用户的用户
ID
;基于场景
ID、
空间
ID
及所述第一用户的用户
ID
查询数据存储树结构以确定目标叶子节点;按照时间顺序在所述目标叶子节点中记录对应当前编辑数据的编辑记录及基于前一编辑记录中的数据存储地址确定当前内容数据的存储地址;将所述当前内容数据存储在所述存储地址对应的存储区域;更新所述目标叶子节点

作为所述目标叶子节点的父节点的中间节点和根节点中存储的编辑记录数量;基于所述内容数据实现第一用户对数字内容的编辑,并向多个第二用户同步第一用户编辑完成的数字内容;其中,所述数据存储树结构包括一个根节点

一个或多个中间节点以及一个或多个叶
子节点,所述根节点为所述一个或多个中间节点的父节点,一个根节点对应一个元宇宙场景;每个所述中间节点对应于所述元宇宙场景中的一个子空间;每个叶子节点用于存储一个用户编辑一个子空间内的数字内容时产生的编辑记录及内容数据,与所述子空间对应的中间节点所述叶子节点的父节点;每个节点具有对应的节点
ID。8.
根据权利要求7所述的数据处理方法,其特征在于,查询数据存储树结构的步骤包括:遍历所有数据存储树结构的根节点,将根节点
ID
与所述元宇宙场景
ID
对应的根节点确定为目标根节点;遍历以所述目标根节点为父节点的中间节点,将中间节点
ID
与所述空间
ID
对应的中间节点确定为目标中间节点;以及遍历以所述目标中间节点为父节点的叶子节点,将叶子节点中的用户
ID
与所述第一用户的用户
ID
对应的叶子节点确定为目标叶子节点
。9.
根据权利要求8所述的数据处理方法,其特征在于,在遍历所有数据存储树结构的根节点时,响应于没有得到与所述元宇宙场景
ID
对应的根节点,新建与所述元宇宙场景对应的根节点,并作为目标根节点;基于所述空间
ID
创建以所述目标根节点为父节点的中间节点,并作为目标中间节点;基于所述第一用户的用户
ID
创建以所述目标中间节点为父节点的叶子节点,并确定为目标叶子节点
。10.
根据权利要求8所述的数据处理方法,其特征在于,在遍历以所述目标中间节点为父节点的叶子节点时,响应于没有得到与所述第一用户的用户
ID
对应的叶子节点,以所述目标中间节点为父节点建立叶子节点,并确定为目标叶子节点
。11.
根据权利要求8所述的数据处理方法,其特征在于,在遍历以所述目标中间节点为父节点的叶子节点时,在得到了叶子节点中的用户
ID
与所述第一用户的用户
ID
对应的第一叶子节点时进一步包括:获取所述第一叶子节点当前全部编辑记录对应的内容数据的存储量;对比所述第一叶子节点当前全部编辑记录对应的内容数据的存储量和存储阈值;响应于所述第一叶子节点当前全部编辑记录对应的内容数据的存储量小于所述存储阈值,将所述第一叶子节点确定为目标叶子节点;以及响应于所述第一叶子节点当前全部编辑记录对应的内容数据的存储量大于或等于所述存储阈值,新建对应所述用户
ID
的第二叶子节点并关联所述第一叶子节点和第二叶子节点;将所述第二叶子节点确定为目标叶子节点
。12.
...

【专利技术属性】
技术研发人员:刘真余
申请(专利权)人:北京河图联合创新科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1