一种数据读取方法及组装装置的制造方法_2

文档序号:8257837阅读:来源:国知局
节点的应答反馈时,重新将所述子请求发送至所述子请求用于读取的所述子数据对应的存储节点。
[0046]本发明实施例提供的数据读取方法及组装装置,会将数据读取请求拆分为多个子请求,分别从数据存储装置中读取多份子数据,然后将读取的子数据进行组装,组装后再将读取反馈发送至请求装置,这种“多并发”的工作模式显著提高了数据读取效率。
[0047]进一步地,本发明实施例所提供的数据读取方法及组装装置,因将数据读取请求拆分为多个子请求,多个子请求分别用于请求读取对应的数据,缓存装置、数据存储装置、请求装置、组装装置均只负责本单元的工作,完成一个数据处理后立刻进行下一个数据处理,各自的动作不会受到其他装置的影响,这种“流水线”读取方式,整体工作效率远远高于现有的读取方式,优势十分明显。
[0048]为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
【附图说明】
[0049]为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应该看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0050]图1示出了本发明实施例所提供的一种数据读取方法的流程图;
[0051]图2示出了本发明实施例所提供的另一种数据读取方法的流程图;
[0052]图3示出了本发明实施例所提供的一种应答反馈的流程图;
[0053]图4示出了本发明实施例所提供的一种数据组装装置的结构框图;
[0054]图5示出了本发明实施例所提供的另一种数据组装装置的结构框图;
[0055]图6示出了本发明实施例所提供的另一种数据组装装置的结构图。
【具体实施方式】
[0056]下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0057]实施例1
[0058]现今,数据读取主要通过以下方式实现,在数据存储装置与请求装置之间设缓存装置,如:高速缓冲存储器Cache、断电即掉的非永久储存RAM等,需读取数据时,请求装置向缓存装置发送数据读取请求,当数据读取请求在缓存装置中命中,缓存装置立即将数据返回给请求装置;当数据读取请求在缓存装置中未命中,缓存装置则将数据读取请求发送至数据存储装置,数据存储装置读取数据后返回给缓存装置,缓存装置接收到数据存储装置返回的数据后,将数据返回给请求装置,发明人经研宄发现,数据存储装置的容量远大于缓存装置的容量,数据存在缓存装置中的仅仅是很小一部分,当请求装置发出读取数据请求的时候,大部分数据是位于数据存储装置的,使得请求装置的读数据请求在缓存装置中的命中率非常低,因而,需要大量地从数据存储装置中读取数据,由于从数据存储装置中读取数据的效率非常低,因而使得整体数据读取效率较低。
[0059]基于上述研宄,如图1所示,本发明实施例公开了一种数据读取方法,应用于数据读取系统,所述数据读取系统中包括请求装置、组装装置和数据存储装置,所述数据存储装置中包括多个存储节点,所述请求装置所需读取的数据由多个子数据构成,所述多个子数据分布式存储在所述多个存储节点中,所述方法包括:
[0060]步骤SlOO:所述组装装置获得所述请求装置发送的数据读取请求,所述数据读取请求中包括,构成所述请求装置所需读取的数据的所述多个子数据与所述多个存储节点的对应关系;
[0061]其中,考虑到若一次读取一个较大的数据,必然会导致读取时间较长,若将需读取的一个较大的数据拆分为多个子数据,分为多个线程同时进行读取,则能大大缩短读取时间,为了实现这一目的,本实施例中,请求装置所需读取的数据存储时采用的是分布式存储,在存储时,请求装置所需读取的数据分布式存储在数据存储装置的多个存储节点上,例如:请求装置所需读取的数据由多个子数据构成,多个子数据分布式存储在所述多个存储节点中,例如:多个子数据和多个存储节点的数量相同,多个子数据一对一地存储在多个存储节点中,如此设计后,读取时,亦需从存储装置的各个存储节点上去读取构成请求装置所需读取的数据的多个子数据。需说明的是,存储在各个存储节点上的子数据大小可以是固定的,也可以不是固定的。
[0062]由于请求装置所需读取的数据由多个子数据构成,多个子数据分别存储在所述多个存储节点中,因而,为了确保数据读取的准确性,数据读取请求中需包括构成所需读取的数据的多个子数据的存储位置,包括各个子数据分别存储在哪个存储节点中,即多个子数据与多个存储节点的对应关系,例如:可在数据读取请求的元数据中存储多个子数据与多个存储节点的对应关系,根据实际情况,还可在元数据中存储各个子数据的长度、资源查找等信息。
[0063]步骤SlOl:将所述数据读取请求拆分为多个子请求,所述多个子请求与所述多个子数据一一对应,所述多个子请求分别用于请求读取对应的子数据;
[0064]其中,为了确保后续读取效率,将数据读取请求拆分为与构成请求装置所需读取的数据的多个子数据一一对应的子请求,每个子请求用于读取一个子数据,如此,便将读取一个较大的数据的数据读取请求拆分为了多个用于读取多个较小的子数据的子请求,将一个线程的工作分为了多个子线程的工作。
[0065]步骤S102:将每个所述子请求发送至该子请求对应的子数据所在的存储节点;
[0066]根据步骤SlOO中,数据读取请求的元数据中存储有需读取的每个子数据分别对应的存储节点位置,将用于读取子数据的子请求发送至该子数据存储的存储节点,例如:已知子数据A存储在存储节点A中,那么,便将读取子数据A的子请求发送至存储节点A。
[0067]为了避免传输拥堵,本实施例中,优选采用滑动窗口将子请求发送至子请求用于读取的子数据对应的存储节点。
[0068]步骤S103:获得所述存储节点反馈的每个子请求的子请求反馈;
[0069]当子请求发送到存储节点后,存储节点读取该子请求对应的子数据,并将读取的子数据进行发送。
[0070]为了避免传输拥堵,本实施例中,优选采用滑动窗口获得存储节点的子请求反馈。
[0071]步骤S104:将获得的所有所述子请求反馈进行组装,获得所述数据读取请求的读取反馈;
[0072]组装装置接收到针对每一个子请求的请求反馈后,获得了构成请求装置所需读取的数据的所有子数据,若请求装置最终获得的是多个子请求反馈,反馈数据较为散乱,不利于请求装置识别,因而,优选先将多个子请求反馈组装为(针对被拆分的数据读取请求)完整的读取反馈,将完整的读取反馈进行发送。例如:一个读取10Mb数据的数据读取请求,被拆分为5个20Mb的数据读取子请求,针对5个中每一个20Mb的数据读取子请求,数据存储装置均会返回一个子请求反馈,组装装置会将该5子请求反馈组装为针对读取10Mb数据的数据读取请求的一个读取反馈,进行发送。其中,组装装置只会将针对同一个数据读取请求拆分成的多个子请求的子请求反馈进行组装,不会将不同数据读取请求拆分成的多个子请求的请求反馈进行组装,实现这一技术效果的方法有多种,例如:在同一个数据读取请求拆分成的多个子请求上标上相同的标志,组装装置仅将存在相同标志的子请求反馈进行组装。
[0073]步骤S105:将所述读取反馈发送至所述请求装置。
[0074]其中,由于缓存装置进行数据收发的效率较高,能有效提高数据收发效率,因而,如图2所示,本实施例中,组装装置组装后的读取反馈,优选先发送至缓存装置,再通过
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1