一种基于键值数据库的日志处理方法及系统的制作方法
【技术领域】
[0001]本申请涉及云存储领域,特别涉及一种基于键值数据库的日志处理方法及系统。
【背景技术】
[0002]随着技术的发展,人们对云存储系统日志处理的方法越来越关注。
[0003]现有的云存储系统一般采用一个单独的磁盘分区,或者采用一个单独的磁盘文件存放日志,该磁盘分区或者磁盘文件时可以被循环地、覆盖地写入的,但是每次日志写入都必须以直接1的形式固化到磁盘,极大地影响了云存储系统的写入带宽、写入延时和1PS等性能指标。
[0004]因此,如何有效的进行云存储系统的日志处理,提高日志写入的性能是本领域技术人员目前需要解决的技术问题。
【发明内容】
[0005]本申请所要解决的技术问题是提供一种基于键值数据库的日志处理方法及系统,解决了现有技术中每次日志写入都必须以直接1的形式固化到磁盘,极大地影响了云存储系统的写入带宽、写入延时和1PS等性能指标的问题。
[0006]其具体方案如下:
[0007]一种基于键值数据库的日志处理方法,该方法包括:
[0008]接收写请求操作的指令,为所述写请求操作分配序号,所述写请求操作的指令中包括所述写请求操作的内容;
[0009]将所述写请求操作的指令转换为键值记录,其中,所述键值记录中的键为所述为写请求操作分配的序号,所述键值记录中的值为所述写请求操作的内容;
[0010]将所述写请求操作的指令转换成的键值记录保存到键值数据库中。
[0011]上述的方法,还包括:
[0012]将所述写请求操作应用并固化到云存储系统中。
[0013]上述的方法,还包括:
[0014]从所述键值数据库中删除与应用并固化到云存储系统中的写请求操作相对应的键值记录。
[0015]上述的方法,当云存储系统出现故障意外终止,并重启时,还包括:
[0016]按照顺序读取所述键值数据库中的所有键值记录;
[0017]提取每条所述键值记录中的写请求操作的内容;
[0018]将所述写请求操作的内容应用并固化到云存储系统中。
[0019]上述的方法,还包括:
[0020]从键值数据库中删除与应用并固化到云存储系统中的写请求操作的内容相对应的键值记录。
[0021]一种基于键值数据库的日志处理系统,该系统包括:
[0022]接收单元,用于接收写请求操作的指令,所述写请求操作的指令中包括所述写请求操作的序号以及所述写请求操作的内容;
[0023]转换单元,用于将所述写请求操作的指令转换为键值记录,其中,所述键值记录中的键为所述写请求操作的序号,所述键值记录中的值为所述写请求操作的内容;
[0024]保存单元,用于将所述写请求操作的指令转换成的键值记录保存到键值数据库中。
[0025]上述的系统,还包括:
[0026]第一应用单元,用于将所述写请求操作应用并固化到云存储系统中。
[0027]上述的系统,还包括:
[0028]第一删除单元,用于从所述键值数据库中删除与应用并固化到云存储系统中的写请求操作相对应的键值记录。
[0029]上述的系统,当云存储系统出现故障意外终止,并重启时,还包括:
[0030]读取单元,用于按照顺序读取所述键值数据库中的所有键值记录;
[0031]提取单元,用于提取每条所述键值记录中的写请求操作的内容;
[0032]第二应用单元,用于将所述写请求操作的内容应用并固化到云存储系统中。
[0033]上述的系统,还包括:
[0034]第二删除单元,用于从键值数据库中删除与应用并固化到云存储系统中的写请求操作的内容相对应的键值记录。
[0035]本申请提供的一种基于键值数据库的日志处理方法中,首先,接收写请求操作的指令,为所述写请求操作分配序号,所述写请求操作的指令中包括所述写请求操作的内容;然后,将所述写请求操作的指令转换为键值记录,其中,所述键值记录中的键为所述为写请求操作分配的序号,所述键值记录中的值为所述写请求操作的内容;最后,将所述写请求操作的指令转换成的键值记录保存到键值数据库中。本申请中将每个写请求操作的日志以键值记录的形式保存在键值数据库中,由于键值数据库是一种轻量级的非关系型数据库,在键值数据库中,所有的数据都按照键值对的形式进行组织、索引和存储,能够有效的减少读写磁盘的次数,拥有更好的读写性能,因此,本申请中基于键值数据库的日志处理方法,可以有效的减少因记录日志而导致的磁盘写入次数,大大提升了日志写入的性能。
【附图说明】
[0036]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0037]图1是本申请的一种基于键值数据库的日志处理方法实施例的流程图;
[0038]图2是本申请的一种基于键值数据库的日志处理方法另一实施例的流程图;
[0039]图3是本申请的一种基于键值数据库的日志处理系统实施例的示意图。
【具体实施方式】
[0040]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0041 ] 参考图1,示出了本申请一种基于键值数据库的日志处理方法实施例的流程图,可以包括以下步骤:
[0042]步骤SlOl:接收写请求操作的指令,为所述写请求操作分配序号,所述写请求操作的指令中包括所述写请求操作的内容。
[0043]当系统正常运行时,需要对日志进行写入操作时,首先接收写请求操作的指令,所述指令中包括了写请求操作的内容,然后云存储系统对接收的写请求操作分配序号,这个序号代表了所述写请求操作提交和处理的顺序,以便后续将所述写请求操作转换成键值记录。
[0044]步骤S102:将所述写请求操作的指令转换为键值记录,其中,所述键值记录中的键为所述为写请求操作分配的序号,所述键值记录中的值为所述写请求操作的内容。
[0045]为了建立日志与键值数据库的关系,将写请求操作指令中的信息转换成与键值数据库中的键值记录,一个写请求操作指令转换成一条以该写请求的序号为键、内容为值的日志记录,使得每个日志记录均以键值记录的形式表现出来。
[0046]步骤S103:将所述写请求操作的指令转换成的键值记录保存到键值数据库中。
[0047]将每个写请求操作指令转换成的键值记录插入到键值数据库对应的位置上。
[0048]本申请中,对于使用日志机制的云存储系统,使用键值数据库作为日志的存储后端,以替代传统的磁盘分区、磁盘文件等后端。
[0049]键值数据库又称键值存储、KV数据库,是一种轻量级的非关系型数据库。在键值数据库中,所有的数据都按照键值对的形式进行组织、索引和存储。键值数据库非常适合不涉及过多数据关系业务关系的业务数据,同时能有效减少读写磁盘的次数,比关系型数据库拥有更好的读写性能。目前,常用的开源键值数据库系统有LevelDB,Redis等。
[0050]步骤S104:将所述日志记录保存在键值数据库中之后,需要将所述写请求操作应用并固化到云存储系统中,将云存储系统中相关的内容按照所述写请求操作进行更改。
[0051]步骤S105:在云存储系统中进行更改操作后,从所述键值数据库中删除与应用并固化到云存储系统中的写请求操作相对应的键值记录。
[0052]本申请中将每个写请求操作的日志以键值记录的形式保