CN103412950B - 加速空间大数据文件读写速度的方法 - Google Patents
加速空间大数据文件读写速度的方法 Download PDFInfo
- Publication number
- CN103412950B CN103412950B CN201310382898.9A CN201310382898A CN103412950B CN 103412950 B CN103412950 B CN 103412950B CN 201310382898 A CN201310382898 A CN 201310382898A CN 103412950 B CN103412950 B CN 103412950B
- Authority
- CN
- China
- Prior art keywords
- copy
- file
- data files
- large data
- space large
- 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 37
- 230000003139 buffering effect Effects 0.000 claims abstract description 3
- 238000012795 verification Methods 0.000 claims description 9
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 238000000151 deposition Methods 0.000 claims description 2
- 238000012986 modification Methods 0.000 claims 1
- 230000004048 modification Effects 0.000 claims 1
- 238000012546 transfer Methods 0.000 abstract description 5
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 230000005540 biological transmission Effects 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000013499 data model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000007087 memory ability Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机数据传输领域,公开了一种加速空间大数据文件读写速度的方法,包括零复制步骤,文件缓冲步骤以及摘要校验步骤,对空间大数据文件进行读写访问时,通过摘要校验步骤得到空间大数据文件的信息摘要,并与缓存系统内的文件的信息摘要进行比对;如果空间大数据文件在缓存系统内存在同样的副本,则更新副本的缓存命中信息,更新副本的权重W,根据更新后的副本的权重W调整副本在顺序链表的链接位置,通过零复制步骤对副本进行传输;如果空间大数据文件在缓存系统内不存在同样的副本,则在缓存系统内建立空间大数据文件的副本,更新副本的权重W,通过零复制步骤对副本进行传输。本发明的优点在于,克服数据读写瓶颈,利于整体提升数据读写速度。
Description
技术领域
本发明涉及计算机数据传输领域,特别涉及一种加速空间大数据文件读写速度的方法。
背景技术
随着信息技术的不断发展,海量数据的存储系统占据了举足轻重的地位。对于当今时代,数据量每分每秒都在以几何级别增长的趋势下,能够应对海量数据下的快速读写成为了最为关键的讨论话题。在高速的海量数据读写环境下,如何保证数据的可靠存储能力,隐私安全保护能力,以及移动可扩展性成为了尤其重要的话题。
在空间大数据的存储系统中,其读写速度直接决定了系统的整体响应时间。最直接影响大文件的读写速度的是磁盘读写方式,通过磁盘读写速度的测试,可以得到传统的磁盘顺序读写速度可以达到100MB/s,但是实际的网络传输速度却远远不能达到这个速度,究其原因是大文件从磁盘读入内核态缓存,再到用户态缓存,最后再次切到内核态Socket缓存内,问题就在于多了一份副本复制拷贝的时间。
传统的网络文件读写方式,为直接在磁盘上找到需求的文件地址,然后载入内存,然后再以传统的网络传输方式发送到客户端。如果是对于文件的单次需求是没有问题的,但是在空间大数据的处理模式下,对于文件的访问读写是随机的、重复的、往往是读写集中式的。所以对于空间大数据系统内的文件作一个读写缓冲区,如果文件已经被访问过,那么文件就会存在于缓存区,缓存区的文件可以直接载入网络发送缓存区内。这样就能够使文件的整体响应接受时间缩短,达到提速的效果。
在传统的文件上传模式中,无论文件大小内容和特征是什么,文件都将根据数据传输上传到服务器端,这样对于一些大文件的上传无疑是非常耗时的。在空间大数据模型下,上传的数据文件是非常有可能重复或者某一段数据有所重复。
有鉴于上述问题,在实际的应用过程中,需要研发一种具有更快的传输速度的数据传输方法。
发明内容
本发明针对现有技术所存在的缺点,提供了一种加速空间大数据文件读写速度的方法。
为实现上述目的,本发明可采取下述技术方案:
加速空间大数据文件读写速度的方法,包括零复制步骤,文件缓冲步骤以及摘要校验步骤,其中,
零复制步骤包括,将空间大数据文件由系统内核态的磁盘内存载入内核态的Socket缓存区域;
文件缓存步骤包括,根据空间大数据文件的文件信息建立缓存系统,所述缓存系统包括一个或者多个顺序桶,所述顺序桶包括一个顺序链表,顺序链表用于存放副本,副本依据空间大数据文件的权重W顺序排列,所述权重W由以下方法得到:
其中,C1、C2以及C3的系数,Tmodify为顺序链表上的文件的最近写入时间,Tread为顺序链表上的文件的最近读取时间,Tcreate为顺序链表上的文件的初始创建时间,Sfile为顺序链表上的文件的大小;
摘要校验步骤包括,提取于空间大数据文件的特征段,所述特征段包括位于文件首部段落、尾部段落以及随机选取的一个或者多个段落,对特征段进行MD5校验,对校验后的特征段进行异或求和得到信息摘要;
还包括以下具体步骤:1)对空间大数据文件进行读写访问时,通过摘要校验步骤得到空间大数据文件的信息摘要,并与缓存系统内的文件的信息摘要进行比对;2)如果空间大数据文件在缓存系统内存在同样的副本,则更新副本的缓存命中信息,更新副本的权重W,根据更新后的副本的权重W调整副本在顺序链表的链接位置,通过零复制步骤对副本进行传输;3)如果空间大数据文件在缓存系统内不存在同样的副本,则在缓存系统内建立空间大数据文件的副本,更新副本的权重W,通过零复制步骤对副本进行传输。
作为优选,所述步骤3)还包括以下具体步骤:建立副本时,如果缓存系统的容量超出额定最大容量,则首先通过删除副本来释放缓存系统的容量。
作为优选,所述零复制步骤中,通过DMA方式进行载入。
作为优选,所述多个顺序桶依据文件大小建立,不同大小的文件副本装入不同的顺序桶内。
其中,主要的原理包括:
1.“零复制”方法
在网络传输发送文件的时候,系统调用read()和send()导致了文件需要从内核态缓存复制到用户态应用程序内的缓存,然后再复制到内核态的Socket发送缓存区内,这样就导致了多余的两次复制拷贝,形成了文件传输发送时速度缓慢的技术瓶颈。所以在“零复制”方法中,很好的解决了这个问题。
使用Unix或者Linux系统上的sendfile()或者transferTo()系统调用,直接将需要传输的文件从文件信道上复制到网络写缓存区内,达到了最快的速度。
其中,文件的传输完全由DMA(directmemoryaccess)引擎负责,相对于所有的数据来说,仅有文件信息描述符号包括文件的位置、数据长度信息会被复制到socket缓存区内。DMA直接将数据从内核缓存区内复制到网络发送端缓存区内,省去了CPU的复制时间。
2.基于文件信息的缓存系统
首先基于文件的数据大小建立缓存桶,然后在每个桶内建立一条基于文件权重大小的数据单向链表。权重的计算可以参考下一小节的内容。权重小的文件排在链表的前面,权重大的文件排位链表的后面。
需求的文件可以根据缓存分为两类:①缓存内文件;②缓存外文件。根据这两种文件,可以将文件的需求步骤分为两种。
①缓存内文件的需求
如果文件在缓存内有副本,则只需要更新文件的缓存命中(cachehit)信息,然后更新文件的权重信息,刷新文件在链表内的位置。然后将文件数据通过1小节内所述的“零复制”方法网络传输到需求端。
②缓存外文件的需求
如果文件在缓存没有副本,则此时需要考虑缓存的容量问题。可以分为两种情况。
A)缓存内容量足够
此时,只需要将文件副本根据文件信息包括文件大小和新载入的权重载入缓存内即可,然后将此文件副本根据①中所述方法传输给需求端。
B)缓存内容量超额,需要释放空间
此时需要的步骤比较多,首先需要根据桶内的信息释放出足够的空间来容下需要的文件副本,首先通过删除权重值最小的副本块来释放缓存系统的容量,如果还是不满足空间需求则继续删除权重次小的副本块,如此继续直到达到留出所需的空间大小为止。然后剩下的步骤,和A)中所述一样。
3.权重计算方案
基于文件信息的缓存系统中,最为关键的地方就是文件的权重计算方法,下面就通过计算公式来描述文件的权重计算。
其中,C1、C2以及C3为系数,其中,C1以及C2的范围为1.5-2.0,C3的取值范围为2.5-3.0,Tmodify为文件最近写入时间,Tread为文件最近读取时间,Tcreate为文件初始创建时间,Sfile为文件大小。
Tmodify-Tcreate代表了文件从一开始创建的时间开始计算到最近一次修改所经历的时间,记为T1;Tread-Tcreate代表了文件从一开始创建的时间开始计算到最近一次读取所读取的时间,记为T2;可以得到W和T1以及T2的大小成反比,和文件的数据大小成正比。
4.上传文件特征段提取的摘要校验
上传的文件可能和服务器内的文件相同,如果相同则不需要上传,可以将大数据的上传时间减省下来。对于上传文件的相同匹配,可以通过提取上传文件的特征段进行摘要校验,然后和服务器内含有文件校验值进行快速比较,如此就能快速检测。
compare(Hash(Funcabstract(file)),Hash服务器)
其中,Segi(file,Rand(Vi))为基于特征向量求其文件的特征段,对于I=0和I=1的特别情况为取文件的首部和尾部特征段。然后对所有选取的特征段进行MD5校验,然后进行异或求和就能够的到文件的信息摘要Funcabstract(file)。
最后,对文件的摘要取hash值,和服务器内含有的hash桶进行时间复杂度为O(1)的比较,如果发现服务器内的hash桶已经含有该hash值,则说明服务器内已经含有该文件,不然则没有含有相同的文件。
本发明由于采用了以上技术方案,具有显著的技术效果:
本发明有效克服了现有的数据传输步骤中所存在的瓶颈问题,传输速度快,实际传输速度几乎可以达到硬盘的数据读写速度,因此整体提升了对空间大数据的传输效率,节省了用户上/下载数据时的等待时间,具有较好的应用价值。
进一步地,通过DMA方式进行数据复制,在提高数据传输速度的同时,也减少了对CPU的占用,缩减了用户的等待时间,提高了用户体验。
缓存系统包括依据文件大小建立的顺序桶,以及依据权重大小进行排序的链表,在进行摘要信息的对比时,可以有效减少对比次数,提高对比效率。
附图说明
图1为传统数据内存复制过程。
图2为传统数据内存复制内的上下文切换。
图3为零复制步骤的数据复制过程。
图4为零复制步骤的数据复制的上下文切换。
图5为基于文件信息的缓存系统运行演示步骤一。
图6为基于文件信息的缓存系统运行演示步骤二。
图7为基于文件信息的缓存系统运行演示步骤三。
图8为基于文件信息的缓存系统运行演示步骤四。
图9为基于文件信息的缓存系统运行演示步骤五。
图10为上传文件随机特征段选取展示图。
具体实施方式
下面结合实施例对本发明作进一步的详细描述。
实施例1
零复制步骤:
如图1所示,这里展示了传统网络文件传输方案中数据的流向,数据首先通过DMA方式由系统内核态的磁盘内存载入内核态的读缓存区内,然后通过CPU传输到用户态的应用程序缓存区内,然后再通过CPU传入内核态的Socket缓存区内,最后通过DMA传入NIC缓存区内,进行文件的传输。
如图2所示,展示了传统网络文件传输方案中上下文切换的过程,由于在内核态和用户态之间进行数据传输,所以整个流程进行了四次上下文的切换。
相比之下,图3展示了零复制步骤的数据流向,数据首先通过磁盘读入内核态的读缓存区内,然后直接通过DMA复制到Socket缓存区内,实现文件的传输。进一步地,图3所展示的零复制步骤的数据流向,也可以包括数据由Socket缓存区域通过DMA方式复制到内核态的磁盘内存的过程,以实现文件的反向传输。
图4则展示了零复制步骤中的上下文切换过程,由于是直接通过DMA传输,所以省去了CPU的传输。这样整个流程就含有2次上下文的切换。
文件缓存步骤:
图5-图9展示了一个完整的基于文件系统的缓存系统运行时的一个例子。
其中文件的访问顺序为file1,file5,file3,file5,file4;文件的信息如图中所示;图中左侧为一个基于文件数据大小的桶,每一个桶内都还有一条单向链表。
第一步访问file1的时候,由于file1的文件大小为1.2G,所以直接定位到桶内的2G桶(文件大小小于等于2G,大于1G)内,然后发现桶上的链表此时为空,所以直接挂在桶的链表上,如图5所示。
第二步访问file5的时候,由于file5的文件大小为823MB,所以直接定位到桶内的1G桶(文件大小小于等于1G,大于512MB)内,然后发现桶上的链表此时为空,所以直接挂在桶的链表上,如图6所示。
第三步访问file3的时候,由于file3的文件大小为945MB,所以直接定位到桶内的1G桶内,然后发现桶上已经还有个一条链表,然后计算其权重值,明显file3的权重比file5的权重小,所以file3插在链表的头上,刷新了链表的信息,如图7所示。
第四步访问file5的时候,由于file5的文件大小为823MB,所以直接定位到桶内的1G桶内,发现链表上含有file5的数据副本,所以直接定位到file5,无需加入链表任何新的数据,但是需要根据重新计算得到的权重值更新链表的顺序,如图8所示。
第五步访问file4的时候,由于file4的文件大小为1.1G,所以直接定位到2G桶内,然后发现桶上链表并没有包含file4,所以需要将file的数据副本加入到链表内,根据权重大小,需要将file4加入链表的头上,如图9所示。
以上为整个文件访问的过程中,基于文件信息的缓存系统所发生所有数据的计算和改变。
摘要校验步骤:
图10展示了一次对于上传文件随机选取的特征段,然后对于每个选取的特征数据段进行MD5校验,然后将每个计算得到的校验值经行异或运算,然后对其进行hash求值,如果服务器内的hash桶中含有相同的hash值,则说明该文件已经在服务器内有一份副本,则表示无需上传,如果没有相同的hash值,则说明服务器内未含有一份文件的副本,则表示需要上传该文件。
总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。
Claims (4)
1.一种加速空间大数据文件读写速度的方法,其特征在于,包括零复制步骤,文件缓冲步骤以及摘要校验步骤,其中,零复制步骤包括,将空间大数据文件由系统内核态的磁盘内存载入内核态的Socket缓存区域或者将空间大数据文件由内核态的Socket缓存区域载入系统内核态的磁盘内存;
文件缓存步骤包括,根据空间大数据文件的文件信息建立缓存系统,所述缓存系统包括一个或者多个顺序桶,所述顺序桶包括一个顺序链表,顺序链表用于存放副本,副本依据空间大数据文件的权重W顺序排列,所述权重W由以下方法得到:
其中,C1、C2以及C3为系数,Tmodify为顺序链表上的文件的最近写入时间,Tread为顺序链表上的文件的最近读取时间,Tcreate为顺序链表上的文件的初始创建时间,Sfile为顺序链表上的文件的大小;
摘要校验步骤包括,提取于空间大数据文件的特征段,所述特征段包括位于文件首部段落、尾部段落以及随机选取的一个或者多个段落,对特征段进行MD5校验,对校验后的特征段进行异或求和得到信息摘要;
还包括以下具体步骤:1)对空间大数据文件进行读写访问时,通过摘要校验步骤得到空间大数据文件的信息摘要,并与缓存系统内的文件的信息摘要进行比对;2)如果空间大数据文件在缓存系统内存在同样的副本,则更新副本的缓存命中信息,同时刷新副本的修改时间,更新副本的权重W,根据更新后的副本的权重W调整副本在顺序链表的链接位置,通过零复制步骤对副本进行传输;3)如果空间大数据文件在缓存系统内不存在同样的副本,则在缓存系统内建立空间大数据文件的副本,更新副本的权重W,通过零复制步骤对副本进行传输。
2.根据权利要求1所述的加速空间大数据文件读写速度的方法,其特征在于,所述步骤3)还包括以下具体步骤:建立副本时,如果缓存系统的容量超出额定最大容量,则首先通过删除副本来释放缓存系统的容量。
3.根据权利要求1所述的加速空间大数据文件读写速度的方法,其特征在于,所述零复制步骤中,通过DMA方式进行载入。
4.根据权利要求1所述的加速空间大数据文件读写速度的方法,其特征在于,所述多个顺序桶依据文件大小建立,不同大小的文件副本装入不同的顺序桶内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310382898.9A CN103412950B (zh) | 2013-08-28 | 2013-08-28 | 加速空间大数据文件读写速度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310382898.9A CN103412950B (zh) | 2013-08-28 | 2013-08-28 | 加速空间大数据文件读写速度的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103412950A CN103412950A (zh) | 2013-11-27 |
CN103412950B true CN103412950B (zh) | 2016-06-22 |
Family
ID=49605962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310382898.9A Active CN103412950B (zh) | 2013-08-28 | 2013-08-28 | 加速空间大数据文件读写速度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103412950B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810269A (zh) * | 2014-01-28 | 2014-05-21 | 浙江大学 | 一种基于大内存的地图搜索方法 |
CN104639629A (zh) * | 2015-01-30 | 2015-05-20 | 英华达(上海)科技有限公司 | 一种在客户端和云端进行文件的比较方法及比较系统 |
CN107870928A (zh) * | 2016-09-26 | 2018-04-03 | 上海泓智信息科技有限公司 | 文件读取方法和装置 |
CN108665376B (zh) * | 2018-04-06 | 2021-06-18 | 东北电力大学 | 一种空间负荷预测中确定元胞负荷最大值的核密度估计方法 |
CN110427760B (zh) * | 2019-06-28 | 2021-09-10 | 卓尔智联(武汉)研究院有限公司 | 一种数据管理方法、装置及计算机存储介质 |
CN111901377B (zh) * | 2020-06-28 | 2022-12-27 | 苏州浪潮智能科技有限公司 | 一种基于ai训练平台的文件传输方法、装置、设备和介质 |
CN111737269B (zh) * | 2020-08-26 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 数据查询响应方法、装置及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6154813A (en) * | 1997-12-23 | 2000-11-28 | Lucent Technologies Inc. | Cache management system for continuous media system |
CN101063963A (zh) * | 2006-04-26 | 2007-10-31 | 韩国电子通信研究院 | 数据零拷贝文件的移动方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3612271B2 (ja) * | 2000-09-12 | 2005-01-19 | 株式会社東芝 | ファイルシステム |
-
2013
- 2013-08-28 CN CN201310382898.9A patent/CN103412950B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6154813A (en) * | 1997-12-23 | 2000-11-28 | Lucent Technologies Inc. | Cache management system for continuous media system |
CN101063963A (zh) * | 2006-04-26 | 2007-10-31 | 韩国电子通信研究院 | 数据零拷贝文件的移动方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103412950A (zh) | 2013-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103412950B (zh) | 加速空间大数据文件读写速度的方法 | |
US11860813B2 (en) | High level instructions with lower-level assembly code style primitives within a memory appliance for accessing memory | |
US20200210385A1 (en) | File system cache tiers | |
CN104932841B (zh) | 一种云存储系统中节约型重复数据删除方法 | |
CN103136243B (zh) | 基于云存储的文件系统去重方法及装置 | |
US20220222005A1 (en) | Native key-value storage enabled distributed storage system | |
CN104462389B (zh) | 基于分级存储的分布式文件系统实现方法 | |
US20160140054A1 (en) | Method and system for determining fifo cache size | |
CN105824881B (zh) | 一种基于负载均衡的重复数据删除数据放置方法 | |
CN102143215A (zh) | 一种基于网络的pb级云存储系统及其处理方法 | |
CN107729558A (zh) | 文件系统碎片整理的方法、系统、装置及计算机存储介质 | |
CN103914522A (zh) | 一种应用于云存储重复数据删除的数据块合并方法 | |
CN106445409A (zh) | 一种分布式块存储的数据写入方法及装置 | |
US20110184909A1 (en) | Method and apparatus for random access of data stored in a sequential manner | |
Chen et al. | Low‐overhead inline deduplication for persistent memory | |
CN106959997A (zh) | 基于集群文件系统的文件处理方法和装置 | |
US10725877B2 (en) | System, method and computer program product for performing a data protection operation | |
CN112596671B (zh) | 数据存储的方法、装置、存储介质及电子设备 | |
US9646014B1 (en) | Systems and methods for selective defragmentation | |
CN107018163B (zh) | 一种资源配置方法和装置 | |
EP3106992A1 (en) | Apparatus and method for performing cache management in a storage system | |
Inupakutika et al. | Quantifying Performance Gains of GPUDirect Storage | |
US20180364943A1 (en) | Memory management architecture and system therefor | |
US11899953B1 (en) | Method of efficiently identifying rollback requests | |
US20240184476A1 (en) | Non-disruptive memory migration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |