System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据库,具体涉及一种基于增量纠删码的增量数据写入方法与系统。
技术介绍
1、纠删码(erasure codes,ec)是一种数据保护方法,主要用于数据存储和网络传输中,以确保数据的可靠性和容错性。它通过将数据分割成片段,并创建冗余数据块来进行编码,这些编码后的数据片段被存储在不同的位置,如不同的磁盘、存储节点或其他地理位置。纠删码的核心技术包括多项式插值或过采样,这些技术使得系统能够在部分数据丢失的情况下恢复原始数据。
2、纠删码的系统可以表示为“n=k+m”,其中“k”代表原始数据块的数量,“m”代表添加的校验块(冗余数据块)的数量,“n”则是总的编码后数据块的数量。例如,在“ec 10/16”配置中,会有6个额外的校验块(m)被添加到10个原始数据块(k)中,这些编码后的16个数据片段(n)会被分散存储在不同的位置。即使有高达m个数据块丢失或损坏,原始数据仍然可以从剩余的数据块中恢复。
3、针对数据湖频繁更新的场景,经常采用mor策略,将变更写入到日志文件,然后根据配置的策略将这些变更合并到基础数据文件中。由于数据湖场景数据更新频繁,导致在分布式存储上也会频繁写入日志文件,即需要进行频繁的纠删码计算。
4、相关技术中,基于各数据块完整的数据进行全量纠删码计算,该全量纠删码计算需要获取数据块的所有数据,消耗了数据传输和计算的资源。
技术实现思路
1、有鉴于此,本申请公开一种基于增量纠删码的增量数据写入方法。该方法中,预先创建增量日志存
2、在一些实施例中,所述方法还包括:响应于检测到预设的触发条件,将所述存储数据空间包括的各数据块中的数据,与基础数据进行合并,完成日志合并。
3、在一些实施例中,所述基础数据被以数据块的形式分布式存储在分布式系统中;所述存储数据空间包括的各数据块被分布式存储在所述分布式系统中;所述分布式系统包括多个存储节点;确定所述目标数据块的方法包括:响应于存储数据空间包括的各数据块为空或者缺省值,确定所述基础数据中当前参与合并的当前数据块;将所述当前数据块对应的当前存储节点中为所述存储数据空间分配的数据块作为目标数据块;所述目标数据块为最先被写入增量数据的一号数据块。
4、在一些实施例中,响应于完成所述日志合并,所述方法还包括:清空所述存储数据空间包括的各数据块中的数据;所述存储数据空间仍被保留不被释放。
5、在一些实施例中,所述第一数量的数据块具有排序,其中最先被写入增量数据的数据块为一号数据块;写入增量数据的方法包括:响应于接收到针对所述目标增量数据的写入指令,如果当前被写入的数据块为所述一号数据块,基于所述目标增量数据生成第一矩阵,与预设的编码矩阵相乘,确定当前纠删码;基于所述目标增量数据,更新所述目标数据块中从所述写入位置开始且长度为所述数据长度的目标数据,以及基于所述当前纠删码,更新所述校验块中从所述写入位置开始且长度为所述数据长度的目标校验数据。
6、在一些实施例中,在写入增量数据之前,所述方法还包括:根据历史数据,获取相邻两次历史日志合并的增量数据量;比较所述增量数据量和所述数据存储空间中的一个数据块的大小;在所述增量数据量的大小小于所述数据存储空间中的一个数据块的大小的情形下,写入增量数据的方法包括:响应于接收到针对所述目标增量数据的写入指令,基于所述目标增量数据生成第一矩阵,与预设的编码矩阵相乘,确定当前纠删码;基于所述目标增量数据,更新所述目标数据块中从所述写入位置开始且长度为所述数据长度的目标数据,以及基于所述当前纠删码,更新所述校验块中从所述写入位置开始且长度为所述数据长度的目标校验数据。
7、在一些实施例中,所述历史数据包括按照每天内的各时间段统计的相邻两次历史日志合并的增量数据量均值;所述根据历史数据,获取相邻两次历史日志合并的增量数据量,包括:根据当前时刻,查询所述历史数据,确定所述增量数据量;所述方法还包括:在所述增量数据量的大小小于所述数据存储空间中的一个数据块的大小的情形下,在所述当前时刻对应的时间段内,执行所述写入增量数据的方法。
8、在一些实施例中,所述时间段的时长处于0.5小时至1.5小时区间内。
9、在一些实施例中,所述存储数据空间的大小与预设的增量日志大小相同。
10、本申请还提出一种基于增量纠删码的增量数据写入系统。该系统中,预先创建增量日志存储数据空间,所述存储数据空间包括第一数量的数据块,用于存储增量数据,以及第二数量的校验块,用于存储针对所述增量数据的校验数据;所述第一数量为纠删码计算规则中设置的数据块数量,所述第二数量为所述纠删码计算规则中设置的校验块数量;所述系统包括:生成模块,用于生成针对目标增量日志中的目标增量数据的写入指令;所述写入指令用于将所述目标增量数据写入所述存储数据空间包括的目标数据块;所述写入指令包括所述目标增量数据的数据长度;获取模块,用于根据所述目标增量数据在所述目标数据块中的写入位置和所述数据长度,获取所述数据存储空间包括的各数据块中,从所述写入位置开始且长度为所述数据长度的目标数据;确定模块,用于根据各数据块中的所述目标数据确定增量纠删码;更新模块,用于根据所述增量纠删码,更新所述数据存储空间包括的各检验块中,从所述写入位置开始且长度为所述数据长度的目标校验数据。
11、前述任意实施例记载的方案中,通过对增量数据的写入位置(偏移值)和数据长度的采集,根据各数据块从所述写入位置开始长度为所述数据长度的增量变化数据计算增量纠删码,并更新校验块对应位置的校验数据,实现一种增量数据写入过程中的增量纠删码的计算和更新,从而在分布式存储场景中,不需要获取数据块全量数据进行纠删码计算,降低了对数据传输和计算资源的占用。
12、应当理解的是,以上所述的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
本文档来自技高网...【技术保护点】
1.一种基于增量纠删码的增量数据写入方法,其特征在于,预先创建增量日志存储数据空间,所述存储数据空间包括第一数量的数据块,用于存储增量数据,以及第二数量的校验块,用于存储针对所述增量数据的校验数据;所述第一数量为纠删码计算规则中设置的数据块数量,所述第二数量为所述纠删码计算规则中设置的校验块数量;
2.根据权利要求1所述的基于增量纠删码的增量数据写入方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的基于增量纠删码的增量数据写入方法,其特征在于,所述基础数据被以数据块的形式分布式存储在分布式系统中;所述存储数据空间包括的各数据块被分布式存储在所述分布式系统中;所述分布式系统包括多个存储节点;
4.根据权利要求2所述的基于增量纠删码的增量数据写入方法,其特征在于,响应于完成所述日志合并,所述方法还包括:
5.根据权利要求2所述的基于增量纠删码的增量数据写入方法,其特征在于,所述第一数量的数据块具有排序,其中最先被写入增量数据的数据块为一号数据块;
6.根据权利要求2所述的基于增量纠删码的增量数据写入方法,其特征在于
7.根据权利要求6所述的基于增量纠删码的增量数据写入方法,其特征在于,所述历史数据包括按照每天内的各时间段统计的相邻两次历史日志合并的增量数据量均值;
8.根据权利要求7所述的基于增量纠删码的增量数据写入方法,其特征在于,所述时间段的时长处于0.5小时至1.5小时区间内。
9.根据权利要求1所述的基于增量纠删码的增量数据写入方法,其特征在于,所述存储数据空间的大小与预设的增量日志大小相同。
10.一种基于增量纠删码的增量数据写入系统,其特征在于,预先创建增量日志存储数据空间,所述存储数据空间包括第一数量的数据块,用于存储增量数据,以及第二数量的校验块,用于存储针对所述增量数据的校验数据;所述第一数量为纠删码计算规则中设置的数据块数量,所述第二数量为所述纠删码计算规则中设置的校验块数量;
...【技术特征摘要】
1.一种基于增量纠删码的增量数据写入方法,其特征在于,预先创建增量日志存储数据空间,所述存储数据空间包括第一数量的数据块,用于存储增量数据,以及第二数量的校验块,用于存储针对所述增量数据的校验数据;所述第一数量为纠删码计算规则中设置的数据块数量,所述第二数量为所述纠删码计算规则中设置的校验块数量;
2.根据权利要求1所述的基于增量纠删码的增量数据写入方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的基于增量纠删码的增量数据写入方法,其特征在于,所述基础数据被以数据块的形式分布式存储在分布式系统中;所述存储数据空间包括的各数据块被分布式存储在所述分布式系统中;所述分布式系统包括多个存储节点;
4.根据权利要求2所述的基于增量纠删码的增量数据写入方法,其特征在于,响应于完成所述日志合并,所述方法还包括:
5.根据权利要求2所述的基于增量纠删码的增量数据写入方法,其特征在于,所述第一数量的数据块具有排序,其中最先被写入增量数...
【专利技术属性】
技术研发人员:吉宁,
申请(专利权)人:灵岫科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。