本发明专利技术提供了一种数据的刷写方法及装置,其中,该数据的刷写方法包括:根据刷写触发条件,触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写,其中,所述脏页为保存有数据的缓存页。上述数据的刷写方法及装置,可以更快地将缓存中的数据写入到磁盘上,提高了缓存的使用率,从而提高了读写效率。
【技术实现步骤摘要】
本专利技术涉及数据存储技术,尤其涉及数据的刷写方法及装置。
技术介绍
随着计算机技术和存储技术的发展,用户对存储系统的可用性的要求越来越高。这里所谓的可用性包括存储系统的各个层面,不仅仅是存储本身,还包括存储数据的读写方法等。目前,存储数据的读写速度瓶颈主要在于对于磁盘本身进行读写时,磁头用于查找磁道的时间耗时较大。因此,存储系统中一般都增加了缓存,以提高读写速度。缓存的作用是在存储控制器的读写请求和磁盘读写之间增加了一层虚拟缓存,用于暂时保存数据。通过缓存提高读写速度是通过以下方式进行的对于读请求,存储控制器先在虚拟缓存中查找是否存在请求的数据,如果存在,直接将数据返回,如果不存在,再通过磁盘读写获取数据。这样,对于数据在缓存中存在的情况,就省略了进行磁盘读写的动作,跳过了最为耗时的操作,从而提高了读效率。对于写请求,存储控制器先将要写到磁盘的数据写入缓存,然后返回写操作的结果。而将数据从缓存写入磁盘的操作,即刷写,则通过刷写方法在后台进行。由于在存储控制器的读请求流程中,没有读写磁盘的操作,所以写效率就得到了相应的提高。由于缓存大小是有限的,为了提高缓存的使用率,需要尽快将需要写入磁盘的数据写到磁盘上。
技术实现思路
本专利技术提供了一种数据的刷写方法及装置,以解决在缓存大小是有限的情况下,如何尽快地将需要写入磁盘的数据写到磁盘上的问题。本专利技术提供了一种数据的刷写方法,该方法包括根据刷写触发条件,触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写,其中,所述脏页为保存有数据的缓存页。优选地,所述根据刷写触发条件,触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写之前,该方法还包括创建与各逻辑单兀(Iun) 对应的脏页链表,其中,所述脏页链表为双向链表,所述脏页的变脏顺序与所述脏页在对应的脏页链表中的位置相对应。优选地,所述根据刷写触发条件,触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写,包括当写进程发现所述脏页的比例超过预定阈值时,触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写;当读写处理进程需要申请空闲缓存页时,若空闲缓存页不够,则需要查找和释放部分缓存页,如果可释放的缓存页不足,则触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写;或者当定时器定时检查到各Iun的变脏时间超过指定阈值时,则触发异步刷写线程框架中的线程定时完成脏页链表中相应脏页的刷写。优选地,所述根据刷写触发条件,触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写之前,该方法还包括创建指定数目的空闲线程,并挂接到全局刷写线程链表中。优选地,所述触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写,包括通过函数从所述全局刷写线程链表中获得一个空闲线程的信息,设置调用的刷写函数及相关参数,并唤醒与该信息对应的线程,以便所述线程调用所述刷写函数刷写数据。优选地,该方法还包括检查过去的预定时间内所述全局刷写线程链表是否为空,若为空且当前线程数小于所述指定数目,则创建一个新线程并加入到所述全局刷写线程链表中;检查所述全局刷写线程链表中表头的线程在过去的预定时间内是否空闲,若空闲,则减少所述全局刷写线程链表中线程的数目。本专利技术还提供了一种数据的刷写装置,该装置包括刷写模块,用于根据刷写触发条件,触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写,其中,所述脏页为保存有数据的缓存页。优选地,该装置还包括创建模块,用于创建与各逻辑单元(Iun) —一对应的脏页链表,和/或创建指定数目的空闲线程,并挂接到全局刷写线程链表中;其中,所述脏页链表为双向链表,所述脏页的变脏顺序与所述脏页在对应的脏页链表中的位置相对应。优选地,所述刷写模块,具体用于当写进程发现所述脏页的比例超过预定阈值时,触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写;当读写处理进程需要申请空闲缓存页时,若空闲缓存页不够,则需要查找和释放部分缓存页,如果可释放的缓存页不足,则触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写;或者当定时器定时检查到各Iun的变脏时间超过指定阈值时,则触发异步刷写线程框架中的线程定时完成脏页链表中相应脏页的刷写。优选地,所述刷写模块,具体用于通过函数从所述全局刷写线程链表中获得一个空闲线程的信息,设置调用的刷写函数及相关参数,并唤醒与该信息对应的线程,以便所述线程调用所述刷写函数刷写数据。优选地,该装置还包括处理模块,用于检查过去的预定时间内所述全局刷写线程链表是否为空,若为空且当前线程数小于所述指定数目,则创建一个新线程并加入到所述全局刷写线程链表中;以及,检查所述全局刷写线程链表中表头的线程在过去的预定时间内是否空闲,若空闲,则减少所述全局刷写线程链表中线程的数目。上述数据的刷写方法及装置,可以更快地将缓存中的数据写入到磁盘上,提高了缓存的使用率,从而提闻了读与效率。附图说明图1是本专利技术数据的刷写方法实施例的过程示意图;图2是本专利技术中脏页链表的示意图3是本专利技术异步刷写线程框架中线程工作的流程图;图4是本专利技术数据的刷写装置实施例的结构示意图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚明白,下文中将结合附图对本专利技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。如图1所示,是本专利技术数据的刷写方法实施例的过程示意图,该方法包括步骤101、创建与各逻辑单元(Iun)--对应的脏页链表;其中,所述脏页链表为双向链表,所述脏页的变脏顺序与所述脏页在对应的脏页链表中的位置相对应;该步骤为可选步骤;步骤102、根据刷写触发条件,触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写,其中,所述脏页为保存有数据的缓存页。其中,异步刷写线程框架中的线程为刷写线程,为描述方便,本实施例将刷写线程简称为线程。上述方法共涉及三方面内容缓存的组织方式,刷写触发者和异步刷写线程框架I)缓存的组织 方式本专利技术实施例采用的基本缓存大小是系统页大小,一般为4KB,每一块基本缓存称为缓存页。每一个缓存页可以保存一个系统页大小的数据。逻辑单元(Iun)是一个提供小型计算机系统接口(scsi)服务的单元,在块设备类型的SCSi服务中通常由一个块设备如磁盘或者逻辑卷映射为一个lun。在本实施例中,保存有有效数据的页通过哈希表进行组织,查找页时可以根据给每个缓存页唯一指定的Iun号和页号找到相应的缓存页。当在哈希表中找不到缓存页时,就申请一个新的缓存页,并将其索引到哈希表。由于缓存的大小是有限的,当申请不到缓存页时,系统就要适当地释放一部分可以释放的缓存页,以保证可以及时申请到缓存页。当存储控制器的写请求将数据暂时保存到缓存页中后,在这些缓存页中的数据没有被刷写到磁盘之前,这些缓存页都是不可以被释放的。本专利技术实施例通过保证缓存页数据更快地写入磁盘上,从而保证缓存页可以被及时释放,进而保证读写速度。存储控制器写请求会将即将写入磁盘的数据写入到缓存页中,将保存这些数据的缓存页称为脏页。在本专利技术实施例中,每个Iun有一个脏页链表,如图2所示,链接这个Iun中的所有脏页。这是一个双向链表,当一个缓存页变脏时,如果该页原本不是脏页,那么该页被直接插入到链表尾。如果本文档来自技高网...
【技术保护点】
一种数据的刷写方法,其特征在于,该方法包括:根据刷写触发条件,触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写,其中,所述脏页为保存有数据的缓存页。
【技术特征摘要】
1.一种数据的刷写方法,其特征在于,该方法包括 根据刷写触发条件,触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写,其中,所述脏页为保存有数据的缓存页。2.根据权利要求1所述的方法,其特征在于,所述根据刷写触发条件,触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写之前,该方法还包括 创建与各逻辑单兀(Iun) 对应的脏页链表,其中,所述脏页链表为双向链表,所述脏页的变脏顺序与所述脏页在对应的脏页链表中的位置相对应。3.根据权利要求1所述的方法,其特征在于,所述根据刷写触发条件,触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写,包括 当写进程发现所述脏页的比例超过预定阈值时,触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写; 当读写处理进程需要申请空闲缓存页时,若空闲缓存页不够,则需要查找和释放部分缓存页,如果可释放的缓存页不足,则触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写;或者 当定时器定时检查到各Iun的变脏时间超过指定阈值时,则触发异步刷写线程框架中的线程定时完成脏页链表中相应脏页的刷写。4.根据权利要求1-3任一权利要求所述的方法,其特征在于,所述根据刷写触发条件,触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写之前,该方法还包括 创建指定数目的空闲线程,并挂接到全局刷写线程链表中。5.根据权利要求4所述的方法,其特征在于,所述触发异步刷写线程框架中的线程完成脏页链表中相应脏页的刷写,包括 通过函数从所述全局刷写线程链表中获得一个空闲线程的信息,设置调用的刷写函数及相关参数,并唤醒与该信息对应的线程,以便所述线程调用所述刷写函数刷写数据。6.根据权利要求5所述的方法,其特征在于,该方法还包括 检查过去的预定时间内所述全局刷写线程链表是否为空,若为空且当前线程数小于所述指定数目,则创建一个新线程并加入到...
【专利技术属性】
技术研发人员:王倩,张在理,
申请(专利权)人:浪潮北京电子信息产业有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。