System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据存储方法、装置、设备和计算机可读存储介质制造方法及图纸_技高网

数据存储方法、装置、设备和计算机可读存储介质制造方法及图纸

技术编号:41190221 阅读:6 留言:0更新日期:2024-05-07 22:21
本申请涉及一种数据存储方法、装置、设备和计算机可读存储介质,该方法包括:接收数据写入请求,数据写入请求携带待存储数据;将待存储数据分配到至少一个分片上,得到至少一个数据分片;生成每个数据分片对应的索引数据和存储数据;将各数据分片对应的索引数据添加到Lucene存储,并将各数据分片对应的存储数据添加到Rocksdb存储,以生成各数据分片的Lucene数据和Rocksdb数据;基于raft协议,将各数据分片的Lucene数据和Rocksdb数据分别进行复制,得到各数据分片的多个副本数据;将各数据分片的多个副本数据分别存储在多个存储节点上。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种数据存储方法、装置、设备和计算机可读存储介质


技术介绍

1、随着互联网、物联网和大数据等技术的发展,数据量呈现爆炸式增长,对数据存储的性能、可扩展性和可靠性提出了更高的要求。传统的单机存储系统已经难以满足这些需求,因此分布式存储系统成为了一种更优的解决方案。分布式存储系统可以将数据分散存储在多个节点上,实现数据的高可用性、负载均衡和容错能力,同时也可以通过增加或减少节点来动态调整存储容量和性能。

2、如何在本地化存储中解决数据一致性问题,实现分布式存储是亟需解决的问题。


技术实现思路

1、本申请提供了一种数据存储方法、装置、设备和计算机可读存储介质,能够解决本地化存储中的数据一致性问题,进而实现本地化分布式存储。

2、第一方面,本申请提供了一种数据存储方法,包括:接收数据写入请求,该数据写入请求携带待存储数据,该数据写入请求用于请求将该待存储数据写入本地存储;将待存储数据分配到至少一个分片上,得到至少一个数据分片;生成每个数据分片对应的索引数据和存储数据,目标数据分片对应的索引数据包括该目标数据分片中每条数据的索引以及每个索引对应的数据的标识,目标数据分片对应的存储数据包括该目标数据片中的每条数据以及每条数据的标识,该目标数据分片为该至少一个数据分片中的任一个;将各数据分片对应的索引数据添加到lucene存储,并将各数据分片对应的存储数据添加到rocksdb存储,以生成各数据分片的lucene数据和rocksdb数据,每个数据分片的lucene数据和rocksdb数据对应待存储数据中的相同数据;基于raft协议,将该各数据分片的lucene数据和rocksdb数据分别进行复制,得到该各数据分片的多个副本数据;将该各数据分片的多个副本数据分别存储在多个存储节点上。

3、本申请一些实施例中,该将待存储数据分配到至少一个分片上,得到至少一个数据分片,包括:基于一致性哈希算法,计算该待存储数据中各数据的标识的一致性哈希值;将该待存储数据中一致性哈希值相同的数据分配到同一个分片上,得到至少一个分片数据。

4、本申请一些实施例中,该将各数据分片对应的索引数据添加到lucene存储,并将各数据分片对应的存储数据添加到rocksdb存储,包括:基于两阶段提交协议,将各数据分片对应的索引数据添加到lucene存储,并将各数据分片对应的存储数据添加到rocksdb存储。

5、本申请一些实施例中,该待存储数据为批量数据;该基于两阶段提交协议,将各数据分片对应的索引数据添加到lucene存储,并将各数据分片对应的存储数据添加到rocksdb存储,包括:在该两阶段提交协议的第一阶段,将各数据分片对应的索引数据添加到临时索引目录,将各数据分片对应的存储数据添加到sst文件;在该两阶段提交协议的第二阶段,将各数据分片对应的索引数据从该临时索引目录添加到该lucene存储中,并将各数据分片对应的索引数据从该sst文件添加到该rocksdb存储中。

6、本申请一些实施例中,该待存储数据为实时数据;该基于两阶段提交协议,将各数据分片对应的索引数据添加到lucene存储,并将各数据分片对应的存储数据添加到rocksdb存储,包括:在该两阶段提交协议的第一阶段,将各数据分片对应的索引数据添加到临时内存空间中,并将各数据分片对应的存储数据添加到临时内存空间;在该两阶段提交协议的第二阶段,将各数据分片对应的索引数据从该临时内存空间添加到该lucene存储中,并将各数据分片对应的索引数据从该临时内存空间添加到该rocksdb存储中。

7、本申请一些实施例中,该基于raft协议,将该各数据分片的lucene数据和rocksdb数据分别进行复制,得到该各数据分片的多个副本数据,包括:将该目标数据分片的lucene数据和rocksdb数据生成该目标数据分片对应的rowlog日志,该rowlog日志携带该目标数据分片;基于raft协议,将该rowlog日志进行复制,得到该rowlog日志的多个副本数据,以得到该各数据分片的多个副本数据。

