数据读取方法、装置和系统制造方法及图纸

技术编号:6956122 阅读:168 留言:0更新日期:2012-04-11 18:40
公开了数据读取方法、装置和系统。其中的数据读取方法包括:接收数据读取请求;在确定缓冲区中没有存储所述数据读取请求所请求的数据的情况下,判断针对所述数据是否正在执行数据读取操作;如果判断出没有正在执行数据读取操作,则触发从磁盘中读取数据操作,否则,不再触发从磁盘中读取数据操作。上述技术方案可以减少从磁盘读取数据的次数,从而减轻了数据读取负担,提高了数据读取性能。

【技术实现步骤摘要】

本专利技术涉及网络通讯
,具体涉及数据读取技术。
技术介绍
现有的数据读取方式从数据终端获取数据方式的角度来看可以分成两种,即同步读取方式和异步读取方式。同步读取方法具体包括数据获取终端发送同步读磁盘请求,并等待读取缓冲区中的数据,数据读取子系统接收该同步读磁盘请求,并检查缓冲区中是否存储有该同步读磁盘请求对应的数据,如果缓冲区中存储有同步读磁盘请求对应的数据,则数据读取子系统向数据获取终端发出同步读数据完成通知,使数据获取终端读取缓冲区中的数据;如果缓冲区中没有存储同步读磁盘请求对应的数据,则数据读取子系统触发操作系统进行读磁盘操作,由操作系统从磁盘中读取对应数据,将读取的数据存储在缓冲区中,并向数据读取子系统发出读数据完成通知,数据读取子系统向数据获取终端发出同步读数据完成通知, 使数据获取终端读取缓冲区中的数据。异步读取方法具体包括数据获取终端发送异步读磁盘请求,并且不等待读取缓冲区中的数据,数据读取子系统接收该异步读磁盘请求,并检查缓冲区中是否存储有该异步读磁盘请求对应的数据,如果缓冲区中存储有异步读磁盘请求对应的数据,则数据读取子系统发出异步读数据完成通知,使数据获取终端再次发起异步读磁盘请求,以获取缓冲区中的数据;如果缓冲区中没有存储异步读磁盘请求对应的数据,则数据读取子系统触发操作系统进行读磁盘操作,由操作系统从磁盘中读取对应数据,将读取的数据存储在缓冲区中,并向数据读取子系统发出读数据完成通知,数据读取子系统向数据获取终端发出异步读数据完成通知,使数据获取终端再次发起异步读磁盘请求,以获取缓冲区中的数据。在实现本专利技术的过程中,专利技术人发现无论是同步读取方法还是异步读取方法,从数据读取子系统接收到读磁盘请求(包括同步读磁盘请求或者异步读磁盘请求)到操作系统将从磁盘中读取的数据存入缓冲区需要一定的时间,如果在这段时间内数据读取子系统接收到针对相同数据的读磁盘请求(包括同步读磁盘请求或者异步读磁盘请求),则由于此时缓冲区中没有对应的数据,因此,数据读取子系统仍然会触发操作系统进行读磁盘操作。由此可知,现有的数据读取方法会造成操作系统针对同一数据进行了不必要的磁盘读取操作,最终导致操作系统负担重,数据读取效率低。
技术实现思路
本专利技术实施方式提供的数据读取方法、装置和系统,可减少磁盘读取次数,缩短从磁盘中读取数据的时间,从而减轻了数据读取负担,提高了数据读取性能。本专利技术实施方式提供的数据读取方法,包括接收数据读取请求;在确定缓冲区中没有存储所述数据读取请求所请求的数据的情况下,判断针对所述数据是否正在执行数据读取操作;如果判断出没有正在执行数据读取操作,则触发从磁盘中读取数据操作,否则,不再触发从磁盘中读取数据操作。本专利技术实施方式提供的数据读取装置,包括接收模块,用于接收数据读取请求;控制模块,用于在确定缓冲区中没有存储所述数据读取请求所请求的数据的情况下,判断针对所述数据是否正在执行数据读取操作;如果判断出没有正在执行数据读取操作,则触发读磁盘模块从磁盘中读取数据操作,否则,不触发读磁盘模块;读磁盘模块,用于根据控制模块的触发执行从磁盘中读取数据的操作。本专利技术实施方式提供的数据读取系统,包括数据读取装置,用于接收数据读取请求,在确定缓冲区中没有存储所述数据读取请求所请求的数据的情况下,判断针对所述数据是否正在执行数据读取操作,如果判断出没有正在执行数据读取操作,则触发从磁盘中读取数据操作,否则,不再触发从磁盘中读取数据操作;磁盘,用于存储数据,并根据所述数据读取装置的从磁盘中读取数据操作向数据读取装置返回对应的数据。通过上述技术方案的描述可知,通过在缓冲区中没有存储所述数据读取请求所请求的数据的情况下,判断针对该数据是否正在执行数据读取操作,在判断出正在执行数据读取操作,不再触发从磁盘中读取数据操作,从而减少了磁盘读取次数,缩短了从磁盘中读取数据的时间,最终减轻了数据读取负担,提高了数据读取性能。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例一的数据读取方法流程图;图2A是本专利技术实施例二的快表结构示意图;图2B是本专利技术实施例二的数据读取方法流程图;图2C是本专利技术实施例二的快表维护方法流程图;图3是本专利技术实施例三的数据读取装置示意图;图4是本专利技术实施例四的基于快表的异步数据读取装置示意图;图5是本专利技术实施例五的数据读取系统示意图。具体实施例方式下面通过实施例对本专利技术的具体实现过程进行例举说明。显然,下面所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一、数据读取方法。该方法的流程如附图1所示。在图1中,S100、接收数据读取请求。该数据读取请求用于数据获取终端请求获取磁盘中存储的对应数据。数据获取终端可以为计算机、或者移动终端等现有的多种形式,数据读取请求可以采用现有的多种协议,本实施例不限制为数据获取终端的具体表现形式、 数据读取请求采用的协议以及具体包括的内容等。另外,上述数据获取终端可以是采用同步读取方式的数据获取终端,也可以是采用异步读取方式的数据获取终端。S110、在确定缓冲区中没有存储该数据读取请求所请求的数据的情况下,判断针对该数据是否正在执行数据读取操作,如果判断出没有正在执行数据读取操作,则到S111, 否则,到S112。上述数据读取请求所请求的数据即数据读取请求对应的数据。上述缓冲区中没有存储该数据读取请求所请求的数据可以包括两种情况数据读取请求所请求的数据正在被填充到缓冲区中、以及数据读取请求所请求的数据中的任何内容均没有被填充到缓冲区中。也就是说,缓冲区中存储有该数据读取请求所请求的数据可以为数据读取请求所请求的数据已经全部存储在缓冲区中。在SllO中,可以根据现有的方法来判断缓冲区中是否存储有该数据读取请求对应的数据,也可以根据本实施例预先设置的预定表中包含的信息来判断缓冲区中是否存储有该数据读取请求对应的数据。根据现有的方法来判断缓冲区中是否存储有该数据读取请求对应的数据的具体实现过程在此不进行详细说明。根据预定表中包含的信息来判断缓冲区中是否存储有该数据读取请求对应的数据的一个具体例子为预定表中包含有数据标志字段,数据标志字段可以包括两种取值,一种取值表示读取请求完成,即针对数据读取请求对应的数据已经从磁盘中读取并存储在缓冲区中;另一种取值表示非读取请求完成,即针对数据读取请求对应的数据并没有存储在缓冲区中。从数据读取请求中获取预定表索引信息,利用该索引信息在预定表中查找,如果在预定表中查找到匹配表项,而且该查找到的匹配表项中的数据标志为读取请求完成, 则判断出缓冲区中存储有该数据读取请求对应的数据;如果在预定表中查找到匹配表项, 而且该查找到的表现中的数据标志为非读取请求完成,或者没有在预定表中查找到匹配表项,则判断出缓冲区中没有存储该数据读取请求对应的数据。在上述具体例子中,索引信息的一个本文档来自技高网
...

【技术保护点】
1.一种数据读取方法,其特征在于,包括:接收数据读取请求;在确定缓冲区中没有存储所述数据读取请求所请求的数据的情况下,判断针对所述数据是否正在执行数据读取操作;如果判断出没有正在执行数据读取操作,则触发从磁盘中读取数据操作,否则,不再触发从磁盘中读取数据操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:张黎明
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:94

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

1