[发明专利]高并发下的数据分布式写入方法、装置、终端及存储介质有效
申请号: | 201811629694.X | 申请日: | 2018-12-28 |
公开(公告)号: | CN109739857B | 公开(公告)日: | 2020-09-01 |
发明(设计)人: | 李润恒 | 申请(专利权)人: | 深圳市网心科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/27 |
代理公司: | 深圳市赛恩倍吉知识产权代理有限公司 44334 | 代理人: | 杨毅玲 |
地址: | 518063 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 并发 数据 分布式 写入 方法 装置 终端 存储 介质 | ||
1.一种高并发下的数据分布式写入方法,应用于终端中,其特征在于,所述终端中预先存储有正向索引表和反向索引表,所述方法包括:
接收到键-值对的写入指令时,记录所述反向索引表的版本号和所述正向索引表的版本号;
获取所述反向索引表中对应所述键-值对中的值的第一虚拟值,并计算所述键-值对中的键应位于的所述第一虚拟值对应的第一虚拟键中的反向位置索引;
当所述反向索引表版本号未发生变化时,将所述键写入所述第一虚拟键中具有所述反向位置索引的子值对应的数组中;
获取所述正向索引表中对应所述键-值对中的键的第二虚拟键,并计算所述键-值对中的值应位于的所述第二虚拟键对应的第二虚拟值中的正向位置索引;
当所述正向索引表版本号未发生变化时,将所述值写入所述第二虚拟值中具有所述正向位置索引的子键对应的数组中。
2.如权利要求1所述的方法,其特征在于,所述计算所述键-值对中的键应位于的所述第一虚拟值对应的第一虚拟键中的反向位置索引包括:
计算所述键的第一散列值;
根据预设第一位置序号与第一散列值之间的对应关系确定所述键应位于的所述第一虚拟键中的反向位置索引,所述反向位置索引中包括所述第一位置序号。
3.如权利要求1所述的方法,其特征在于,所述计算所述键-值对中的值应位于的所述第二虚拟键对应的第二虚拟值中的正向位置索引包括:
计算所述值的第二散列值;
根据预设第二位置序号与第二散列值之间的对应关系确定所述值应位于的所述第二虚拟值中的正向位置索引,所述正向位置索引中包括所述第二位置序号。
4.如权利要求1所述的方法,其特征在于,在将所述键-值对写入所述反向索引表成功,但将所述键-值对写入所述正向索引表时失败时,所述方法还包括:
回滚所述反向索引表,以保持所述正向索引表和所述反向索引表中的数据一致性;
所述回滚所述反向索引表包括:在所述反向索引表的当前版本号与成功写入时的版本号相同时,删除写入所述第一虚拟键下的所有子值及对应的键。
5.如权利要求1至4中任意一项所述的方法,其特征在于,在所述获取所述反向索引表中对应所述键-值对中的值的第一虚拟值之前,所述方法还包括:
判断所述反向索引表中是否存在对应所述键-值对中的值的第一虚拟值;
当确定不存在对应所述键-值对中的值的第一虚拟值时,创建所述第一虚拟值,所述第一虚拟值中包括所述值及预设值拆分为子值的第一个数。
6.如权利要求5所述的方法,其特征在于,在所述计算所述键-值对中的键应位于的所述第一虚拟值对应的第一虚拟键中的反向位置索引之后,所述方法还包括:
判断所述第一虚拟键中是否存在具有所述反向位置索引的子值;
当确定不存在具有所述反向位置索引的子值时,创建具有所述反向位置索引的子值,同时将所述第一个数加1。
7.如权利要求6所述的方法,其特征在于,在所述将所述键写入所述第一虚拟键中具有所述反向位置索引的子值对应的数组中之前,所述方法还包括:
判断所述第一虚拟键中具有所述反向位置索引的子值对应的数组中是否存在所述键;
当确定存在所述键时,不进行任何操作并返回写入成功的结果。
8.如权利要求1至4中任意一项所述的方法,其特征在于,在所述获取所述正向索引表中对应所述键-值对中的键的第二虚拟键之前,所述方法还包括:
判断所述正向索引表中是否存在对应所述键-值对中的键的第二虚拟键;
当确定不存在对应所述键-值对中的键的第二虚拟键时,创建所述第二虚拟键,所述第二虚拟键中包括所述键及预设键拆分为子键的第二个数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市网心科技有限公司,未经深圳市网心科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811629694.X/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置