数据读取方法、装置以及系统的制作方法

文档序号:6640390阅读:220来源:国知局
数据读取方法、装置以及系统的制作方法
【专利摘要】本发明提供的一种数据读取方法、装置及系统,涉及数据读取领域,所述数据读取系统包括数据请求端、缓存以及存储有数据的存储节点,所述数据读取装置设置于所述缓存,采用数据预缓冲的方法进行数据的读取,与现有技术中缓存在接收到数据读取之后才开始从存储节点读取数据不同,数据请求端向缓存发送的读取请求指令中包含有需要读取的数据的数量信息以及所述需要读取的数据的地址信息,缓存在接收到读取请求指令后就开始从存储节点进行预读取,数据请求端直接就可以从缓存中读取需要的数据,采用这样的方式,提高了读命中率,进一步提高了数据的读取效率。
【专利说明】数据读取方法、装置以及系统

【技术领域】
[0001]本发明涉及数据存储领域,具体而言,涉及数据读取方法、装置以及系统。

【背景技术】
[0002]目前常见数据读取的流程为,数据请求端发送读取数据请求,读取数据请求会由缓存接收,并返回对读取数据请求的应答,数据请求端接收到应答后,再向缓存发出读取数据的指令,如果缓存中有需要读取的数据,则数据请求端直接从缓存中读取,如果没有,从硬盘中读取。当需要读取的数据较大时,数据请求端会将数据分为多份,按批次读取,在读取完第一批数据后,再开始读取第二批数据,直到读取完所有的数据。采用这样的数据读取方式,缓存命中率不高,而且整个读取请求事务是串行处理机制,速度慢。


【发明内容】

