一种数据操作方法及系统与流程

文档序号:11133480阅读:283来源:国知局
一种数据操作方法及系统与制造工艺

本发明涉及计算机存储数据载体技术领域,更具体地说,涉及一种数据操作方法及系统。



背景技术:

在分布式存储系统中,为了提高数据的可靠性一般采取多副本策略,而在分布式存储系统中对于数据的读写通常是通过副本实现的,具体来说,对于存在主、备副本的强一致性模型,写数据时数据必须在所有副本均写入成功才返回ACK(Acknowledgement,确认字符),而读数据时通常利用主副本即可完成数据的读取。

用于实现上述分布式存储系统中各副本的存储介质通常采用以HDD为代表的传统存储介质实现,这类存储介质拥有大容量、价格低、接口丰富等优点,能够符合分布式存储系统对上述性能的要求。但是,由于分布式存储系统的大数据特点,通过各副本实现的数据读写次数较多,而各副本所采用的上述传统存储介质则表现出读写性能较差的问题。

综上所述,现有技术的实现数据操作的技术方案存在系统读写性能较差的问题。



技术实现要素:

本发明的目的是提供一种数据操作方法及系统,以解决现有技术的实现数据操作的技术方案存在的系统读写性能较差的问题。

为了实现上述目的,本发明提供如下技术方案:

一种数据操作方法,包括:

接收数据操作请求,如果所述数据操作请求为数据读请求,则访问主副本分区获取与所述数据读请求对应的数据并返回该数据;如果所述数据操作请求为数据写请求,则将与所述数据写请求对应的写操作写入日志分区中所述主副本分区及对应备副本分区的日志并返回写操作完成信息;其中,所述主副本分区及所述日志分区均采用高性能存储介质实现。

优选的,如果所述数据操作请求为数据写请求,则将与所述数据写请求对应的写操作写入日志分区中所述主副本分区及对应备副本分区的日志,包括:

如果所述数据操作请求为数据写请求,则判断所述数据写请求对应的数据是否大于数据阈值,如果否,则对所述数据写请求不做处理,直到接收到多个数据写请求,且该多个数据写请求对应的数据大于数据阈值,则将该多个数据写请求对应的写操作一次性写入日志分区中所述主副本分区及对应备副本分区的日志。

优选的,如果所述数据操作请求为数据读请求,则访问主副本分区获取与所述数据读请求对应的数据并返回该数据,包括:

如果所述数据操作请求为数据读请求,则通过查询元数据获取所述数据读请求对应的数据位置信息,并访问所述主副本分区获取与所述数据位置信息对应位置的数据。

优选的,还包括:

如果通过所述元数据未获取到与所述数据读请求对应的数据位置信息,则返回数据读失败信息。

优选的,还包括:

基于所述日志分区中写入的写操作将对应数据写入所述主副本分区及备副本分区中,其中,所述备副本分区采用HDD实现。

一种数据操作系统,包括:

主副本分区,用于存储对应数据;

日志分区,用于存储主副本分区及对应备副本分区的日志;

控制模块,用于接收数据操作请求,如果所述数据操作请求为数据读请求,则访问主副本分区获取与所述数据读请求对应的数据并返回该数据;如果所述数据操作请求为数据写请求,则将与所述数据写请求对应的写操作写入日志分区中所述主副本分区及对应备副本分区的日志并返回写操作完成信息;

其中,所述主副本分区及所述日志分区均采用高性能存储介质实现。

优选的,所述控制模块包括:

写请求处理单元,用于如果所述数据操作请求为数据写请求,则判断所述数据写请求对应的数据是否大于数据阈值,如果否,则对所述数据写请求不做处理,直到接收到多个数据写请求,且该多个数据写请求对应的数据大于数据阈值,则将该多个数据写请求对应的写操作一次性写入日志分区中所述主副本分区及对应备副本分区的日志。

优选的,所述控制模块包括:

读请求处理单元,用于如果所述数据操作请求为数据读请求,则通过查询元数据获取所述数据读请求对应的数据位置信息,并访问所述主副本分区获取与所述数据位置信息对应位置的数据。

优选的,所述读请求处理单元还包括:

读请求处理子单元,用于如果通过所述元数据未获取到与所述数据读请求对应的数据位置信息,则返回数据读失败信息。

优选的,还包括:

副本写模块,用于基于所述日志分区中写入的写操作将对应数据写入所述主副本分区及备副本分区中,其中,所述备副本分区采用HDD实现。

