数据写入方法和装置制造方法及图纸

技术编号:11644914 阅读:57 留言:0更新日期:2015-06-25 04:05
本发明专利技术提出一种数据写入方法和装置,该数据写入方法包括:接收应用发送的写操作请求;将所述写操作请求存入第一缓存;当所述写操作请求的类型为写立即返回或写且同步操作时,或者当所述第一缓存已满足缓存切换条件时,将保存接收的写操作请求的缓存由所述第一缓存切换为第二缓存;对所述第一缓存中的写操作请求执行写入操作。本发明专利技术可以充分发挥批量读写与写盘操作的并行性,可以在不影响应用写操作语义的前提下最大性能地提高吞吐量。

【技术实现步骤摘要】

本专利技术涉及互联网
,尤其涉及一种数据写入方法和装置
技术介绍
在高吞吐的存储系统中,读写的压力往往每秒达到上万个请求量,而且请求的数据量大小不等。特别是在结构化的存储引擎中,往往写请求只是为了修改或者更新有效的几个短属性字段,而且更新后要求立即读可见,以保证会话事务性。同时,越来越多系统采用基于日志的系统设计(Write Append Logging;以下简称:WAL)设计,尽可能将所有的写变成顺序写,以减少磁头的移动并持久化数据。由于WAL设计需要实时将数据落盘,这需要调用操作系统的同步(sync)接口,将会有大量的小数据请求需要实时执行落盘。然而,由于磁盘读写磁头的机械调度的缘故,常常需要调度到不同的磁道才能开始进行读写。在目前的串行高级技术附件(Serial Advanced Technology Attachment ;以下简称:SATA)盘环境下,由于每次写入的最小单位是一个扇区,如果数据量太小,则扇区中多余的空间将会被浪费掉。而在驱动层或者操作系统层,通常写缓存为一个页面大小(4K或者8K),因此对于小数据量的每次更新或者写入均调用一次写盘操作的话,会增加延时,难以提尚吞吐量。
技术实现思路
本专利技术的目的旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的第一个目的在于提出一种数据写入方法。该方法可以充分发挥批量读写与写盘操作的并行性,可以在不影响应用写操作语义的前提下最大性能地提高吞吐量。本专利技术的第二个目的在于提出一种数据写入装置。为了实现上述目的,本专利技术第一方面实施例的数据写入方法,包括:接收应用发送的写操作请求;将所述写操作请求存入第一缓存;当所述写操作请求的类型为写立即返回或写且同步操作时,或者当所述第一缓存已满足缓存切换条件时,将保存接收的写操作请求的缓存由所述第一缓存切换为第二缓存;对所述第一缓存中的写操作请求执行写入操作。本专利技术实施例的数据写入方法,接收应用发送的写操作请求之后,先将接收到的写操作请求存入第一缓存,当上述写操作请求的类型为写立即返回或写且同步操作时,或者当上述第一缓存已满足缓存切换条件时,将保存接收的写操作请求的缓存由第一缓存切换为第二缓存,再对上述第一缓存中的写操作请求执行写入操作,从而可以充分发挥批量读写与写盘操作的并行性,进而可以在不影响应用写操作语义的前提下最大性能地提高吞吐量。为了实现上述目的,本专利技术第二方面实施例的数据写入装置,包括:接收模块,用于接收应用发送的写操作请求;存入模块,用于将所述接收模块接收的写操作请求存入第一缓存;切换模块,用于当所述写操作请求的类型为写立即返回或写且同步操作时,或者当所述第一缓存已满足缓存切换条件时,将保存接收的写操作请求的缓存由所述第一缓存切换为第二缓存;写入模块,用于对所述第一缓存中的写操作请求执行写入操作。本专利技术实施例的数据写入装置,接收模块接收应用发送的写操作请求之后,存入模块先将接收到的写操作请求存入第一缓存,当上述写操作请求的类型为写立即返回或写且同步操作时,或者当上述第一缓存已满足缓存切换条件时,切换模块将保存接收的写操作请求的缓存由第一缓存切换为第二缓存,再由写入模块对上述第一缓存中的写操作请求执行写入操作,从而可以充分发挥批量读写与写盘操作的并行性,进而可以在不影响应用写操作语义的前提下最大性能地提高吞吐量。本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。【附图说明】本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为本专利技术数据写入方法一个实施例的流程图;图2为本专利技术数据写入方法另一个实施例的示意图;图3为本专利技术数据写入装置一个实施例的结构示意图;图4为本专利技术数据写入装置另一个实施例的结构示意图。【具体实施方式】下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能理解为对本专利技术的限制。相反,本专利技术的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。本专利技术提供的数据写入方法基于两个互为切换的缓存机制,在此基础上实现sync操作(数据刷盘)与写操作的并行执行,从而实现写入吞吐的提升。根据应用的调用语义,写操作请求可以分为以下3种类型:写立即返回、写不立即返回和写且同步操作三种。具体地,(I)写立即返回:注重的是低延时,不要求立即sync到磁盘,但数据不可丢失。(2)写不立即返回:注重的是吞吐,多用于高并发写操作,一般不要求立即sync到磁盘,但数据也要求持久不可丢失。(3)写且sync:注重的是持久性,多用于关键数据的写操作(如元数据等),要求写入的数据立即刷盘以防止掉电丢失。在实际应用中,这3种类型的写操作请求会混合交叉到达,其中(2)类型居多,其次是(I)类型,(3)类型比较少。本专利技术提供的数据写入方法对于这3种类型的写操作请求采用的处理方式如下:(I)写立即返回:一旦接受到这种类型的写操作请求,会触发缓存切换,对切换下来的缓存中的写操作请求执行写入操作。同时判断是否满足同步(sync)操作触发条件,如果是,则执行sync语义刷盘,将执行写入操作所写入的数据存入磁盘,如果这时不满足sync操作触发条件,则返回,继续接收写操作请求。(2)写不立即返回:对于这种类型的写操作请求,直接存入缓存即可,当检查到缓存切换条件被满足时,触发缓存交换,对切换下来的缓存中的写操作请求执行写入操作,但不会执行sync操作。(3)写且sync操作:这种类型的写操作请求一旦到达,不管当前缓存是否有请求或者有多少请求,立即触发缓存切换并执行sync语义刷盘,将执行写入操作所写入的数据存入磁盘。图1为本专利技术数据写入方法一个实施例的流程图,如图1所示,该数据写入方法可以包括:步骤101,接收应用发送的写操作请求。步骤102,将上述写操作请求存入第一缓存。步骤103,当上述写操作请求的类型为写立即返回或写且同步(sync)操作时,或者当上述第一缓存已满足缓存切换条件时,将保存接收的写操作请求的缓存由第一缓存切换为第二缓存。具体地,上述写操作请求的类型可以根据写操作请求中携带的标识确定,例如:当上述写操作请求中携带sync标识时,可以确定上述写操作请求的类型为写且同步操作;当上述写操作请求中携带写立即返回标识时,可以确定上述写操作请求的类型为写立即返回;当上述写操作请求中携带写不立即返回标识时,可以确定上述写操作请求的类型为写不立即返回。其中,第一缓存已当前第1页1 2 3 本文档来自技高网...
数据写入方法和装置

【技术保护点】
一种数据写入方法,其特征在于,包括:接收应用发送的写操作请求;将所述写操作请求存入第一缓存;当所述写操作请求的类型为写立即返回或写且同步操作时,或者当所述第一缓存已满足缓存切换条件时,将保存接收的写操作请求的缓存由所述第一缓存切换为第二缓存;对所述第一缓存中的写操作请求执行写入操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:覃安颜世光李康徐佩林谭待
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1