数据写入方法和装置的制造方法

文档序号:8412283阅读:378来源:国知局
数据写入方法和装置的制造方法
【技术领域】
[0001]本发明涉及互联网技术领域,尤其涉及一种数据写入方法和装置。
【背景技术】
[0002]在高吞吐的存储系统中,读写的压力往往每秒达到上万个请求量,而且请求的数据量大小不等。特别是在结构化的存储引擎中,往往写请求只是为了修改或者更新有效的几个短属性字段,而且更新后要求立即读可见,以保证会话事务性。
[0003]同时,越来越多系统采用基于日志的系统设计(Write Append Logging;以下简称:WAL)设计,尽可能将所有的写变成顺序写,以减少磁头的移动并持久化数据。由于WAL设计需要实时将数据落盘,这需要调用操作系统的同步(sync)接口,将会有大量的小数据请求需要实时执行落盘。
[0004]然而,由于磁盘读写磁头的机械调度的缘故,常常需要调度到不同的磁道才能开始进行读写。在目前的串行高级技术附件(Serial Advanced Technology Attachment ;以下简称:SATA)盘环境下,由于每次写入的最小单位是一个扇区,如果数据量太小,则扇区中多余的空间将会被浪费掉。而在驱动层或者操作系统层,通常写缓存为一个页面大小(4K或者8K),因此对于小数据量的每次更新或者写入均调用一次写盘操作的话,会增加延时,难以提尚吞吐量。

【发明内容】

[0005]本发明的目的旨在至少在一定程度上解决相关技术中的技术问题之一。
[0006]为此,本发明的第一个目的在于提出一种数据写入方法。该方法可以充分发挥批量读写与写盘操作的并行性,可以在不影响应用写操作语义的前提下最大性能地提高吞吐量。
[0007]本发明的第二个目的在于提出一种数据写入装置。
[0008]为了实现上述目的,本发明第一方面实施例的数据写入方法,包括:接收应用发送的写操作请求;将所述写操作请求存入第一缓存;当所述写操作请求的类型为写立即返回或写且同步操作时,或者当所述第一缓存已满足缓存切换条件时,将保存接收的写操作请求的缓存由所述第一缓存切换为第二缓存;对所述第一缓存中的写操作请求执行写入操作。
[0009]本发明实施例的数据写入方法,接收应用发送的写操作请求之后,先将接收到的写操作请求存入第一缓存,当上述写操作请求的类型为写立即返回或写且同步操作时,或者当上述第一缓存已满足缓存切换条件时,将保存接收的写操作请求的缓存由第一缓存切换为第二缓存,再对上述第一缓存中的写操作请求执行写入操作,从而可以充分发挥批量读写与写盘操作的并行性,进而可以在不影响应用写操作语义的前提下最大性能地提高吞吐量。
[0010]为了实现上述目的,本发明第二方面实施例的数据写入装置,包括:接收模块,用于接收应用发送的写操作请求;存入模块,用于将所述接收模块接收的写操作请求存入第一缓存;切换模块,用于当所述写操作请求的类型为写立即返回或写且同步操作时,或者当所述第一缓存已满足缓存切换条件时,将保存接收的写操作请求的缓存由所述第一缓存切换为第二缓存;写入模块,用于对所述第一缓存中的写操作请求执行写入操作。
[0011]本发明实施例的数据写入装置,接收模块接收应用发送的写操作请求之后,存入模块先将接收到的写操作请求存入第一缓存,当上述写操作请求的类型为写立即返回或写且同步操作时,或者当上述第一缓存已满足缓存切换条件时,切换模块将保存接收的写操作请求的缓存由第一缓存切换为第二缓存,再由写入模块对上述第一缓存中的写操作请求执行写入操作,从而可以充分发挥批量读写与写盘操作的并行性,进而可以在不影响应用写操作语义的前提下最大性能地提高吞吐量。
[0012]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
[0013]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0014]图1为本发明数据写入方法一个实施例的流程图;
[0015]图2为本发明数据写入方法另一个实施例的示意图;
[0016]图3为本发明数据写入装置一个实施例的结构示意图;
[0017]图4为本发明数据写入装置另一个实施例的结构示意图。
【具体实施方式】
[0018]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0019]本发明提供的数据写入方法基于两个互为切换的缓存机制,在此基础上实现sync操作(数据刷盘)与写操作的并行执行,从而实现写入吞吐的提升。
[0020]根据应用的调用语义,写操作请求可以分为以下3种类型:写立即返回、写不立即返回和写且同步操作三种。具体地,(I)写立即返回:注重的是低延时,不要求立即sync到磁盘,但数据不可丢失。(2)写不立即返回:注重的是吞吐,多用于高并发写操作,一般不要求立即sync到磁盘,但数据也要求持久不可丢失。(3)写且sync:注重的是持久性,多用于关键数据的写操作(如元数据等),要求写入的数据立即刷盘以防止掉电丢失。
[0021]在实际应用中,这3种类型的写操作请求会混合交叉到达,其中(2)类型居多,其次是(I)类型,(3)类型比较少。本发明提供的数据写入方法对于这3种类型的写操作请求采用的处理方式如下:
[0022](I)写立即返回:一旦接受到这种类型的写操作请求,会触发缓存切换,对切换下来的缓存中的写操作请求执行写入操作。同时判断是否满足同步(sync)操作触发条件,如果是,则执行sync语义刷盘,将执行写入操作所写入的数据存入磁盘,如果这时不满足sync操作触发条件,则返回,继续接收写操作请求。
[0023](2)写不立即返回:对于这种类型的写操作请求,直接存入缓存即可,当检查到缓存切换条件被满足时,触发缓存交换,对切换下来的缓存中的写操作请求执行写入操作,但不会执行sync操作。
[0024](3)写且sync操作:这种类型的写操作请求一旦到达,不管当前缓存是否有请求或者有多少请求,立即触发缓存切换并执行sync语义刷盘,将执行写入操作所写入的数据存入磁盘。
[0025]图1为本发明数据写入方法一个实施例的流程图,如图1所示,该数据写入方法可以包括:
[0026]步骤101,接收应用发送的写操作请求。
[0027]步骤102,将上述写操作请求存入第一缓存。
[0028]步骤103,当上述写操作请求的类型为写立即返回或写且同步(sync)操作时,或者当上述第一缓存已满足缓存切换条件时,将保存接收的写操作请求的缓存由第一缓存切换为第二缓存。
[0029]具体地,上述写操作请求的类型可以根据写操作请求中携带的标识确定,例如:当上述写操作请求中携带sync标识时,可以确定上述写操作请求的类型为写且同步操作;当上述写操作请求中携带写立即返回标识时,可以确定上述写操作请求的类型为写立即返回;当上述写操作请求中携带写不立即返回标识时,可以确定上述写操作请求的类型为写不立即返回。
[0030]其中,第一缓存已
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1