[发明专利]数据操作方法、电子设备及存储介质在审
申请号: | 201911398977.2 | 申请日: | 2019-12-30 |
公开(公告)号: | CN111158860A | 公开(公告)日: | 2020-05-15 |
发明(设计)人: | 蔺翔 | 申请(专利权)人: | 咪咕文化科技有限公司;中国移动通信集团有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F16/11;G06F16/18 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 陈玉婷 |
地址: | 100032*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 操作方法 电子设备 存储 介质 | ||
本发明实施例提供了一种数据操作方法、电子设备及存储介质,在对COW容器中的操作对象进行写操作时,采用乐观锁机制实现,可以提高COW容器的写操作性能。在写操作后生成与写操作对应的临时快照版本,并将原始版本与临时快照版本均存储至COW容器的临时快照版本空间,不仅可以保证写操作的快速执行,还可以保证每次写操作的记录均被存储下来,便于后续对COW容器中的操作对象进行读操作。
技术领域
本发明涉及计算机容器技术领域,更具体地,涉及数据操作方法、电子设备及存储介质。
背景技术
写时复制(Copy On Write,COW)是一款高并发容器,是一个线程安全且读操作无锁的ArrayList类,写操作则通过创建底层数组的新副本来实现,采用读写分离的并发策略。COW容器的读操作性能很高,因为无需任何同步措施,比较适用于读多写少的并发场景。
一般情况下,Java的list容器在遍历时,若中途有别的线程对list容器进行修改,则会抛出“ConcurrentModificationException”异常。而由于CopyOnWriteArrayList采用读写分离的并发策略,遍历和修改操作分别作用在不同的list容器,所以在使用迭代器进行遍历时候,也就不会抛出“ConcurrentModificationException”异常。
但是,传统的COW容器操作机制,每次执行写操作都要将原COW容器复制一份,而且需要为写操作加锁,使每次只能执行一个写操作。这种加锁机制将会引起写操作时的线程阻塞,导致写操作性能很差。
发明内容
为克服上述问题或者至少部分地解决上述问题,本发明实施例提供了一种数据操作方法、电子设备及存储介质。
第一方面,本发明实施例提供了一种数据操作方法,包括:
基于乐观锁机制,对COW容器中的操作对象进行写操作;
生成所述写操作对应的临时快照版本,将所述操作对象在所述COW容器中的原始版本以及所述临时快照版本存储至所述COW容器的临时快照版本空间。
优选地,所述临时快照版本空间包括JVM内存和堆外内存;
相应地,
所述将所述操作对象在所述COW容器中的原始版本以及所述临时快照版本存储至所述COW容器的临时快照版本空间,具体包括:
将所述原始版本和所述临时快照版本存储至JVM内存内,并在指定时间间隔后迁移至所述堆外内存。
优选地,所述临时快照版本空间内还存储有与所述原始版本和所述临时快照版本对应的索引文件。
优选地,所述临时快照版本具体包括:时间戳、写操作目标以及写操作类型。
第二方面,本发明实施例提供了一种数据操作方法,包括:
获取COW容器的操作请求,所述操作请求中包括操作对象;
当所述操作请求为对操作对象进行读操作时,在所述COW容器的临时快照版本空间中对所述操作对象进行读操作;
其中,所述临时快照版本空间用于存储所述操作对象在所述COW容器中的原始版本以及对所述操作对象进行写操作生成的、与所述写操作对应的临时快照版本。
优选地,当所述操作请求为对操作对象进行读操作时,所述操作请求中还包括:所述操作对象的版本级别;
相应地,
所述在所述COW容器的临时快照版本空间中对所述操作对象进行读操作,具体包括:
在所述临时快照版本空间中确定与所述操作对象对应的版本集合;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于咪咕文化科技有限公司;中国移动通信集团有限公司,未经咪咕文化科技有限公司;中国移动通信集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911398977.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种电子设备
- 下一篇:致动装置及控制SMA致动器线的方法
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置