8、本申请一些实施例中,该方法还包括:接收数据检索请求,该数据检索请求携带检索条件,该数据检索请求用于请求输出该本地存储中与该检索条件匹配的数据;从该多个存储节点上的lucene数据中提取与该检索条件匹配的目标索引,该多个存储节点上的lucene数据包括该本地存储中每条数据的索引,以及每个索引对应的数据的标识;从该多个存储节点上的lucene数据中获取与该目标索引对应的数据的目标标识;从该多个存储节点上的rocksdb数据中读取与该目标标识对应的目标数据,该多个存储节点上的rocksdb数据包括该本地存储中的每条数据,以及每条数据的标识;输出该目标数据。

9、第二方面,本申请提供了一种数据存储装置,包括:接收模块,用于接收数据写入请求,该数据写入请求携带待存储数据,该数据写入请求用于请求将该待存储数据写入本地存储;分配模块,用于将待存储数据分配到至少一个分片上,得到至少一个数据分片;生成模块,用于生成每个数据分片对应的索引数据和存储数据,目标数据分片对应的索引数据包括该目标数据分片中每条数据的索引以及每个索引对应的数据的标识,目标数据分片对应的存储数据包括该目标数据片中的每条数据以及每条数据的标识,该目标数据分片为该至少一个数据分片中的任一个;将各数据分片对应的索引数据添加到lucene存储,并将各数据分片对应的存储数据添加到rocksdb存储,以生成各数据分片的lucene数据和rocksdb数据,每个数据分片的lucene数据和rocksdb数据对应待存储数据中的相同数据;复制模块,用于基于raft协议,将该各数据分片的lucene数据和rocksdb数据分别进行复制,得到该各数据分片的多个副本数据;存储模块,用于将该各数据分片的多个副本数据分别存储在多个存储节点上。

10、本申请一些实施例中,该分配模块,具体用于基于一致性哈希算法,计算该待存储数据中各数据的标识的一致性哈希值;将该待存储数据中一致性哈希值相同的数据分配到同一个分片上,得到至少一个分片数据。

11、本申请一些实施例中,该生成模块,具体用于基于两阶段提交协议,将各数据分片对应的索引数据添加到lucene存储,并将各数据分片对应的存储数据添加到rocksdb存储。

12、本申请一些实施例中,该待存储数据为批量数据;该生成模块,具体用于在该两阶段提交协议的第一阶段,将各数据分片对应的索引数据添加到临时索引目录,将各数据分片对应的存储数据添加到sst文件;在该两阶段提交协议的第二阶段,将各数据分片对应的索引数据从该临时索引目录添加到该lucene存储中,并将各数据分片对应的索引数据从该sst文件添加到该rocksdb存储中。

13、本申请一些实施例中,该待存储数据为实时数据;该生成模块,具体用于在该两阶段提交协议的第一阶段,将各数据分片对应的索引数据添加到临时内存空间中,并将各数据本文档来自技高网...

【技术保护点】

1.一种数据存储方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述将待存储数据分配到至少一个分片上,得到至少一个数据分片,包括:

3.根据权利要求1所述的方法,其特征在于,所述将各数据分片对应的索引数据添加到Lucene存储,并将各数据分片对应的存储数据添加到Rocksdb存储,包括:

4.根据权利要求3所述的方法,其特征在于,所述待存储数据为批量数据;所述基于两阶段提交协议,将各数据分片对应的索引数据添加到Lucene存储,并将各数据分片对应的存储数据添加到Rocksdb存储,包括:

5.根据权利要求3所述的方法,其特征在于,所述待存储数据为实时数据;所述基于两阶段提交协议,将各数据分片对应的索引数据添加到Lucene存储,并将各数据分片对应的存储数据添加到Rocksdb存储,包括:

6.根据权利要求1所述的方法,其特征在于,所述基于raft协议,将所述各数据分片的Lucene数据和Rocksdb数据分别进行复制,得到所述各数据分片的多个副本数据,包括:

7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:

8.一种数据存储装置,其特征在于,所述装置包括:

9.一种电子设备,其特征在于,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的数据存储方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的数据存储方法的步骤。

...

【技术特征摘要】

1.一种数据存储方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述将待存储数据分配到至少一个分片上,得到至少一个数据分片,包括:

3.根据权利要求1所述的方法,其特征在于,所述将各数据分片对应的索引数据添加到lucene存储,并将各数据分片对应的存储数据添加到rocksdb存储,包括:

4.根据权利要求3所述的方法,其特征在于,所述待存储数据为批量数据;所述基于两阶段提交协议,将各数据分片对应的索引数据添加到lucene存储,并将各数据分片对应的存储数据添加到rocksdb存储,包括:

5.根据权利要求3所述的方法,其特征在于,所述待存储数据为实时数据;所述基于两阶段提交协议,将各数据分片对应的索引数据添加到lucene存储,并将各数据...

【专利技术属性】
技术研发人员:赵琳叶文广乔旺龙
申请(专利权)人:天云融创数据科技北京有限公司
类型:发明
国别省市:

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

1