[0003]本发明的目的在于提供一种数据读取方法、装置以及系统,以改善目前读取数据时缓存命中率不高、速度较慢的的问题。
[0004]为了实现上述目的,本发明实施例采用的技术方案如下:
[0005]第一方面,本发明实施例提供了一种数据读取方法,应用于数据读取系统,所述数据读取系统包括数据请求端、缓存以及存储有数据的存储节点,所述方法包括:
[0006]所述缓存接收所述数据请求端发送的读取请求指令,所述读取请求指令包括需要读取的数据的数量信息以及所述需要读取的数据的地址信息;
[0007]向所述数据请求端发送应答指令,在所述缓存中查找所述需要读取的数据;
[0008]如果所述缓存中没有所述需要读取的数据,启动预缓冲任务,根据所述需要读取的数据的地址信息从所述存储节点读取所述地址信息对应的数据;
[0009]所述缓存启动数据返回任务,将从所述存储节点读取的数据返回所述数据请求端;
[0010]所述预缓冲任务与所述数据返回任务同时执行,相互独立。
[0011]结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述从所述存储节点读取所述地址信息对应的数据,包括:从所述存储节点一次读取全部所述地址信息对应的数据;
[0012]所述将从所述存储节点读取的数据返回所述数据请求端,包括:将从所述存储节点读取的全部所述地址信息对应的数据一次返回所述数据请求端。
[0013]结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述缓存分多个批次将所述需要读取的数据返回所述数据请求端,所述缓存根据一次能从所述存储节点读取数据的数据量将所有所述需要读取的数据的地址信息分为多组,如果所述缓存一个批次能够返回数据量大于或等于一组所述需要读取的数据的地址信息对应的数据量,
[0014]所述从所述存储节点读取所述地址信息对应的数据,包括:从所述存储节点读取一组所述地址信息对应的数据;
[0015]所述将从所述存储节点读取的数据返回所述数据请求端,包括:
[0016]所述缓存将所述一组所述地址信息对应的数据返回所述数据请求端;
[0017]所述方法还包括:重复上述过程,一直到所述缓存将所述需要读取的数据全部读取并返回所述数据请求端。
[0018]结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,如果一个批次的数据能够返回的数据量小于一组所述地址信息对应的数据量,
[0019]所述缓存将所述一组所述地址信息对应的数据返回所述数据请求端,包括:
[0020]所述缓存将所述一个批次的数据返回所述数据请求端,重复这个步骤,直到一组所述地址信息对应的数据全部返回所述数据请求端。
[0021]第二方面,本发明实施例还提供了,一种数据读取装置,其特征在于,应用于数据读取系统,所述数据读取系统包括数据请求端、缓存以及存储有数据的存储节点,所述数据读取装置设置于所述缓存,所述装置包括:
[0022]读取请求指令接收单元,用于接收所述数据请求端发送的读取请求指令,所述读取请求指令包括需要读取的数据的数量信息以及所述需要读取的数据的地址信息;
[0023]应答指令发送单元,用于向所述数据请求端发送应答指令,并在所述缓存中查找所述需要读取的数据;
[0024]存储数据读取单元,用于如果所述缓存中没有所述需要读取的数据,启动预缓冲任务,根据所述需要读取的数据的地址信息从所述存储节点读取所述地址信息对应的数据;
[0025]数据返回单元,用于启动数据返回任务,将从所述存储节点读取的数据返回所述数据请求端。
[0026]结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述存储数据读取单元还用于:从所述存储节点一次读取全部所述地址信息对应的数据;
[0027]所述数据返回单元还用于:将从所述存储节点读取的全部所述地址信息对应的数据一次返回所述数据请求端。
[0028]结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述缓存分多个批次将所述需要读取的数据返回所述数据请求端,所述缓存根据一次能从所述存储节点读取数据的数据量将所有所述需要读取的数据的地址信息分为多组,如果所述缓存一个批次能够返回数据量大于或等于一组所述需要读取的数据的地址信息对应的数据量,
[0029]所述存储数据读取单元还用于:从所述存储节点读取一组所述地址信息对应的数据;
[0030]所述数据返回单元还用于:所述缓存将所述一组所述地址信息对应的数据返回所述数据请求端。
[0031]结合第二方面的第二种可能的实施方式,本发明实施例提供了第二方面的第三种可能的实施方式,其中,如果一个批次的数据能够返回的数据量小于一组所述地址信息对应的数据量,
[0032]所述数据返回单元还用于:所述缓存将所述一个批次的数据返回所述数据请求端,重复这个步骤,直到一组所述地址信息对应的数据全部返回所述数据请求端。
[0033]第三方面,本发明实施例还提供了一种数据读取系统,所述数据读取系统包括数据请求端、缓存以及存储有数据的存储节点,
[0034]所述数据请求端向所述缓存发送读取请求指令;
[0035]所述缓存接收所述数据请求端发送的读取请求指令,所述读取请求指令包括需要读取的数据的数量信息以及所述需要读取的数据的地址信息;
[0036]所述缓存向所述数据请求端发送应答指令,在所述缓存中查找所述需要读取的数据;如果所述缓存中没有所述需要读取的数据,根据所述需要读取的数据的地址信息,所述缓存从所述存储节点读取所述地址信息对应的数据;
[0037]所述缓存将从所述存储节点读取的数据返回所述数据请求端。
[0038]结合第三方面,本发明实施例提供了第三方面的第一种可能的实施方式,其中,所述数据读取系统应用于分布式存储系统。
[0039]本发明实施例提供的数据读取方法、装置以及系统,采用数据预缓冲的方法进行数据的读取,与现有技术中缓存在接收到数据读取之后才开始从存储节点读取数据不同,数据请求端向缓存发送的读取请求指令中包含有需要读取的数据的数量信息以及所述需要读取的数据的地址信息,缓存在接收到读取请求指令后就开始从存储节点进行预读取,数据请求端直接就可以从缓存中读取需要的数据,采用这样的方式,提高了读命中率,进一步提高了数据的读取效率。
[0040]为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

【专利附图】