本发明提供了一种数据操作方法及系统,其中该方法包括:接收数据操作请求,如果所述数据操作请求为数据读请求,则访问主副本分区获取与所述数据读请求对应的数据并返回该数据;如果所述数据操作请求为数据写请求,则将与所述数据写请求对应的写操作写入日志分区中所述主副本分区及对应备副本分区的日志并返回写操作完成信息;其中,所述主副本分区及所述日志分区均采用高性能存储介质实现。本发明公共的上述技术方案,当数据操作请求为数据读请求时通过访问采用高性能存储介质实现的主副本分区完成对应读操作,大大提高了系统读性能;当数据操作请求为数据写请求时通过将对应数据写入日志分区对应主副本分区及备副本分区的日志即可返回操作完成信息,大大缩短了写操作耗时,提高了写操作性能,且日志分区为采用高性能存储介质实现的,进一步提高了系统写性能。可见,本申请公开的技术方案达到了对高性能存储介质的有效利用,同时通过日志分区实现对应写操作,从而大大提高了系统读写性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种数据操作方法的流程图;

图2为本发明实施例提供的一种数据操作方法的具体应用场景中日志分区及各副本的结构示意图;

图3为本发明实施例提供的一种数据操作系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,其示出了本发明实施例提供的一种数据操作方法的流程图,可以包括以下步骤:

S11:接收数据操作请求,如果数据操作请求为数据读请求,则执行步骤S12,如果数据操作请求为数据写请求,则执行步骤S13。

S12:访问主副本分区获取与数据读请求对应的数据并返回该数据;其中,主副本分区采用高性能存储介质实现。

需要说明的是,主副本分区主要用来提供快速的数据访问,其中,高性能存储介质即为所能提供的读写性能符合预设要求的存储介质,如以FLASH、DRAM为代表的固态硬盘SSD与全闪存等,预设要求可以由工作人员根据实际需要进行确定。当数据操作请求为数据读请求时,可以直接访问主副本分区,以获取与数据读请求对应的数据,而由于主副本分区为采用高性能存储介质实现的,由此,大大提高了读操作性能。

S13:将与数据写请求对应的写操作写入日志分区中主副本分区及对应备副本分区的日志并返回写操作完成信息;其中,日志分区采用高性能存储介质实现。

需要说明的是,日志分区主要为主副本分区及对应备副本分区提供日志,日志主要具有两个作用,其一为了保证用户层面的写操作的原子性,避免执行多个操作时发生意外造成中间状态而无法追溯或者回滚,提供操作进程非正常退出后再启动的恢复依据;其二可以缩短写操作耗时,即写请求达到时候只需要将其对应写操作写入日志便可立即回复写操作完成信息,操作完成信息具体可以为ACK,无需像现有技术中一样等待数据全部写入到主副本分区及备副本分区才返回ACK。且日志分区采用高性能存储介质实现,由此,通过存储介质的选取及上述写操作的实现两方面实现了写操作性能的提高。

本发明公共的上述技术方案,当数据操作请求为数据读请求时通过访问采用高性能存储介质实现的主副本分区完成对应读操作,大大提高了系统读性能;当数据操作请求为数据写请求时通过将对应数据写入日志分区对应主副本分区及备副本分区的日志即可返回操作完成信息,大大缩短了写操作耗时,提高了写操作性能,且日志分区为采用高性能存储介质实现的,进一步提高了系统写性能。可见,本申请公开的技术方案达到了对高性能存储介质的有效利用,同时通过日志分区实现对应写操作,从而大大提高了系统读写性能。

本发明实施例提供的一种数据操作方法,如果数据操作请求为数据写请求,则将与数据写请求对应的写操作写入日志分区中主副本分区及对应备副本分区的日志,可以包括:

如果数据操作请求为数据写请求,则判断数据写请求对应的数据是否大于数据阈值,如果否,则对数据写请求不做处理,直到接收到多个数据写请求,且该多个数据写请求对应的数据大于数据阈值,则将该多个数据写请求对应的写操作一次性写入日志分区中主副本分区及对应备副本分区的日志。

其中,数据阈值可以根据实际需要进行确定,如果数据写请求对应的数据不大于数据阈值,则说明该数据写请求为随机小IO,此时可以继续等待接收其他数据写请求,直到接收到的未处理的数据写请求对应数据大于数据阈值,则实现对应写操作。由此,将随机小IO转化为顺序IO,解决了随机小IO对应的频繁写操作带来的性能问题,进一步提高了系统写性能。

