本发明专利技术公开了一种实现数据追加写的方法、装置、设备及计算机可读存储介质,其中该方法包括:将存储池划分为多个存储区域,并确定多个存储区域中预设数量个存储区域为当前存储区域;为每个当前存储区域绑定对应的写数据线程,写数据线程与当前存储区域为一一对应的关系;将接收到的数据轮询分配给每个写数据线程,以由每个写数据线程将数据以追加写的方式写入至对应的当前存储区域中。本申请通过分区追加写的方式,一定程度上避免了潜在的地址分配冲突;进一步的,通过存储区域与写数据线程的绑定,避免了因多线程写同一个地址而产生的地址竞争。可见,本申请公开的技术方案能够有效避免地址分配冲突的情况出现,进而大大提高了写性能。
【技术实现步骤摘要】
一种实现数据追加写的方法、装置及设备
本专利技术涉及数据存储
,更具体地说,涉及一种实现数据追加写的方法、装置、设备及计算机可读存储介质。
技术介绍
全闪存储是存储发展的一个重要方向,随着SSD(SolidStateDrives,固态硬盘)价格的逐渐下降,全闪存储必将受到更为广泛的应用,甚至逐渐替代传统存储,成为未来存储领域的主力军。全闪存储与传统存储相比,除了在性能及读写速度方面具有绝对优势外,数据组织方式的主要区别在于,受存储介质影响,传统存储的数据存放方式为覆盖写方式,即向同一个逻辑地址写入数据时,每次都是写在同一个地方,并覆盖掉旧数据;而全闪存储在向同一个逻辑地址写入数据时,每次都写在一个新地方,而旧数据不会被覆盖,而是等待后续被作为垃圾进行回收。为充分适应全闪存储的数据组织方式,在收到前端写入的数据并进行数据落盘时,需要先以存储池为粒度,将前端写入的数据采用追加写方式组织成一个大块的连续数据,然后将这些大块的连续数据一并下刷到底层SSD中。由于采用追加写方式,数据需要在存储池中从0位置开始,依次存放,因此当前端数据的量非常大时,数据可能由多个线程写入存储池中,此时为避免地址线程间地址分配冲突,就必然需要增加许多包含措施,如增加读写锁等,进而导致因追加写机制造成性能瓶颈。综上所述,现有技术中实现数据追加写的技术方案存在由地址分配冲突导致的写性能较低的问题。
技术实现思路
本专利技术的目的是提供一种实现数据追加写的方法、装置、设备及计算机可读存储介质,能够解决现有技术中实现数据追加写的技术方案存在的由地址分配冲突导致的写性能较低的问题。为了实现上述目的,本专利技术提供如下技术方案:一种实现数据追加写的方法,包括:将存储池划分为多个存储区域,并确定所述多个存储区域中预设数量个存储区域为当前存储区域;为每个当前存储区域绑定对应的写数据线程,所述写数据线程与当前存储区域为一一对应的关系;将接收到的数据轮询分配给每个所述写数据线程,以由每个所述写数据线程将数据以追加写的方式写入至对应的当前存储区域中。优选的,在将接收到的数据写入至对应当前存储区域的过程中,还包括:如果任一当前存储区域被写满,则确定所述存储池中当前未存储有数据的一存储区域为目标存储区域,将被写满的当前存储区域对应的写数据线程改绑定至所述目标存储区域,并确定该目标存储区域为当前存储区域;其中,所述预设数量小于存储池包含的存储区域的总数量。优选的,确定所述存储池中未存储有数据的一存储区域为目标存储区域,包括:确定所述存储池中当前未存储有数据的存储区域中历史上使用次数最少的一存储区域为目标存储区域。优选的,在将接收到的数据写入至对应当前存储区域的过程中,还包括:如果任一当前存储区域被写满,则将被写满的当前存储区域中存储的数据封装成一个数据块,并将该数据块下刷到底层SSD中。优选的,将被写满的当前存储区域对应数据块下刷到底层SSD中之后,还包括:对所述被写满的当前存储区域进行垃圾回收,确定进行垃圾回收之后的当前存储区域为当前未存储有数据的存储区域。优选的,在将接收到的数据写入至对应当前存储区域的过程中,还包括:如果任一当前存储区域被写满,则标记该被写满的当前存储区域为已使用状态;对应的,对所述被写满的当前存储区域进行垃圾回收之后,还包括:标记进行垃圾回收之后的当前存储区域为未使用状态。优选的,在将接收到的数据写入至对应当前存储区域的过程中,还包括:判断所述存储池当前空间使用率是否达到使用率阈值,如果是,则减少所述写数据线程,并将减少的写数据线程的工作转移到对所述存储池中存储区域的垃圾回收过程中;如果否,则确定所述写数据线程可继续正常使用。一种实现数据追加写的装置,包括:划分模块,用于:将存储池划分为多个存储区域,并确定所述多个存储区域中预设数量个存储区域为当前存储区域;绑定模块,用于:为每个当前存储区域绑定对应的写数据线程,所述写数据线程与当前存储区域为一一对应的关系;写模块,用于:将接收到的数据轮询分配给每个所述写数据线程,以由每个所述写数据线程将数据以追加写的方式写入至对应的当前存储区域中。一种实现数据追加写的设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上任一项所述实现数据追加写的方法的步骤。一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述实现数据追加写的方法的步骤。本专利技术提供了一种实现数据追加写的方法、装置、设备及计算机可读存储介质,其中该方法包括:将存储池划分为多个存储区域,并确定所述多个存储区域中预设数量个存储区域为当前存储区域;为每个当前存储区域绑定对应的写数据线程,所述写数据线程与当前存储区域为一一对应的关系;将接收到的数据轮询分配给每个所述写数据线程,以由每个所述写数据线程将数据以追加写的方式写入至对应的当前存储区域中。本申请公开的技术方案中,将存储池划分为多个存储区域,其中每个存储区域均可实现独立的追加写的数据存放方式,不同于现有技术中需要进行追加写的数据均写入同一存储池中,而是通过这种分区追加写的方式,一定程度上避免了潜在的地址分配冲突;进一步的,为预设数量个当前存储区域中每个存储区域均绑定一个写数据线程,由该写数据线程完成对应当前存储区域的数据写操作,从而避免了因多线程写同一个地址而产生的地址竞争。可见,本申请公开的技术方案能够有效避免地址分配冲突的情况出现,进而大大提高了写性能。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例提供的一种实现数据追加写的方法的流程图;图2为本专利技术实施例提供的一种实现数据追加写的方法的实现原理图;图3为本专利技术实施例提供的一种实现数据追加写的装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1,其示出了本专利技术实施例提供的一种实现数据追加写的方法的流程图,可以包括:S11:将存储池划分为多个存储区域,并确定多个存储区域中预设数量个存储区域为当前存储区域。需要说明的是,本专利技术实施例提供的一种实现数据追加写的方法的执行主语可以为对应的装置,而该装置可以存储系统中,因此,本专利技术实施例提供的一种实现数据追加写的方法的执行主语可以为存储系统。本申请中的存储池可以为全闪存储池,也即本申请可以应用于全闪存储结构中。将存储池划分为多个存储区域,可以为平均划分,也可以根据实际需要选取其他原则进行划分,均在本专利技术的保护范围之内,在此不做具体限定;划分后得到的每个存储区域均可以独立存放数据。预设数量可以根据实际需要进行确定,一般存在两种情况,一种为预设数量即为存储区域的总数量,也即将全部存储区域均作为当前存储区域,进而为全部存储区域均一本文档来自技高网...
【技术保护点】
1.一种实现数据追加写的方法,其特征在于,包括:将存储池划分为多个存储区域,并确定所述多个存储区域中预设数量个存储区域为当前存储区域;为每个当前存储区域绑定对应的写数据线程,所述写数据线程与当前存储区域为一一对应的关系;将接收到的数据轮询分配给每个所述写数据线程,以由每个所述写数据线程将数据以追加写的方式写入至对应的当前存储区域中。
【技术特征摘要】
1.一种实现数据追加写的方法,其特征在于,包括:将存储池划分为多个存储区域,并确定所述多个存储区域中预设数量个存储区域为当前存储区域;为每个当前存储区域绑定对应的写数据线程,所述写数据线程与当前存储区域为一一对应的关系;将接收到的数据轮询分配给每个所述写数据线程,以由每个所述写数据线程将数据以追加写的方式写入至对应的当前存储区域中。2.根据权利要求1所述的方法,其特征在于,在将接收到的数据写入至对应当前存储区域的过程中,还包括:如果任一当前存储区域被写满,则确定所述存储池中当前未存储有数据的一存储区域为目标存储区域,将被写满的当前存储区域对应的写数据线程改绑定至所述目标存储区域,并确定该目标存储区域为当前存储区域;其中,所述预设数量小于存储池包含的存储区域的总数量。3.根据权利要求2所述的方法,其特征在于,确定所述存储池中未存储有数据的一存储区域为目标存储区域,包括:确定所述存储池中当前未存储有数据的存储区域中历史上使用次数最少的一存储区域为目标存储区域。4.根据权利要求2所述的方法,其特征在于,在将接收到的数据写入至对应当前存储区域的过程中,还包括:如果任一当前存储区域被写满,则将被写满的当前存储区域中存储的数据封装成一个数据块,并将该数据块下刷到底层SSD中。5.根据权利要求4所述的方法,其特征在于,将被写满的当前存储区域对应数据块下刷到底层SSD中之后,还包括:对所述被写满的当前存储区域进行垃圾回收,确定进行垃圾回收之后的当前存储区域为当前未存储有数据的存储区...
【专利技术属性】
技术研发人员:刘志勇,
申请(专利权)人:郑州云海信息技术有限公司,
类型:发明
国别省市:河南,41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。