System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本说明书涉及通信,尤其涉及一种日志管理方法及装置。
技术介绍
1、随着网络技术的发展,网络存储的应用也逐步扩展。分布式存储系统是网络存储常用的方式之一,通过将存储节点中的硬盘进行池化对外提供存储资源。
2、在通过wal(write ahead log,预写日志)方式部署分布式存储系统的情况下,分布式存储系统包含有缓存层和持久化层,缓存层部署有用于缓存对象数据的数据缓存和用于缓存日志的日志缓存。在wal方式下,分布式存储系统通过缓存日志来记录用户数据操作的方式和顺序。比如,处理写请求时,在分布式存储系统出现故障掉电的情况下,数据缓存的对象数据未写入持久化层(也被称为落盘)会出现丢失的问题,此时,分布式存储系统能够通过日志进行回放,继续完成掉电丢失的对象数据向持久化层的写入。
3、在执行时,用户发送的数据操作请求会先形成日志存储到日志缓存,之后对象数据存储到数据缓存,在数据缓存中的一份对象数据被写入到持久化层后,删除日志缓存中对应的日志,以日志硬盘缓存中的空间,供后续的数据操作请求使用。分布式存储系统需要通过引用图(seq map)记录日志的写入顺序,引用图中的每一个顺序值需要记录对应的引用计数,该引用计数在被日志引用时递增,在对象数据写入持久化层时递减,从而实现对引用图的更新。在对象数据增加的情况下,分布式存储系统需要消耗较多的计算资源实现日志的管理,提升了分布式存储系统的资源负担。
技术实现思路
1、为克服相关技术中存在的问题,本说明书提供了一种日志管理方法
2、根据本说明书实施例的第一方面,提供了一种日志管理方法,应用于分布式存储系统的缓存层,包括:
3、根据客户端发送的数据操作请求生成日志,将生成的日志写入到日志缓存的日志对象;
4、建立所述日志对象与引用图的顺序值的引用关系,向刷盘队列写入与数据操作请求相对应的操作指令,其中,所述操作指令包含清除标记,在写入的日志为引用一个顺序值的最后一个日志时,所述清除标记被设置为有效值;
5、在依次根据刷盘队列中的操作指令对持久化层中的数据进行操作的过程中,若当前处理的操作指令中记录的清除标记为有效值,则清除当前处理的操作指令,并根据所述引用关系删除当前处理的操作指令中记录的顺序值相对应的日志对象。
6、可选的,在写入的日志不为引用一个顺序值的最后一个日志时,所述清除标记被设置为无效值;
7、所述方法,还包括:
8、在依次根据刷盘队列中的操作指令对持久化层中的数据进行操作的过程中,若当前处理的操作指令中记录的清除标记为无效值,则清除当前处理的操作指令,并执行所述刷盘队列中的下一个操作指令。
9、可选的,根据客户端发送的数据操作请求生成日志,将生成的日志写入到日志缓存的日志对象,包括:
10、接收客户端发送的数据操作请求;
11、根据所述数据操作请求生成日志;
12、若日志缓存中当前的日志对象不存在空闲的存储空间,则创建新的日志对象,并将生成的日志存储至该创建的日志对象;
13、若日志缓存中当前的日志对象存在空闲的存储空间,则将生成的日志存储至当前的日志对象。
14、可选的,所述数据操作请求包括写请求,所述写请求对应的操作指令包含用户对象标识、被置为第一值的操作类型和数据位置;
15、在根据客户端发送的数据操作请求生成日志,将生成的日志写入到日志缓存的日志对象之后,还包括:
16、将写请求中的待写入数据存储至数据缓存;
17、所述根据刷盘队列中的操作指令对持久化层中的数据进行操作,包括:
18、若确定所述当前处理的操作指令中的操作类型为第一值,则根据所述用户对象标识和数据位置,从所述数据缓存获取待写入数据,并将所述待写入数据存储至所述持久化层中。
19、可选的,所述数据操作请求包括删除请求,所述删除请求对应的操作指令包含用户对象标识、被置为第二值的操作类型;
20、所述根据刷盘队列中的操作指令对持久化层中的数据进行操作,包括:
21、若确定所述当前处理的操作指令中的操作类型为第二值,则删除持久化层中与所述用户对象标识相对应的数据存储空间。
22、可选的,所述数据操作请求包括创建请求,所述创建请求对应的操作指令包含用户对象标识、被置为第三值的操作类型;
23、所述根据刷盘队列中的操作指令对持久化层中的数据进行操作,包括:
24、若确定所述当前处理的操作指令中的操作类型为第三值,则向所述持久化层申请与所述用户对象标识相对应的数据存储空间。
25、可选的,若当前处理的操作指令中记录的清除标记为有效值,则清除当前处理的操作指令,并根据所述引用关系删除当前处理的操作指令中记录的顺序值相对应的日志对象,包括:
26、若当前处理的操作指令中记录的清除标记为有效值且当前处理的操作指令为所述刷盘队列中的第一个操作指令,则清除当前处理的操作指令,并根据所述引用关系删除当前处理的操作指令中记录的顺序值相对应的日志对象。
27、可选的,若当前处理的操作指令中记录的清除标记为有效值,则清除当前处理的操作指令,并根据所述引用关系删除当前处理的操作指令中记录的顺序值相对应的日志对象,还包括:
28、若当前处理的操作指令中记录的清除标记为有效值且当前处理的操作指令不为所述刷盘队列中的第一个操作指令,则清除当前处理的操作指令,并根据当前处理的操作指令中的清除标记更新当前处理的操作指令的前一个操作指令中的清除标记。
29、可选的,所述清除标记的有效值为写入的日志所引用的顺序值;
30、所述清除标记的无效值为不同于所述顺序值的预设值。
31、根据本说明书实施例的第二方面,提供了一种日志管理装置,应用于分布式存储系统的缓存层,包括:
32、日志生成单元,用于根据客户端发送的数据操作请求生成日志,将生成的日志写入到日志缓存的日志对象;
33、记录单元,用于建立所述日志对象与引用图的顺序值的引用关系,向刷盘队列写入与数据操作请求相对应的操作指令,其中,所述操作指令包含清除标记,在写入的日志为引用一个顺序值的最后一个日志时,所述清除标记被设置为有效值;
34、处理单元,用于在依次根据刷盘队列中的操作指令对持久化层中的数据进行操作的过程中,若当前处理的操作指令中记录的清除标记为有效值,则清除当前处理的操作指令,并根据所述引用关系删除当前处理的操作指令中记录的顺序值相对应的日志对象。
35、可选的,在写入的日志不为引用一个顺序值的最后一个日志时,所述清除标记被设置为无效值;
36、所述处理单元,还用于在依次根据刷盘队列中的操作指令对持久化层中的数据进行操作的过程中,若当前处理的操作指令中记录的清除标记为无效值,则清除当前处理的操作指令,并执行所述刷盘队列中的下一个操作指令。本文档来自技高网...
【技术保护点】
1.一种日志管理方法,其特征在于,应用于分布式存储系统的缓存层,包括:
2.根据权利要求1所述的方法,其特征在于,在写入的日志不为引用一个顺序值的最后一个日志时,所述清除标记被设置为无效值;
3.根据权利要求1所述的方法,其特征在于,根据客户端发送的数据操作请求生成日志,将生成的日志写入到日志缓存的日志对象,包括:
4.根据权利要求1所述的方法,其特征在于,所述数据操作请求包括写请求,所述写请求对应的操作指令包含用户对象标识、被置为第一值的操作类型和数据位置;
5.根据权利要求1所述的方法,其特征在于,所述数据操作请求包括删除请求,所述删除请求对应的操作指令包含用户对象标识、被置为第二值的操作类型;
6.根据权利要求1所述的方法,其特征在于,所述数据操作请求包括创建请求,所述创建请求对应的操作指令包含用户对象标识、被置为第三值的操作类型;
7.根据权利要求1所述的方法,其特征在于,若当前处理的操作指令中记录的清除标记为有效值,则清除当前处理的操作指令,并根据所述引用关系删除当前处理的操作指令中记录的顺序值相对
8.根据权利要求7所述的方法,其特征在于,若当前处理的操作指令中记录的清除标记为有效值,则清除当前处理的操作指令,并根据所述引用关系删除当前处理的操作指令中记录的顺序值相对应的日志对象,还包括:
9.根据权利要求1-8任一项所述的方法,其特征在于,所述清除标记的有效值为写入的日志所引用的顺序值;
10.一种日志管理装置,其特征在于,应用于分布式存储系统的缓存层,包括:
11.根据权利要求10所述的装置,其特征在于,在写入的日志不为引用一个顺序值的最后一个日志时,所述清除标记被设置为无效值;
12.根据权利要求10所述的装置,其特征在于,所述生成单元,包括:
13.根据权利要求10所述的装置,其特征在于,所述数据操作请求包括写请求,所述写请求对应的操作指令包含用户对象标识、被置为第一值的操作类型和数据位置;
14.根据权利要求10所述的装置,其特征在于,所述处理单元在依次根据刷盘队列中的操作指令对持久化层中的数据进行操作的过程中,具体用于若当前处理的操作指令中记录的清除标记为有效值且当前处理的操作指令为所述刷盘队列中的第一个操作指令,则清除当前处理的操作指令,并根据所述引用关系删除当前处理的操作指令中记录的顺序值相对应的日志对象;若当前处理的操作指令中记录的清除标记为有效值且当前处理的操作指令不为所述刷盘队列中的第一个操作指令,则清除当前处理的操作指令,并根据当前处理的操作指令中的清除标记更新当前处理的操作指令的前一个操作指令中的清除标记。
15.根据权利要求10-14任一项所述的装置,其特征在于,所述清除标记的有效值为写入的日志所引用的顺序值;
16.一种服务器,其特征在于,包括收发器、处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-9任一项所述的方法步骤。
17.一种机器可读存储介质,其特征在于,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现权利要求1-9任一项所述的方法步骤。
...【技术特征摘要】
1.一种日志管理方法,其特征在于,应用于分布式存储系统的缓存层,包括:
2.根据权利要求1所述的方法,其特征在于,在写入的日志不为引用一个顺序值的最后一个日志时,所述清除标记被设置为无效值;
3.根据权利要求1所述的方法,其特征在于,根据客户端发送的数据操作请求生成日志,将生成的日志写入到日志缓存的日志对象,包括:
4.根据权利要求1所述的方法,其特征在于,所述数据操作请求包括写请求,所述写请求对应的操作指令包含用户对象标识、被置为第一值的操作类型和数据位置;
5.根据权利要求1所述的方法,其特征在于,所述数据操作请求包括删除请求,所述删除请求对应的操作指令包含用户对象标识、被置为第二值的操作类型;
6.根据权利要求1所述的方法,其特征在于,所述数据操作请求包括创建请求,所述创建请求对应的操作指令包含用户对象标识、被置为第三值的操作类型;
7.根据权利要求1所述的方法,其特征在于,若当前处理的操作指令中记录的清除标记为有效值,则清除当前处理的操作指令,并根据所述引用关系删除当前处理的操作指令中记录的顺序值相对应的日志对象,包括:
8.根据权利要求7所述的方法,其特征在于,若当前处理的操作指令中记录的清除标记为有效值,则清除当前处理的操作指令,并根据所述引用关系删除当前处理的操作指令中记录的顺序值相对应的日志对象,还包括:
9.根据权利要求1-8任一项所述的方法,其特征在于,所述清除标记的有效值为写入的日志所引用的顺序值;
10.一种日志管理装置,其特征在于,应用于分布式存储系统的缓存层,包括:
1...
【专利技术属性】
技术研发人员:汪开平,
申请(专利权)人:新华三信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。