本发明实施例提供的一种数据操作方法,如果数据操作请求为数据读请求,则访问主副本分区获取与数据读请求对应的数据并返回该数据,可以包括:

如果数据操作请求为数据读请求,则通过查询元数据获取数据读请求对应的数据位置信息,并访问主副本分区获取与数据位置信息对应位置的数据。

其中元数据为系统用于维护系统中重要的状态位图和映射信息的数据信息,如果数据操作请求为数据读请求,可以通过对元数据的查询获取与数据读请求对应的数据的数据位置信息,进而实现对数据位置信息的数据的获取,完成对应的读操作;从而进一步缩短了读操作所需时间,提高了系统读性能。

本发明实施例提供的一种数据操作方法,还可以包括:

如果通过元数据未获取到与数据读请求对应的数据位置信息,则返回数据读失败信息。

返回数据读失败信息,可以方便发起数据读请求的发起方及时获知读操作的实现情况,进而做出对应的补救措施。

本发明实施例提供的一种数据操作方法,还可以包括:

基于日志分区中写入的写操作将对应数据写入主副本分区及备副本分区中,其中,备副本分区采用HDD实现。

其中,在将写操作写入日志分区并返回操作完成信息后,可以将日志分区中的写操作对应数据写入职对应的主副本分区及备副本分区,最终完成写操作。本申请中,备副本分区采用HDD实现,HDD具有容量大、价格低及接口丰富等优点,由此,本申请中在充分利用高性能存储介质的读写性能的同时,结合传统存储介质容量高的优点,使得系统的性能及容量均达到较高水平。

下面在具体应用场景中说明本发明实施例提供的上述技术方案,如图2所示,高性能存储介质设备主要包括两部分:日志分区和主副本分区,其中日志分区同时为后端大容量普通HDD设备组成的备副本分区以及主副本分区提供日志服务;高性能存储介质设备和普通HDD设备挂载在同一台主机下,故障域以主机为单位划分;对于一次写操作,首先经过crush算法计算出place group id,然后查询place group的位置信息,现有技术中为根据获取的place group与各副本分区的映射信息直接对各副本分区进行写操作,而本申请中写操作首先落在对应的日志上,然后返回ACK,至此,写操作完成;对于一次读操作,首先查询所访问数据的数据位置信息,然后直接从主副本分区的数据位置信息读取数据。

本发明实施例还提供了一种数据操作系统,如图3所示,可以包括:

主副本分区11,用于存储对应数据;

日志分区12,用于存储主副本分区及对应备副本分区的日志;

控制模块13,用于接收数据操作请求,如果数据操作请求为数据读请求,则访问主副本分区获取与数据读请求对应的数据并返回该数据;如果数据操作请求为数据写请求,则将与数据写请求对应的写操作写入日志分区中主副本分区及对应备副本分区的日志并返回写操作完成信息;

其中,主副本分区及日志分区均采用高性能存储介质实现。

本发明实施例提供的一种数据操作系统,控制模块可以包括:

写请求处理单元,用于如果数据操作请求为数据写请求,则判断数据写请求对应的数据是否大于数据阈值,如果否,则对数据写请求不做处理,直到接收到多个数据写请求,且该多个数据写请求对应的数据大于数据阈值,则将该多个数据写请求对应的写操作一次性写入日志分区中主副本分区及对应备副本分区的日志。

本发明实施例提供的一种数据操作系统,控制模块可以包括:

读请求处理单元,用于如果数据操作请求为数据读请求,则通过查询元数据获取数据读请求对应的数据位置信息,并访问主副本分区获取与数据位置信息对应位置的数据。

本发明实施例提供的一种数据操作系统,读请求处理单元还可以包括:

读请求处理子单元,用于如果通过元数据未获取到与数据读请求对应的数据位置信息,则返回数据读失败信息。

本发明实施例提供的一种数据操作系统,还可以包括:

副本写模块,用于基于日志分区中写入的写操作将对应数据写入主副本分区及备副本分区中,其中,备副本分区采用HDD实现。

本发明实施例提供的一种数据操作方法及系统可以应用于包含有主、备副本的分布式存储系统中,当然还可以应用于包含有主、备副本的其他系统中,均在本发明的保护范围之内;而本发明实施例提供的一种数据操作系统中相关部分的说明请参见本发明实施例提供的一种数据操作方法中对应部分的详细说明,在此不再赘述。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1