【附图说明】
[0041]为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。通过附图所示,本发明的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。
[0042]图1示出了本发明实施例所提供的一种数据读取系统的结构框图;
[0043]图2示出了本发明实施例所提供的一种数据读取方法的流程图;
[0044]图3示出了本发明实施例所提供的另一种数据读取方法的流程图;
[0045]图4示出了本发明实施例所提供的一种数据读取装置的结构框图;
[0046]图5示出了本发明实施例所提供的另一种数据同步装置的结构框图。

【具体实施方式】
[0047]下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0048]云存储是在云计算概念上延伸和发展出来的一个新的概念,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,所以云存储是一个以数据存储和管理为核心的云计算系统。简单来说,云存储就是将储存资源放到云上供人存取的一种新兴方案。使用者可以在任何时间、任何地方,透过任何可连网的装置连接到云上方便地存取数据。
[0049]目前常见应用于云存储系统中的数据读取的流程为,数据请求端发送读取请求指令,读取请求会由缓存接收,并返回对读取数据请求的应答,数据请求端接收到应答后,再向缓存发出读取数据的指令,如果缓存中有需要读取的数据,则数据请求端直接从缓存中读取,如果没有,从硬盘中读取。当需要读取的数据较大时,数据请求端会将数据分为多份,按按批次读取,在读取完第一批数据后,再开始读取第二批数据,直到读取完所有的数据。发明人经过长期观察和研宄发现,缓存命中率不高,而且整个读取请求事务是串行处理机制,速度慢。
[0050]发明人为使现有的情况得到改善,提供了本发明实施例。数据请求端向缓存发送的读取请求指令中包含有需要读取的数据的数量信息以及所述需要读取的数据的地址信息,缓存在接收到读取请求指令后就开始从存储节点进行预读取,在数据请求端发送读取所述数据的指令时,缓存已经将需要读取的数据的全部或者部分预读取了,数据请求端直接就可以从缓存中读取需要的数据,采用这样的方式,提高了读命中率,进一步提高了数据的读取效率。
[0051]参见图1,本发明实施例应用于数据读取系统,所述数据读取系统包括数据请求端100、缓存200以及存储有数据的存储节点300。
[0052]参见图2,本发明实施例提供了一种数据读取方法,所述方法包括:
[0053]步骤101:所述缓存接收所述数据请求端发送的读取请求指令,所述读取请求指令包括需要读取的数据的数量信息以及所述需要读取的数据的地址信息。
[0054]缓存在收到读取请求指令的同时也知道了需要读取的数据的数量信息和地址信息,其中,所述缓存可以是分布式储存系统中的缓存服务器,也可以是其他设备,本发明实施例不做限制。
[0055]步骤102:所述缓存向所述数据请求端发送应答指令。
[0056]缓存向所述数据请求端发送应答指令,表示可以执行读取数据的操作。
[0057]步骤103:所述缓存在所述缓存中查找所述需要读取的数据。
[0058]数据请求端从缓存读取数据的速度比从存储节点读取要快,因此优先在缓存中查找所述需要读取的数据,如果有,就由缓存直接将该数据返回数据请求端。
[0059]步骤104:如果所述缓存中没有所述需要读取的数据,启动预缓冲任务,根据所述需要读取的数据的地址信息从所述存储节点读取所述地址信息对应的数据。
[0060]缓存已经从所述读取请求指令中获取了需要读取的数据的地址信息,在收到所述读取请求指令后,缓存就立即开始从所述存储节点对需要读取的数据进行读取。
[0061]步骤105:所述缓存启动数据返回任务,将从所述存储节点读取的数据一次返回所述数据请求端。
[0062]在缓存在开始从所述存储节点对需要读取的数据进行读取,同时就立即将已经读取的数据对数据请求端进行返回。
[0063]所述预缓冲任务与数据返回任务同时执行,相互独立,缓存不用等待数据读取完才开始返回数据,有数据已经读取就立即开始返回数据,缓存读取数据和返回数据的操作是分为两个任务流水线同时进行的
[0064]在本实施例中,缓存从所述存储节点读取数据以及缓存将数据返回数据请求端,都采用的是滑动窗口机制进行的。
[0065]例如:数据请求端需要读取10页的数据,数据请求端向缓存发出读取请求指令,该读取请求指令中包括需要的读取10页的数据的地址信息。缓存在接收到读取请求指令后,向数据请求端发送应答指令,查找缓存空间是否有需要读取的数据,如果没有,根据读取请求指令中包括的需要的读取10页的数据的地址信息,从存储节点中一次将10页的数据全部读完,并储存在缓存空间中。在接收到数据请求端发送的读取10页的数据的指令后,将这10页的数据一次全部返回所述数据请求端。
[0066]本实施例提供的数据读取方法,利用缓存缓存返回数据到数据请求端的时间,同时对需要读取的数据进行预读取,预缓冲任务与数据返回任务同时执行,相互独立,增大了读请求命中率,提高了读取速率,节约了从存储节点读取的时间。
[0067]参见图3,本发明实施例提供了另一种数据读取方法,应用于数据读取系统,所述数据读取系统包括数据请求端、缓存以及存储有数据的存储节点,所述方法包括。
[0068]步骤201:所述缓存接收所述数据请求端发送的读取请求指令,所述读取请求指令包括需要读取的数据的数量信息以及所述需要读取的数据的地址信息。
[0069]所述缓存分多个批次将所述需要读取的数据返回所述数据请求端,所述缓存根据一次能从所述存储节点读取数据的数据量将所有所述需要读取的数据的地址信息分为多组。
[0070]步骤202:所述缓存向所述数据请求端发送应答指令。
[0071 ] 缓存向所述数据请求端发送应答指令,表示可以执行读取数据的操作。
[0072]步骤203:所述缓存在所述缓存中查找所述需要读取的数据。
[0073]数据请求端从缓存读取数据的速度比从存储节点读取要快,因此优先在缓存中查找所述需要读取的数据,如果有,就由缓存直接将该数据返回数据请求端。
[0074]步骤204:判断所述缓存中是否有所述需要读取的数据,如果有,执行步骤205 ;如果没有,如果有执行步骤206。
[0075]步骤205:将需要读取的数据返回数据请求端。
[0076]步骤206:所述缓存根据所述需要读取的数据的地址信息,从所述存储节点读取一组所述地址信息对应的数据。
[0077]缓存已经从所述读取请求指令中获取了需要读取的数据的地址信息,在收到所述读取请求指令后,缓存就立即开始从所述存储节点对需要读取的数据进行读取,并完成对第一组所述地址信息对应的数据的读取。
[0078]步骤207:所述缓存将一组所述地址信息对应的数据返回所述数据请求端。
[0079]如果所述缓存一个批次能够返回数据量大于或等于一组所述需要读取的数据的地址信息对应的数据量,将一组所述地址信息对应的数据返回所述数据请求端。
[0080]所述缓存在将一组所述地址信息对应的数据返回所述数据请求端的同时,也对下一组所述地址信息对应的数据进行预读取,缓存从所述存储节点预读取数据的操作与缓存将已读取的数据返回数据请求端的操作是分两条流水线分别且持续进行的,相互之间的操作互不干扰。
[0081]步骤208:判断需要读取的数据是否全部返回,如果没有返回步骤206 ;
[0082]在缓存向数据请求端返回第一组所述地址信息对应的数据的同时,返回步骤206。
[0083]例如:数据请求端需要读取100页的数据,缓存将其分为4个批次进行返回,每一个批次返回25页,数据请求端向缓存发出读取请求指令,该读取请求指令中包括需要的读取100页的数据的地址信息。缓存在接收到读取请求指令后,向数据请求端发送应答指令,查找缓存空间是否有需要读取的数据,如果没有,根据读取请求指令中包括的需要的读取100页的数据的地址信息,开始从存储节点中读取对应的数据。
[0084]缓存一次能从所述存储节点读取数据的数据量为25页,缓存将100页数据的地址信息分为4组,每组包括25页数据的地址信息,其对应的数据量与一个批次需要读取的数据量相同。缓存从存储节点中读取一组地址信息对应的25页的数据,并开始将这25页的数据返回所述数据请求端。缓存在返回第一批次的25页数据时,同时继续读取第二组地址信息对应的25页的数据。当缓存将第一个批次的25页数据返回之后,第二组的25页的数据也读取完了,缓存将第二组地址信息对应的25页的数据返回所述数据请求端,同时继续读取第三组地址信息对应的25页的数据,重复上述过程,直到100页的数据完全返回数据请求端。
[0085]本实施例提供的数据读取方法,利用缓存缓存返回数据到数据请求端的时间,同时对需要读取的数据进行预读取,预缓冲任务与数据返回任务同时执行,相互独立,增大了读请求命中率,提高了读取速率,节约了从存储节点读取的时间。
[0086]本发明实施例还提供了一种数据读取方法,与前一个数据读取方法相比,其不同之处在于,如果一个批次的数据能够返回的数据量小于一组所述地址信息对应的数据量,
[0087]缓存将一组的数据读取之后,需要多个批次才能返回这一组数据到所述数据请求端,缓存在返回数据到所述数据请求端的同时,继续从存储节点读取需要读取的数据。
[0088]例如:数据请求端需要读取100页的数据,缓存将其分为4个批次进行返回,每一个批次返回25页,数据请求端向缓存发出读取请求指令,该读取请求指令中包括需要的读取100页的数据的地址信息。缓存在接收到读取请求指令后,向数据请求端发送应答指令,查找缓存空间是否有需要读取的数据,如果没有,根据读取请求指令中包括的需要的读取100页的数据的地址信息,开始从存储节点中读取对应的数据。
[0089]缓存一次能从所述存储节点读取数据的数据量为25页,缓存将100页数据的地址信息分为4组,每组包括25页数据的地址信息,其对应的数据量大于一个批次需要读取的数据量。缓存从存储节点中读取一组地址信息对应的25页的数据,并开始将这25页的数据返回所述数据请求端,一个批次返回5页,一共5次,完成对第一组数据的返回。缓存在返回第一组的25页数据时,同时继续读取第二组地址信息对应的25页的数据。
[0090]当缓存将第一个批次的25页数据,分5次返回完之后,第二组的25页的数据也读取完了,缓存开始将第二组地址信息对应的25页的数据返回所述数据请求端,即执行第
6-10次返回操作,同时继续读取第三组地址信息对应的25页的数据,重复上述过程,直到100页的数据完全返回数据请求端。
[0091]本实施例提供的数据读取方法,利用缓存缓存返回数据到数据请求端的时间,同时对需要读取的数据进行预读取,预缓冲任务与数据返回任务同时执行,相互独立,增大了读请求命中率,提高了读取速率,节约了从存储节点读取的时间。
[0092]参见图4,本发明实施例所提供的一种数据读取装置,应用于数据读取系统,所述数据读取系统包括数据请求端、缓存以及存储有数据的存储节点,所述数据读取装置设置于所述缓存,所述缓存根据一次能从所述存储节点读取数据的数据量将所有所述需要读取的数据的地址信息分为多组,所述装置包括:
[0093]读取请求指令接收单元401,用于接收所述数据请求端发送的读取请求指令,所述读取请求指令包括需要读取的数据的数量信息以及所述需要读取的数据的地址信息。
[0094]应答指令发送单元402,用于向所述数据请求端发送应答指令,并在所述缓存中查找所述需要读取的数据。
[0095]存储数据读取单元403,用于如果所述缓存中没有所述需要读取的数据,启动预缓冲任务,根据所述需要读取的数据的地址信息从所述存储节点读取所述地址信息对应的数据;
[0096]所述存储数据读取单元403还用于:从所述存储节点读取一组所述地址信息对应的数据。
[0097]数据返回单元404,用于启动数据返回任务,将从所述存储节点读取的数据返回所述数据请求端;
[0098]所述数据返回单元404还用于:将所述一组所述地址信息对应的数据返回所述数据请求端;
[0099]所述数据返回单元404还用于:所述缓存将所述一个批次的数据返回所述数据请求端,重复这个步骤,直到一组所述地址信息对应的数据全部返回所述数据请求端。
[0100]本发明实施例所提供的数据读取装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
[0101]参见图1,本发明实施例所提供的一种数据读取系统,所述数据读取系统包括数据请求端100、缓存200以及存储有数据的存储节点300,
[0102]所述数据请求端100向所述缓存200发送读取请求指令;
[0103]所述缓存200接收所述数据请求端100发送的读取请求指令,所述读取请求指令包括需要读取的数据的数量信息以及所述需要读取的数据的地址信息;
[0104]所述缓存200向所述数据请求端100发送应答指令,在所述缓存200中查找所述需要读取的数据;如果所述缓存200中没有所述需要读取的数据,根据所述需要读取的数据的地址信息,所述缓存200从所述存储节点300读取所述地址信息对应的数据;
[0105]所述缓存200将从所述存储节点300读取的数据返回所述数据请求端100。
[0106]本发明实施例所提供的数据读取系统,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,系统实施例部分未提及之处,可参考前述方法实施例中相应内容。
[0107]参见图5,本发明实施例还提供一种数据读取装置600,包括:处理器500,存储器501,总线502和通信接口 503,所述处理器500、通信接口 503和存储器501通过总线502连接;处理器500用于执行存储器501中存储的可执行模块,例如计算机程序。
[0108]其中,存储器501可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口 503 (可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
[0109]总线502可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0110]其中,存储器501用于存储程序,所述处理器500在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流程定义的装置所执行的方法可以应用于处理器500中,或者由处理器500实现。
[0111]处理器500可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器500中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器500可以是通用处理器,包括中央处理器(Central Processing Unit,简称数据请求端)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器501,处理器500读取存储器501中的信息,结合其硬件完成上述方法的步骤。
[0112]另外,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0113]本发明实施例所提供的进行一种数据读取装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
[0114]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0115]在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0116]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0117]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0118]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0119]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0120]在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0121]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
【权利要求】
1.一种数据读取方法,其特征在于,应用于数据读取系统,所述数据读取系统包括数据请求端、缓存以及存储有数据的存储节点,所述方法包括: 所述缓存接收所述数据请求端发送的读取请求指令,所述读取请求指令包括需要读取的数据的数量信息以及所述需要读取的数据的地址信息; 向所述数据请求端发送应答指令,在所述缓存中查找所述需要读取的数据; 如果所述缓存中没有所述需要读取的数据,启动预缓冲任务,根据所述需要读取的数据的地址信息从所述存储节点读取所述地址信息对应的数据; 所述缓存启动数据返回任务,将从所述存储节点读取的数据返回所述数据请求端; 所述预缓冲任务与所述数据返回任务同时执行,相互独立。
2.根据权利要求1所述的方法,其特征在于, 所述从所述存储节点读取所述地址信息对应的数据,包括:从所述存储节点一次读取全部所述地址信息对应的数据; 所述将从所述存储节点读取的数据返回所述数据请求端,包括:将从所述存储节点读取的全部所述地址信息对应的数据一次返回所述数据请求端。
3.根据权利要求1所述的方法,其特征在于,所述缓存分多个批次将所述需要读取的数据返回所述数据请求端,所述缓存根据一次能从所述存储节点读取数据的数据量将所有所述需要读取的数据的地址信息分为多组,如果所述缓存一个批次能够返回数据量大于或等于一组所述需要读取的数据的地址信息对应的数据量, 所述从所述存储节点读取所述地址信息对应的数据,包括: 从所述存储节点读取一组所述地址信息对应的数据; 所述将从所述存储节点读取的数据返回所述数据请求端,包括: 所述缓存将所述一组所述地址信息对应的数据返回所述数据请求端; 所述方法还包括:重复上述过程,一直到所述缓存将所述需要读取的数据全部读取并返回所述数据请求端。
4.根据权利要求3所述的方法,其特征在于,如果一个批次的数据能够返回的数据量小于一组所述地址信息对应的数据量, 所述缓存将所述一组所述地址信息对应的数据返回所述数据请求端,包括: 所述缓存将所述一个批次的数据返回所述数据请求端,重复这个步骤,直到一组所述地址信息对应的数据全部返回所述数据请求端。
5.一种数据读取装置,其特征在于,应用于数据读取系统,所述数据读取系统包括数据请求端、缓存以及存储有数据的存储节点,所述数据读取装置设置于所述缓存,所述装置包括: 读取请求指令接收单元,用于接收所述数据请求端发送的读取请求指令,所述读取请求指令包括需要读取的数据的数量信息以及所述需要读取的数据的地址信息; 应答指令发送单元,用于向所述数据请求端发送应答指令,并在所述缓存中查找所述需要读取的数据; 存储数据读取单元,用于如果所述缓存中没有所述需要读取的数据,启动预缓冲任务,根据所述需要读取的数据的地址信息从所述存储节点读取所述地址信息对应的数据;数据返回单元,用于启动数据返回任务,将从所述存储节点读取的数据返回所述数据请求端。
6.根据权利要求5所述的数据读取装置,其特征在于, 所述存储数据读取单元还用于:从所述存储节点一次读取全部所述地址信息对应的数据; 所述数据返回单元还用于:将从所述存储节点读取的全部所述地址信息对应的数据一次返回所述数据请求端。
7.根据权利要求5所述的数据读取装置,其特征在于,所述缓存分多个批次将所述需要读取的数据返回所述数据请求端,所述缓存根据一次能从所述存储节点读取数据的数据量将所有所述需要读取的数据的地址信息分为多组,如果所述缓存一个批次能够返回数据量大于或等于一组所述需要读取的数据的地址信息对应的数据量, 所述存储数据读取单元还用于:从所述存储节点读取一组所述地址信息对应的数据; 所述数据返回单元还用于:所述缓存将所述一组所述地址信息对应的数据返回所述数据请求端。
8.根据权利要求7所述的数据读取装置,其特征在于,如果一个批次的数据能够返回的数据量小于一组所述地址信息对应的数据量, 所述数据返回单元还用于:所述缓存将所述一个批次的数据返回所述数据请求端,重复这个步骤,直到一组所述地址信息对应的数据全部返回所述数据请求端。
9.一种数据读取系统,其特征在于,所述数据读取系统包括数据请求端、缓存以及存储有数据的存储节点, 所述数据请求端向所述缓存发送读取请求指令; 所述缓存接收所述数据请求端发送的读取请求指令,所述读取请求指令包括需要读取的数据的数量信息以及所述需要读取的数据的地址信息; 所述缓存向所述数据请求端发送应答指令,在所述缓存中查找所述需要读取的数据;如果所述缓存中没有所述需要读取的数据,根据所述需要读取的数据的地址信息,所述缓存从所述存储节点读取所述地址信息对应的数据; 所述缓存将从所述存储节点读取的数据返回所述数据请求端。
10.根据权利要求9所述的数据读取系统,其特征在于,所述数据读取系统应用于分布式存储系统。
【文档编号】G06F12/08GK104461943SQ201410836741
【公开日】2015年3月25日 申请日期:2014年12月29日 优先权日:2014年12月29日
【发明者】黄睿 申请人:成都致云科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1