CN113778346B - 数据读取方法、装置、设备和存储介质 - Google Patents
数据读取方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN113778346B CN113778346B CN202111336917.5A CN202111336917A CN113778346B CN 113778346 B CN113778346 B CN 113778346B CN 202111336917 A CN202111336917 A CN 202111336917A CN 113778346 B CN113778346 B CN 113778346B
- Authority
- CN
- China
- Prior art keywords
- node
- ratio
- information
- data
- weight
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 239000012634 fragment Substances 0.000 claims abstract description 86
- 238000013500 data storage Methods 0.000 claims abstract description 51
- 238000004590 computer program Methods 0.000 claims description 19
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据读取方法、装置、设备和存储介质。所述方法包括:接收数据读取请求,并根据所述数据读取请求获取对应的数据存储信息,所述数据存储信息包括数据存储所在片区信息及对应节点信息;所述一个片区包括多个节点;根据所述节点信息确定节点权重;获取所述片区内各个节点的距离信息,根据所述片区内所有节点的所述节点权重和所述距离信息,确定片区权重;根据所述片区权重从大到小的顺序依次对片区内的数据进行读取。采用本方法能够减少数据读取时间,提高读取效率,同时还可以提高数据读取成功率。
Description
技术领域
本申请涉及计算机数据存储技术领域,特别是涉及一种数据读取方法、装置、设备和存储介质。
背景技术
随着数据量的不断增长,存储成本也成倍增加,对存储***的经济性提出了更高的要求,尤其是大型分布式存储***。纠删码存储方式,相比于传统三副本存储机制来说,既具有较高的空间利用率,又能保证数据存储的可靠性,被越来越多的应用于存储***中。
纠删码与RAID(Redundant Arrays of Independent Disks,磁盘阵列)类似,将数据分组组成条带(Stripe),每个条带中有N块数据,数据经过编码矩阵编码,产生N块编码块和M块校验块,统称数据块。纠删码编码后的编码块与原始数据内容相同,用于数据读取。在部分数据丢失后,校验块与编码块进行运算,可以恢复丢失的数据。纠删码编码产生的数据块具备MDS(maximum distance separable)性质,即任意M块数据丢失,都能恢复原始数据。与副本方式相比,纠删码空间利用率达到N/(N+M),1≤M≤N,因此纠删码比副本拥有更高的空间利用率。
分布式存储***支持纠删码机制,极大降低了存储成本,但是受限于纠删码本身的性质,特别是在随机读上需要更多时间和资源,数据读取效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高数据读取效率的数据读取方法、装置、设备和计算机可读存储介质。
第一方面,本申请提供了一种数据读取方法。所述方法包括:
接收数据读取请求,并根据所述数据读取请求获取对应的数据存储信息,所述数据存储信息包括数据存储所在片区信息及对应节点信息;一个所述片区包括多个所述节点;
根据所述节点信息确定节点权重;
获取所述片区内各个节点的距离信息,根据所述片区内所有节点的所述节点权重和所述距离信息,确定片区权重;
根据所述片区权重从大到小的顺序依次对片区内的数据进行读取。
在其中一个实施例中,所述根据所述节点信息确定节点权重,包括:
获取节点剩余硬盘存储容量和硬盘总容量,计算所述剩余硬盘存储容量和所述硬盘总容量的比值,为第一比值;
获取节点剩余缓存空间容量和总缓存空间容量,计算所述剩余缓存空间容量和总缓存空间容量的比值,为第二比值;
获取节点瞬时连接数和节点连接数上限,计算所述节点瞬时连接数和节点连接数上限的比值,为第三比值;
根据所述第一比值、第二比值和第三比值确定节点权重。
在其中一个实施例中,所述根据所述第一比值、第二比值和第三比值确定节点权重,包括:
计算第一比值和第二比值的乘积,得到乘积值;
根据所述乘积值和第三比值确定节点权重;
所述节点权重与所述乘积值成正比,与所述第三比值成反比。
在其中一个实施例中,所述根据所述片区内所有节点的所述节点权重和所述距离信息,确定片区权重,包括:
根据片区内所有节点的节点权重之和与距离信息之和,确定所述片区权重。
在其中一个实施例中,所述根据片区内所有节点的节点权重之和与距离信息之和,确定所述片区权重,包括:
将片区内所有节点的节点权重之和与距离信息之和的差,作为所述片区权重。
在其中一个实施例中,所述获取所述片区内各个节点的距离信息,包括:
针对每个节点,根据所述节点所在片区内的所述节点到主节点之间的路由数量,确定所述节点到主节点的距离,将所述节点到主节点的距离作为所述节点的距离信息。
第二方面,本申请还提供了一种数据读取装置。所述装置包括:
接收模块,用于接收数据读取请求,并根据所述数据读取请求获取对应的数据存储信息,所述数据存储信息包括数据存储所在片区信息及对应节点信息;一个所述片区包括多个所述节点;
节点模块,用于根据所述节点信息确定节点权重;
片区模块,用于获取所述片区内各个节点的距离信息,根据所述片区内所有节点的所述节点权重和所述距离信息,确定片区权重;
读取模块,用于根据所述片区权重从大到小的顺序依次对片区内数据进行读取。
在其中一个实施例中,所述节点模块,包括:
第一单元,用于获取节点剩余硬盘存储容量和硬盘总容量,计算所述剩余硬盘存储容量和所述硬盘总容量的比值,为第一比值;
第二单元,用于获取节点剩余缓存空间容量和总缓存空间容量,计算所述剩余缓存空间容量和总缓存空间容量的比值,为第二比值;
第三单元,用于获取节点瞬时连接数和节点连接数上限,计算所述节点瞬时连接数和节点连接数上限的比值,为第三比值;
节点确定单元,用于根据所述第一比值、第二比值和第三比值确定节点权重。
在其中一个实施例中,所述节点确定单元,用于计算第一比值和第二比值的乘积,得到乘积值;根据所述乘积值和第三比值确定节点权重;所述节点权重与所述乘积值成正比,与所述第三比值成反比。
在其中一个实施例中,所述片区模块,还用于根据片区内所有节点的节点权重之和与距离信息之和,确定所述片区权重。
在其中一个实施例中,所述片区模块,还用于将片区内所有节点的节点权重之和与距离信息之和的差,作为所述片区权重。
在其中一个实施例中,所述片区模块,针对每个节点,根据所述节点所在片区内的所述节点到主节点之间的路由数量,确定所述节点到主节点的距离,将所述节点到主节点的距离作为所述节点的距离信息。
第三方面,本申请还提供了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤:
接收数据读取请求,并根据所述数据读取请求获取对应的数据存储信息,所述数据存储信息包括数据存储所在片区信息及对应节点信息;一个所述片区包括多个所述节点;
根据所述节点信息确定节点权重;
获取所述片区内各个节点的距离信息,根据所述片区内所有节点的所述节点权重和所述距离信息,确定片区权重;
根据所述片区权重从大到小的顺序依次对片区内的数据进行读取。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤:
接收数据读取请求,并根据所述数据读取请求获取对应的数据存储信息,所述数据存储信息包括数据存储所在片区信息及对应节点信息;一个所述片区包括多个所述节点;
根据所述节点信息确定节点权重;
获取所述片区内各个节点的距离信息,根据所述片区内所有节点的所述节点权重和所述距离信息,确定片区权重;
根据所述片区权重从大到小的顺序依次对片区内的数据进行读取。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤:
接收数据读取请求,并根据所述数据读取请求获取对应的数据存储信息,所述数据存储信息包括数据存储所在片区信息及对应节点信息;一个所述片区包括多个所述节点;
根据所述节点信息确定节点权重;
获取所述片区内各个节点的距离信息,根据所述片区内所有节点的所述节点权重和所述距离信息,确定片区权重;
根据所述片区权重从大到小的顺序依次对片区内的数据进行读取。
上述数据读取方法、装置、设备和存储介质,通过接收数据读取请求,并根据所述数据读取请求获取对应的数据存储信息,所述数据存储信息包括数据存储所在片区信息及对应节点信息;一个所述片区包括多个所述节点;根据所述节点信息确定节点权重;获取所述片区内各个节点的距离信息,根据所述片区内所有节点的所述节点权重和所述距离信息,确定片区权重;根据所述片区权重从大到小的顺序依次对片区内的数据进行读取。本申请通过引入片区内的节点信息确定节点权重,再根据节点权重和节点的距离信息确定片区权重,根据片区权重按照从大到小的顺序依次对片区内的数据进行读取,从而减少读取时间,提高读取效率,同时还可以提高数据读取成功率。
附图说明
图1为一个实施例中数据读取方法的应用环境图;
图2为一个实施例中数据读取方法的流程示意图;
图3为一个实施例中204步骤的流程示意图;
图4为另一个实施例中数据读取方法的流程示意图;
图5为一个实施例中数据读取装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的数据读取方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储***可以存储服务器104需要处理的数据。数据存储***可以集成在服务器104上,也可以放在云上或其他网络服务器上。服务器104接收到终端102发送的数据读取请求后,根据所述数据读取请求获取对应的数据存储信息,所述数据存储信息包括数据存储所在片区信息及对应节点信息;所述一个片区包括多个节点;根据所述节点信息确定节点权重;获取所述片区内各个节点的距离信息,根据所述片区内所有节点的所述节点权重和所述距离信息,确定片区权重;根据所述片区权重从大到小的顺序依次对片区内的数据进行读取。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种数据读取方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,接收数据读取请求,并根据数据读取请求获取对应的数据存储信息,数据存储信息包括数据存储所在片区信息及对应节点信息;其中,一个片区包括多个节点。
服务器接收终端发送的数据读取请求,根据数据读取请求获取对应的数据存储信息,数据存储信息包括数据存储所在片区信息及对应节点信息。其中,片区为数据读取请求的基本单位,即数据读取时,以片区为基本单位进行读取,一个片区包括纠删码存储数据的多个节点。整体来说,进行数据读取时,先读取各个节点存储的数据块内容,再将各个数据块内容传输到主节点进行组合得到相应数据。在分布式存储***中,一个节点可以理解为一台主机或服务器,各节点之间通过网络连接;节点包括主节点和从节点,其中,一个主节点同时与多个从节点连接,主节点可向从节点发送或收集数据,而一个从节点只与一个主节点连接。而数据读取时,以片区为基本单位,一个片区包括多个节点,例如,一个片区包含有P(P为大于0的正整数)个节点,P个节点存储的数据块内容即为一个片区的内容,P的大小可以根据数据读取情况进行设定,先读取第一个片区的内容,然后再读取第二个片区的内容,依次类推,直至读取所有的数据存储的片区的数据内容,所有片区对应的节点中存储的数据块内容都获取后,分别发送至对应主节点进行组合,读取到完整数据内容。
本实施例中,服务器接收数据读取请求,可根据数据读取请求获取对应的数据存储信息,数据存储信息包括片区信息和对应的节点信息。片区信息包括片区对应的节点及节点数量,节点信息包括节点的硬盘存储容量和实时的剩余硬盘存储容量、节点的总缓存空间和实时的剩余缓存空间、节点与其他节点的节点连接上限数和瞬时连接数等信息。
步骤204,根据节点信息确定节点权重。
通过获取数据存储所在节点的节点信息,从而确定节点的节点权重。其中,节点权重用于表示当前节点的剩余存储资源量,当节点权重越大时,说明该节点当前任务较轻,存储资源剩余较多,更有利于对该节点进行数据读取。
在一个示例中,可根据当前节点的剩余硬盘存储容量、剩余缓存空间、与其他节点的瞬时连接数来确定当前节点的节点权重。
步骤206,获取片区内各个节点的距离信息,根据片区内所有节点的节点权重和距离信息,确定片区权重。
节点的距离信息,用于表征该片区内数据读取请求中涉及到的数据存储节点到对应主节点之间的距离。距离信息可以指节点之间的物理距离信息,例如当前节点到主节点之间,通过数据传输经过的路由数量来确定该节点的距离信息;也可以根据当前节点到主节点之间,数据传输的速度来确定该节点的距离信息。获取片区内各个节点的距离信息,根据片区内所有节点的节点权重和距离信息,确定片区权重。其中,片区权重用于表征该片区内的剩余存储资源量,当片区权重越大,说明该片区整体任务较轻,存储资源剩余量较多,更有利于进行数据读取。例如,可根据片区内所有节点的节点权重之和与所有节点对应的距离之和的商来确定片区权重。
步骤208,根据片区权重从大到小的顺序依次对片区内的数据进行读取。
在获取数据存储对应的各个片区的权重后,对片区权重从大到小进行排序,根据片区权重从大到小的顺序依次对片区内的数据进行读取。
上述数据读取方法中,通过接收数据读取请求,并根据数据读取请求获取对应的数据存储信息,数据存储信息包括数据存储所在片区信息及对应节点信息,通过片区内的节点信息确定节点权重,再根据节点权重和节点的距离信息确定片区权重,根据片区权重按照从大到小的顺序依次对片区内的数据进行读取,从而减少读取时间,提高读取效率,同时还可以提高数据读取成功率。
在一个实施例中,如图3所示,根据节点信息确定节点权重的步骤204,包括:
步骤302,获取节点剩余硬盘存储容量和硬盘总容量,计算剩余硬盘存储容量和所述硬盘总容量的比值,为第一比值。
服务器获取节点剩余硬盘存储容量和该节点对应的硬盘总容量,计算剩余硬盘存储容量和硬盘总容量的比值,为第一比值。其中,节点的硬盘存储总容量是在进行分布式数据存储时进行设置的,因此,节点的硬盘存储总容量一经设置,在后面数据读取时就不会改变;每当有新的数据块存入该节点时,该节点就会自动更新剩余硬盘存储容量,本实施例中是获取当数据读取时该节点的剩余硬盘存储容量。在一个节点中,当前存储的数据量越大,其被读取访问的概率就越高,对应其任务就会越繁重,当要读取该节点中的数据时,相应延迟的可能性会增加,导致主节点无法及时读取的概率就越高。因此,随着第一比值的增大,当前节点剩余硬盘存储容量占据硬盘总容量的比重也增大,说明存储的数据量就越少,被访问的概率也会越小,此时对其读取数据的任务越能及时响应,即数据读取速度就会越快。
步骤304,获取节点剩余缓存空间容量和总缓存空间容量,计算所述剩余缓存空间容量和总缓存空间容量的比值,为第二比值。
分布式存储***中,数据在传输过程中使用了大量的直接缓存,在读取数据时,首先将数据读取到节点的直接缓存中,再进行下一步的操作。因此,剩余缓存空间容量的大小也显示了当前节点是否在进行频繁的读写操作。当当前节点的剩余缓存空间容量较小时,说明该节点正在进行大量的读写操作,上层任务负载较重,可能会无法响应主节点的数据请求。本实施例中是获取当数据读取时该节点的剩余缓存空间容量,当第二比值越大,说明当前节点剩余缓存空间容量越大,读写任务相对较少,对主节点的任务请求也能及时响应,即数据读取速度会越快。
步骤306,获取节点瞬时连接数和节点连接数上限,计算节点瞬时连接数和节点连接上限数的比值,为第三比值。
节点连接数,是指与当前节点建立了读写连接的节点数目。节点连接数越多,说明该节点与其他节点间进行的数据交互越多,该节点越繁忙。假设当前节点的连接数已经达到节点连接数上限,那么新接收到的数据请求就会进入等待队列,则主节点在设定时间内没有等到来自当前节点的响应,就无法获取足够的数据。当前节点会向主节点发送读取失败的错误报告,主节点收到相应错误报告后,只能在下一个时间点重启读写操作。本实施例中,在接到数据请求的瞬间,获取节点的瞬时连接数和节点连接上限数,计算节点瞬时连接数和节点连接上限数的比值为第三比值。当第三比值越高,说明该节点的连接数越多,此时主节点进入等待队列的概率就越高,读取失败的风险就会增加,即会导致数据读取效率较低。
步骤308,根据所述第一比值、第二比值和第三比值确定节点权重。
在一个实施例中,根据第一比值、第二比值和第三比值确定节点权重,包括:
计算第一比值和第二比值的乘积,得到乘积值;
根据所述乘积值和第三比值确定节点权重;
所述节点权重与所述乘积值成正比,与所述第三比值成反比。
在一个可选的实施方式中,第i个节点的节点权重LB i 为:
其中,SSR i 为第i个节点的第一比值,CSR i 为第i个节点的第二比值,CNR i 为第i个节点的第三比值。
在另一个可选的实施方式中,第i个节点的节点权重LB i 为:
其中,SSR i 为第i个节点的第一比值,CSR i 为第i个节点的第二比值,CNR i 为第i个节点的第三比值,f为调节系数。由此可知,上述公式在具体使用时,在保留第一比值、第二比值及第三比值的基础上,为了使得节点权重在具体应用场景中更加准确,可以允许进行适当变形。
在一个实施例中,步骤206中根据片区内所有节点的节点权重和距离信息,确定片区权重,包括:根据片区内所有节点的节点权重之和与距离信息之和,确定片区权重。其中,距离信息,表示同一片区内,其他节点到主节点的距离。片区权重越大,说明该片区内的节点任务较轻,剩余资源较多,各节点到主节点的距离较短,更适合优先进行读取。
在另一个可实现的方式中,片区权重W还可以为:
在一个实施例中,将片区内所有节点的节点权重之和与距离信息之和的差,作为所述片区权重,例如,片区权重W为:
在另一个可实现的方式中,片区权重W可为:
其中,m和n为常数,可根据具体场景进行设置。
在一个实施例中,步骤206中获取片区内各个节点的距离信息,包括:
针对每个节点,根据该节点所在片区内,该节点到主节点之间的路由数量,确定该节点到主节点的距离,将该节点到主节点的距离作为该节点的距离信息。
在一个可实现的方式中,机架是可放置多个服务器的装置,即一个机架包括多个节点,机架内的节点因为在同一个地理位置,所以距离较近,而机架外的就需要通过路由进行通信,所以根据路由的数量来计算节点到主节点之间的距离。本实施例中,可将同一机架内的节点间的距离定为1,而机架外的节点,则每经过一个路由,距离就加1。例如,若当前节点和对应主节点在同一个机架内,则该节点距离信息为1,若当前节点与对应主节点不在同一个机架内,则通过当前节点与对应主节点之间的路由数确定当前节点的距离信息,假设路由数为5,则当前节点的距离信息为6。
在一个实施例中,如图4所示,数据读取方法包括以下步骤:
步骤402:开始。
步骤404:接收数据读取请求,根据数据读取请求获取对应的数据存储信息,生成片区节点资源列表。
接收从终端发送的数据读取请求,根据数据读取请求获取对应的数据存储所在片区及对应的节点信息,其中,一个片区包括多个节点,数据读取以片区为单位。将获取的数据存储对应的片区信息及节点信息,存储在片区节点资源列表中,也就是说,片区节点资源列表包括数据存储所在片区及片区包括的节点信息,节点信息包括节点的硬盘存储容量、缓存空间容量、连接节点数及与主节点的连接情况等信息。
步骤406:依次计算每个节点的SSR、CSR、CNR值。
针对每个节点,SSR为当前节点的剩余硬盘存储容量与硬盘总容量的比值,CSR为剩余缓存空间容量和总缓存空间容量的比值,CNR为节点瞬时连接数和节点连接数上限的比值,从片区节点资源列表中获取相应信息,依次计算每个节点的SSR、CSR、CNR值。
步骤408:根据节点的SSR、CSR、CNR值,计算节点权重LB。
步骤410:计算片区内每个节点的距离信息。
节点的距离信息,是指当前节点到主节点的距离。如果当前节点与主节点在同一机架内,则当前节点与主节点之间的距离为1;如果当前节点为主节点,则当前节点到主节点的距离为0;如果当前节点与主节点不在同一机架内,则根据当前节点与主节点之间的路由数量,来确定当前节点到主节点的距离,按照该路由数量加1作为当前节点的距离信息。
步骤412:根据片区内的节点权重和节点距离信息,计算片区权重W,将片区权重W加入辅助读取列表。
针对每个片区,片区权重W为:
其中,k代表片区内的节点数量,DIS表示距离信息,节点距离信息可根据片区节点资源列表获取。计算得到数据读取请求中涉及到的所有片区的片区权重W后,将片区权重W加入辅助读取列表。
步骤414:将辅助读取列表中的片区权重按照从大到小的顺序进行排序,按照顺序依次加入数据读取列表。
按照片区权重从大到小的顺序依次加入数据读取列表,即片区权重最大的先进行读取。
步骤416:结束。
本实施例中,片区权重主要涉及节点权重和距离信息,其中,节点权重的考虑是为了防止由于节点响应延迟导致数据读取失败,从而增加数据读取时间的情况;距离信息的考虑,是注重减少机架间的宽带传输,提高节点间的数据传输速度,从而达到减少数据读取时间的目的。根据片区权重从大到小的顺序读取数据,可减少数据读取时间,大大提高数据读取效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据读取方法的数据读取装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据读取装置实施例中的具体限定可以参见上文中对于数据读取方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种数据读取装置,包括:接收模块502、节点模块504、片区模块506和读取模块508,其中:
接收模块502,用于接收数据读取请求,并根据所述数据读取请求获取对应的数据存储信息,所述数据存储信息包括数据存储所在片区信息及对应节点信息;一个所述片区包括多个所述节点;
节点模块504,用于根据所述节点信息确定节点权重;
片区模块506,用于获取所述片区内各个节点的距离信息,根据所述片区内所有节点的所述节点权重和所述距离信息,确定片区权重;
读取模块508,用于根据所述片区权重从大到小的顺序依次对片区内数据进行读取。
在一个实施例中,节点模块504,包括:
第一单元,用于获取节点剩余硬盘存储容量和硬盘总容量,计算所述剩余硬盘存储容量和所述硬盘总容量的比值,为第一比值;
第二单元,用于获取节点剩余缓存空间容量和总缓存空间容量,计算所述剩余缓存空间容量和总缓存空间容量的比值,为第二比值;
第三单元,用于获取节点瞬时连接数和节点连接上限数,计算所述节点瞬时连接数和节点连接上限数的比值,为第三比值;
节点确定单元,用于根据所述第一比值、第二比值和第三比值确定节点权重。
在一个实施例中,节点确定单元,还用于计算第一比值和第二比值的乘积,得到乘积值;根据所述乘积值和第三比值确定节点权重;所述节点权重与所述乘积值成正比,与所述第三比值成反比。
在一个实施例中,片区模块506,还用于根据片区内所有节点的节点权重之和与距离信息之和,确定片区权重。
在一个实施例中,片区模块506,还用于将片区内所有节点的节点权重之和与距离信息之和的差,作为片区权重。
在一个实施例中,片区模块506,还用于针对每个节点,根据所述节点所在片区内的所述节点到主节点之间的路由数量,确定所述节点到主节点的距离,将所述节点到主节点的距离作为所述节点的距离信息。
上述数据读取装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据读取请求涉及到的存储信息数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据读取方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种电子设备,包括存储器和处理器,存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
接收数据读取请求,并根据所述数据读取请求获取对应的数据存储信息,所述数据存储信息包括数据存储所在片区信息及对应节点信息;一个片区包括多个节点;
根据所述节点信息确定节点权重;
获取所述片区内各个节点的距离信息,根据所述片区内所有节点的所述节点权重和所述距离信息,确定片区权重;
根据所述片区权重从大到小的顺序依次对片区内的数据进行读取。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收数据读取请求,并根据所述数据读取请求获取对应的数据存储信息,所述数据存储信息包括数据存储所在片区信息及对应节点信息;一个片区包括多个节点;
根据所述节点信息确定节点权重;
获取所述片区内各个节点的距离信息,根据所述片区内所有节点的所述节点权重和所述距离信息,确定片区权重;
根据所述片区权重从大到小的顺序依次对片区内的数据进行读取。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
接收数据读取请求,并根据所述数据读取请求获取对应的数据存储信息,所述数据存储信息包括数据存储所在片区信息及对应节点信息;一个片区包括多个节点;
根据所述节点信息确定节点权重;
获取所述片区内各个节点的距离信息,根据所述片区内所有节点的所述节点权重和所述距离信息,确定片区权重;
根据所述片区权重从大到小的顺序依次对片区内的数据进行读取。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据读取方法,其特征在于,所述方法包括:
接收数据读取请求,并根据所述数据读取请求获取对应的数据存储信息,所述数据存储信息包括数据存储所在片区信息及对应节点信息;一个所述片区包括多个所述节点;所述节点信息包括节点的硬盘存储容量和实时剩余硬盘存储容量、节点的总缓存空间和实时的剩余缓存空间、节点与其他节点连接上限数和瞬时连接数;
根据所述节点信息确定节点权重;
获取所述片区内各个节点的距离信息,根据所述片区内所有节点的所述节点权重和所述距离信息,确定片区权重;
根据所述片区权重从大到小的顺序依次对片区内的数据进行读取。
2.根据权利要求1所述的方法,其特征在于,所述根据所述节点信息确定节点权重,包括:
获取节点剩余硬盘存储容量和硬盘总容量,计算所述剩余硬盘存储容量和所述硬盘总容量的比值,为第一比值;
获取节点剩余缓存空间容量和总缓存空间容量,计算所述剩余缓存空间容量和总缓存空间容量的比值,为第二比值;
获取节点瞬时连接数和节点连接上限数,计算所述节点瞬时连接数和节点连接数上限的比值,为第三比值;
根据所述第一比值、第二比值和第三比值确定节点权重。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一比值、第二比值和第三比值确定节点权重,包括:
计算第一比值和第二比值的乘积,得到乘积值;
根据所述乘积值和第三比值确定节点权重;
所述节点权重与所述乘积值成正比,与所述第三比值成反比。
4.根据权利要求1所述的方法,其特征在于,所述根据所述片区内所有节点的所述节点权重和所述距离信息,确定片区权重,包括:
根据片区内所有节点的节点权重之和与距离信息之和,确定所述片区权重。
5.根据权利要求4所述的方法,其特征在于,所述根据片区内所有节点的节点权重之和与距离信息之和,确定所述片区权重,包括:
将片区内所有节点的节点权重之和与距离信息之和的差,作为所述片区权重。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述获取所述片区内各个节点的距离信息,包括:
针对每个节点,根据所述节点所在片区内的所述节点到主节点之间的路由数量,确定所述节点到主节点的距离,将所述节点到主节点的距离作为所述节点的距离信息。
7.一种数据读取装置,其特征在于,所述装置包括:
接收模块,用于接收数据读取请求,并根据所述数据读取请求获取对应的数据存储信息,所述数据存储信息包括数据存储所在片区信息及对应节点信息;一个所述片区包括多个所述节点;所述节点信息包括节点的硬盘存储容量和实时剩余硬盘存储容量、节点的总缓存空间和实时的剩余缓存空间、节点与其他节点连接上限数和瞬时连接数;
节点模块,用于根据所述节点信息确定节点权重;
片区模块,用于获取所述片区内各个节点的距离信息,根据所述片区内所有节点的所述节点权重和所述距离信息,确定片区权重;
读取模块,用于根据所述片区权重从大到小的顺序依次对片区内数据进行读取。
8.根据权利要求7所述的装置,其特征在于,所述节点模块,包括:
第一单元,用于获取节点剩余硬盘存储容量和硬盘总容量,计算所述剩余硬盘存储容量和所述硬盘总容量的比值,为第一比值;
第二单元,用于获取节点剩余缓存空间容量和总缓存空间容量,计算所述剩余缓存空间容量和总缓存空间容量的比值,为第二比值;
第三单元,用于获取节点瞬时连接数和节点连接上限数,计算所述节点瞬时连接数和节点连接上限数的比值,为第三比值;
节点确定单元,用于根据所述第一比值、第二比值和第三比值确定节点权重。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111336917.5A CN113778346B (zh) | 2021-11-12 | 2021-11-12 | 数据读取方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111336917.5A CN113778346B (zh) | 2021-11-12 | 2021-11-12 | 数据读取方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113778346A CN113778346A (zh) | 2021-12-10 |
CN113778346B true CN113778346B (zh) | 2022-02-11 |
Family
ID=78957008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111336917.5A Active CN113778346B (zh) | 2021-11-12 | 2021-11-12 | 数据读取方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113778346B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115964445B (zh) * | 2023-02-23 | 2024-03-05 | 合肥申威睿思信息科技有限公司 | 一种分布式数据库的多副本实现方法和装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176865A (zh) * | 2013-03-12 | 2013-06-26 | 华中科技大学 | 一种纠删码存储中负载感知的读优化方法 |
CN107977167A (zh) * | 2017-12-01 | 2018-05-01 | 西安交通大学 | 一种基于纠删码的分布式存储***的退化读优化方法 |
CN109960588A (zh) * | 2019-03-20 | 2019-07-02 | 华中科技大学 | 一种针对异构内存集群的读请求调度方法及*** |
CN111159131A (zh) * | 2018-11-07 | 2020-05-15 | 中兴通讯股份有限公司 | 性能优化方法、装置、设备及计算机可读存储介质 |
CN111459677A (zh) * | 2020-04-01 | 2020-07-28 | 北京顺达同行科技有限公司 | 请求分配方法、装置、计算机设备和存储介质 |
CN112395256A (zh) * | 2019-08-19 | 2021-02-23 | 中移(苏州)软件技术有限公司 | 一种数据读取方法、电子设备及计算机存储介质 |
CN113259428A (zh) * | 2021-05-11 | 2021-08-13 | 鸬鹚科技(深圳)有限公司 | 数据访问请求的处理方法、装置、计算机设备及介质 |
CN113419993A (zh) * | 2021-05-19 | 2021-09-21 | 北京达佳互联信息技术有限公司 | 读写请求处理方法、装置、电子设备及存储介质 |
CN113504875A (zh) * | 2021-06-24 | 2021-10-15 | 中国科学院计算技术研究所 | 一种基于多级调度的纠删码***恢复方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9552297B2 (en) * | 2013-03-04 | 2017-01-24 | Dot Hill Systems Corporation | Method and apparatus for efficient cache read ahead |
-
2021
- 2021-11-12 CN CN202111336917.5A patent/CN113778346B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176865A (zh) * | 2013-03-12 | 2013-06-26 | 华中科技大学 | 一种纠删码存储中负载感知的读优化方法 |
CN107977167A (zh) * | 2017-12-01 | 2018-05-01 | 西安交通大学 | 一种基于纠删码的分布式存储***的退化读优化方法 |
CN111159131A (zh) * | 2018-11-07 | 2020-05-15 | 中兴通讯股份有限公司 | 性能优化方法、装置、设备及计算机可读存储介质 |
CN109960588A (zh) * | 2019-03-20 | 2019-07-02 | 华中科技大学 | 一种针对异构内存集群的读请求调度方法及*** |
CN112395256A (zh) * | 2019-08-19 | 2021-02-23 | 中移(苏州)软件技术有限公司 | 一种数据读取方法、电子设备及计算机存储介质 |
CN111459677A (zh) * | 2020-04-01 | 2020-07-28 | 北京顺达同行科技有限公司 | 请求分配方法、装置、计算机设备和存储介质 |
CN113259428A (zh) * | 2021-05-11 | 2021-08-13 | 鸬鹚科技(深圳)有限公司 | 数据访问请求的处理方法、装置、计算机设备及介质 |
CN113419993A (zh) * | 2021-05-19 | 2021-09-21 | 北京达佳互联信息技术有限公司 | 读写请求处理方法、装置、电子设备及存储介质 |
CN113504875A (zh) * | 2021-06-24 | 2021-10-15 | 中国科学院计算技术研究所 | 一种基于多级调度的纠删码***恢复方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN113778346A (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11947423B2 (en) | Data reconstruction in distributed storage systems | |
US10983860B2 (en) | Automatic prefill of a storage system with conditioning of raid stripes | |
JP6778795B2 (ja) | データを記憶するための方法、装置及びシステム | |
US10990479B2 (en) | Efficient packing of compressed data in storage system implementing data striping | |
US11204716B2 (en) | Compression offloading to RAID array storage enclosure | |
US10831407B2 (en) | Write flow offloading to raid array storage enclosure | |
CN110750382B (zh) | 用于提高数据修复性能的最小存储再生码编码方法及*** | |
US11494103B2 (en) | Memory-efficient processing of RAID metadata bitmaps | |
US11416166B2 (en) | Distributed function processing with estimate-based scheduler | |
US10346066B2 (en) | Efficient erasure coding of large data objects | |
CN113901395B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20230137007A1 (en) | Data storage method, storage system, storage device, and storage medium | |
CN113778346B (zh) | 数据读取方法、装置、设备和存储介质 | |
CN109478125B (zh) | 操纵分布式一致性协议以识别期望的存储单元集 | |
CN115470156A (zh) | 基于rdma的内存使用方法、***、电子设备和存储介质 | |
US10528282B2 (en) | Modifying and utilizing a file structure in a dispersed storage network | |
US10275185B2 (en) | Fail-in-place supported via decentralized or Distributed Agreement Protocol (DAP) | |
CN115934354A (zh) | 在线存储方法和装置 | |
CN110196682B (zh) | 数据管理方法、装置、计算设备及存储介质 | |
CN114661249B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN116860564B (zh) | 一种云服务器数据管理方法及其数据管理装置 | |
CN117349075A (zh) | 一种数据处理方法及相关设备 | |
CN114490170A (zh) | 提高纠删码随机读取平均效率的方法、装置和计算机设备 | |
CN111367712A (zh) | 一种数据处理方法及装置 | |
CN117666931A (zh) | 一种数据处理方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |