CN104239234B - 一种高效的本地缓存管理及读写方法 - Google Patents

一种高效的本地缓存管理及读写方法 Download PDF

Info

Publication number
CN104239234B
CN104239234B CN201410538375.3A CN201410538375A CN104239234B CN 104239234 B CN104239234 B CN 104239234B CN 201410538375 A CN201410538375 A CN 201410538375A CN 104239234 B CN104239234 B CN 104239234B
Authority
CN
China
Prior art keywords
data
file
data block
local cache
reading
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
Application number
CN201410538375.3A
Other languages
English (en)
Other versions
CN104239234A (zh
Inventor
郑汝波
张士波
杨敬宇
姚键
潘柏宇
卢述奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Youku Network Technology Beijing Co Ltd
Original Assignee
1Verge Internet Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 1Verge Internet Technology Beijing Co Ltd filed Critical 1Verge Internet Technology Beijing Co Ltd
Priority to CN201410538375.3A priority Critical patent/CN104239234B/zh
Publication of CN104239234A publication Critical patent/CN104239234A/zh
Application granted granted Critical
Publication of CN104239234B publication Critical patent/CN104239234B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种高效的本地缓存管理及读写方法,将多个物理存储文件大小按照指定数值,例如128M的倍数递增的方式来创建文件可以满足长度不固定的数据块的存储,每个物理存储文件头部开辟固定大小的空间用于存储该文件包含的所有数据块的数据结构,对大数据切割成多个分片,分别对每个分片取一定长度的数据来生成MD5。本发明避免文件分布不均造成的文件碎片多,使用率低的问题,解决了占用系统资源高的问题,提高了数据加载的效率,并且极大的提高了校验效率,并能够确保整个文件的正确性。

Description

一种高效的本地缓存管理及读写方法
技术领域
本发明涉及文件管理方法,具体的,本发明涉及一种对于本地缓存文件进行高效地管理以及读写的方法。
背景技术
本地缓存数据管理是下载应用程序能否高效运行的关键环节,缓存数据管理的方式多种多样,能否建立一个高效,快捷,方便的缓存文件组织结构是在数据存储领域被广泛探讨的问题。在现有技术中,缓存数据管理的性能指标可以分为以下几点:
1.1缓存数据的读写速度是否满足业务的需求,磁盘读写(I/O)操作一直是软件性能的瓶颈之一,达到高效的读写性能的同时也必须保证读写逻辑不能占用过高的CPU性能。
1.2缓存数据的物理存储结构是否合理,缓存数据的存储形式和组织结构直接影响了数据的访问复杂程度和扩展成本。缓存数据的访问包括读写,修改,删除等操作,存储结构的定义必须兼顾所有这些访问操作。
1.3缓存数据管理是否能够最大程度的利用当前已经使用的磁盘空间。由于缓存数据的大小和单位存在多样性的特点,所以缓存管理策略既要最大程度减少小文件导致的碎片累积的问题又要防止出现大文件的切割问题。
1.4缓存数据管理是否能够保证数据的安全性和正确性。由于系统本身的缺陷或者人为方面等因素,本地缓存数据可能会被篡改,由此,缓存数据的访问涉及对数据本身校验的过程。
而现有技术中,本地缓存的管理存在如下问题:
2.1占用磁盘空间过多,缓存数据的有效利用率低
由于大数据应用的需要,缓存文件占用的磁盘空间也越来越大,所以很多应用都会选择使用多个较大物理文件来缓存数据,为了避免同一数据单元存储在多个物理文件带来的逻辑复杂度,普遍采用的方式是同一数据单元的内容都存储在同一个物理文件上,这样会导致每个物理文件尾都不能恰好被完全占用,数据单元越大,浪费的空间也会随之增加。
2.2小文件数量较多,占用系统资源较多
某些应用数据单元较小,但数量较多,这种情况会普遍采用文件夹的方式来管理,每个文件夹下面会保存数量较多的小文件来缓存数据。这种方式的优点在于文件小,磁盘浪费率低,操作方便,缺点就是小文件数量多,占用系统资源较多,影响系统的整体性能。
2.3缓存数据的校验过程冗长,效率低下
加载本地缓存数据的过程本身也是对缓存数据校验的过程,最简单有效的方式是将本地数据生成的校验数据与服务器的校验数据进行比较,以此判断本地的数据正确性。如果缓存数据总量不高可以采用该方法,反之,如果本地缓存数据较多,每块数据的校验都需要完整读取本地数据,将会导致程序加载过程冗长低效。
2.4缓存数据文件结构简单,安全性不高
缓存数据的安全性是程序能否正确运行的一个保障,所以缓存文件的存储既要保障缓存数据本身的正确性又要对数据本身进行必要的防护措施,防止恶意程序的篡改和访问。
因此,如何能够改善现有技术中本地缓存的管理以及存储缺陷,减少本地缓存所占用的系统资源,提高数据加载效率,成为现有技术亟需解决的技术问题。
发明内容
本发明的目的在于提出一种高效的本地缓存管理及读写方法,以减少本地缓存占用资源和提高数据加载效率。
为达此目的,本发明采用以下技术方案:
一种本地缓存管理及读写方法,其特征在于:将本地缓存数据的多个物理存储文件的大小按照128M的倍数递增,最大值不超过1G,数据块的存储根据数据块的长度选择最接近的文件进行存储。
优选地,所述物理存储文件的头部具有头部索引数据区,所述头部索引数据区具有固定大小的空间,用于存储所述物理存储文件所包含的所有数据块的数据结构,所述数据结构包括所述数据块的数量,数据块的大小、所述数据块存储地址和所述数据块的校验信息。
优选地,所述头部索引数据区包括缓存文件信息,以及缓存的数据块索引数据;其中所述缓存文件信息是指所述物理文件的总体信息,包括整个文件的大小,缓存的数据大小,缓存的数据块数量,数据块索引数据偏移地址,缓存数据偏移地址;所述缓存的数据块索引数据包括数据块大小,数据块偏移地址,数据MD5,数据块位图和数据块时间信息。
优选地,所述数据块时间信息包括数据块创建时间,访问时间和修改时间。
优选地,对于长度较大的文件,按照一定比例分割成多个分片,分别取每个分片的一小段数据,利用所有的一小段数据共同生成MD5值。
优选地,对于所述物理存储文件中的每个所述缓存的数据块,能够对头部一定长度范围的数据进行加密,以防该数据被其他程序利用。
优选地,在数据写入时,在每个缓存文件中查找当前要写入的数据块,如果没有找到,则通过空闲空间最接近数据块大小的原则挑选合适的物理文件,并创建新的数据块结构。如果找到则直接写入到相应的文件。
优选地,对于下载的数据块,在完整下载数据块并校验后再提交到上层应用。
优选地,对缓存的物理存储文件的总量进行限制,当下载的数据总量超过缓存的上限,需要对历史的缓存数据进行淘汰。
优选地,通过历史访问的时间,或者访问频率来挑选优先淘汰的数据,以满足当前所要存储的数据块的大小。
本发明的高效的本地缓存管理及读写方法具有如下优点:
通过物理存储文件大小按照指定数值,例如128M的倍数递增的方式来创建文件可以满足长度不固定的数据块的存储,小块数据集中存储在相对小的物理文件上,大块数据集中存储在大的物理文件上,避免文件分布不均造成的文件碎片多,使用率低的问题。同时,该存储策略能够降低单个文件存储造成的文件数量多,句柄多,占用系统资源高的问题。
每个物理存储文件头部开辟固定大小的空间用于存储该文件包含的所有数据块的数据结构,这样避免将这些数据存储在其他文件目录,方便了文件的管理,提高了数据加载的效率。
对大数据切割成多个分片,分别对每个分片取一定长度的数据来生成文件ID,由于不需要对整个文件计算MD5值,所以极大的提高了校验效率,对每个逻辑分片分别读取一定长度的数据,能够确保整个文件的正确性。
附图说明
图1是根据本发明具体实施例的本地缓存数据的存储文件的数据结构;
图2是根据本发明具体实施例的本地缓存数据的存储文件的头部索引的数据结构。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
为了尽可能的缩小不同长度的数据块导致的磁盘空间的浪费,本发明的本地缓存管理及读写方法在于,将本地缓存数据的多个物理存储文件的大小按照128M的倍数递增,最大值不超过1G,数据块的存储根据数据块的长度选择最接近的文件进行存储。即本地缓存数据的物理存储文件的大小可以依次为128M,256M,384M,512M,640M,768M,896M,1024M,所要缓存的数据块根据自身的大小,选择合适的物理存储文件进行存储。本领域技术人员均知道,物理磁盘的大小为2的N次方。由于本地缓存数据的物理存储文件的大小也=为128的N倍,这样就使得不同大小的物理存储文件能够相互组合,尽可能的实现对磁盘空间的充分利用,尽量降低不同长度的数据块可能导致的磁盘空间的浪费。通过创建长度不同的文件,可以满足长度不固定的数据块的存储,小块数据集中存储在相对小的物理文件上,大块数据集中存储在大的物理文件上,避免文件分布不均造成的文件碎片多,使用率低的问题。同时,该存储策略能够降低单个文件存储造成的文件数量多,句柄多,占用系统资源高的问题,还能
参见图1,公开了根据本发明具体实施例的本地缓存数据的存储文件的数据结构。进一步的,为了提高对物理存储文件的数据块的管理,所述物理存储文件的头部具有头部索引数据区,所述头部索引数据区的后面就存储有已经缓存的数据块。所述头部索引数据区具有固定大小的空间,用于存储所述物理存储文件所包含的所有数据块的数据结构,所述数据结构包括所述数据块的数量,数据块的大小、所述数据块存储地址和所述数据块的校验信息。因此,对于每个物理存储文件,只需要加载头部数据就能够加载各个数据块的相关信息。这样避免将这些数据存储在其他文件目录,方便了文件的管理,提高了数据加载的效率。
进一步的,参见图2,公开了根据本发明具体实施例的本地缓存数据的存储文件的头部索引数据区的具体结构,所述头部索引数据区包括缓存文件信息,以及缓存的数据块索引数据。
其中,所述缓存文件信息是指某一个物理文件的总体信息,包括整个文件的大小,缓存的数据大小,缓存的数据块数量,数据块索引数据偏移地址,缓存数据偏移地址。通过缓存文件信息可以明确文件的总大小,缓存了多少数据块,空闲空间大小,由此来确定是否可以容纳新的数据块,也可以通过该信息定位到数据块的索引数据位置和数据起始位置。
缓存的数据块索引数据是指当前物理文件已经缓存的所有数据块相关的数据结构,每个数据块都对应一个索引数据结构,为了方便表示每个数据块索引数据结构都用1,2,3,4…等编号,所述缓存的数据块索引数据主要包括数据块大小,数据块偏移地址,数据MD5,数据块位图和数据块时间信息,所述数据块时间信息包括数据块创建时间,访问时间和修改时间。通过数据块索引数据可以获得某数据块的完整度,校验数据,该数据块的数据的位置等信息。
进一步的,对于所述物理存储文件中的每个所述缓存的数据块,能够对头部一定长度范围的数据进行加密,以防数据被其他程序利用。加密长度和加密方式可以任意选择,不在本发明的限制范围之内。
上述是本发明的高校的本地缓存管理及读写方法在缓存数据文件结构方面所进行的改进,本发明还在缓存数据的访问,也就是读写方面进行了改进。
本发明将长度较大的文件,按照一定比例分割成多个分片,分别取每个分片的一小段数据,利用所有的一小段数据共同生成MD5值。例如,对于一个100M的文件,以20M为单位分成5个分片,然后取每个分片开始的50K大小的数据,即5个50K数据,利用该250K数据生成对应该100M文件的MD5值。
由于不需要对整个文件计算MD5值,这样既可提高校验的速度,又能确保整个文件的正确性。每个缓存文件的加载过程也是数据的校验过程。为了避免磁盘数据的错误导致错误数据在网络中流窜,需要对上传数据进行严格把关。对每个逻辑分片分别读取一定长度的数据,能够确保整个文件的正确性。缓存文件的头部保存已经下载完整的数据块的校验数据,每次加载一个完整的数据块都需要用该校验数据验证数据本身的正确性。
进一步的,本发明在数据写入时,在每个缓存文件中查找当前要写入的数据块,如果没有找到,则通过空闲空间最接近数据块大小的原则挑选合适的物理文件,并创建新的数据块结构。如果找到则直接写入到相应的文件。
在现有技术中,对完整下载的数据块需要进行数据校验,如果校验出错,则需要对当前的数据文件进行标记,并重新下载。为了提高程序效率,往往在数据下载过程中就会将数据提交到上层的应用,由于数据的校验发生在完整下载之后,所以提前提交的数据并不能保证数据的正确性,因此,为了提高对数据的正确性要求,本发明选择在完整下载数据块并校验后再提交到上层应用。
进一步的,本发明对缓存的物理存储文件的总量进行限制,当下载的数据总量超过缓存的上限,需要对历史的缓存数据进行淘汰。这样,能够腾出额外的空间来存储当前的数据,否则会影响程序的正常运行。
进一步优选地,本发明通过历史访问的时间,或者访问频率来挑选优先淘汰的数据,以满足当前所要存储的数据块的大小。
因此,本发明的高效的本地缓存管理及读写方法具有如下优点:
通过物理存储文件大小按照指定数值,例如128M的倍数递增的方式来创建文件可以满足长度不固定的数据块的存储,小块数据集中存储在相对小的物理文件上,大块数据集中存储在大的物理文件上,避免文件分布不均造成的文件碎片多,使用率低的问题。同时,该存储策略能够降低单个文件存储造成的文件数量多,句柄多,占用系统资源高的问题。
每个物理存储文件头部开辟固定大小的空间用于存储该文件包含的所有数据块的数据结构,这样避免将这些数据存储在其他文件目录,方便了文件的管理,提高了数据加载的效率。
对大数据切割成多个分片,分别对每个分片取一定长度的数据来生成文件ID,由于不需要对整个文件计算MD5值,所以极大的提高了校验效率,对每个逻辑分片分别读取一定长度的数据,能够确保整个文件的正确性。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单的推演或替换,都应当视为属于本发明由所提交的权利要求书确定保护范围。

Claims (10)

1.一种本地缓存管理及读写方法,其特征在于:
建立多个物理存储文件,每个文件的大小按128M字节的倍数递增,最大值不超过1G字节,数据块的存储根据数据块的长度选择最接近的文件进行存储。
2.根据权利要求1所述的本地缓存管理及读写方法,其特征在于:
所述物理存储文件的头部具有头部索引数据区,所述头部索引数据区具有固定大小的空间,用于存储所述物理存储文件所包含的所有数据块的数据结构,所述数据结构包括所述数据块的数量,数据块的大小、所述数据块存储地址和所述数据块的校验信息。
3.根据权利要求2所述的本地缓存管理及读写方法,其特征在于:
所述头部索引数据区包括缓存文件信息,以及缓存的数据块索引数据;
其中所述缓存文件信息是指所述物理文件的总体信息,包括整个文件的大小,缓存的数据大小,缓存的数据块数量,数据块索引数据偏移地址,缓存数据偏移地址;
所述缓存的数据块索引数据包括数据块大小,数据块偏移地址,数据MD5,数据块位图和数据块时间信息。
4.根据权利要求3所述的本地缓存管理及读写方法,其特征在于:
所述数据块时间信息包括数据块创建时间,访问时间和修改时间。
5.根据权利要求1-4中任意一项所述的本地缓存管理及读写方法,其特征在于:
对于长度较大的文件,按照一定比例分割成多个分片,分别取每个分片的一小段数据,利用所有的一小段数据共同生成MD5值。
6.根据权利要求5所述的本地缓存管理及读写方法,其特征在于:
对于所述物理存储文件中的每个所述缓存的数据块,能够对头部一定长度范围的数据进行加密,以防该数据被其他程序利用。
7.根据权利要求5所述的本地缓存管理及读写方法,其特征在于:
在数据写入时,在每个缓存文件中查找当前要写入的数据块,如果没有找到,则通过空闲空间最接近数据块大小的原则挑选合适的物理文件,并创建新的数据块结构,如果找到则直接写入到相应的文件。
8.根据权利要求5所述的本地缓存管理及读写方法,其特征在于:
对于下载的数据块,在完整下载数据块并校验后再提交到上层应用。
9.根据权利要求5所述的本地缓存管理及读写方法,其特征在于:
对缓存的物理存储文件的总量进行限制,当下载的数据总量超过缓存的上限,需要对历史的缓存数据进行淘汰。
10.根据权利要求9所述的本地缓存管理及读写方法,其特征在于:
通过历史访问的时间,或者访问频率来挑选优先淘汰的数据,以满足当前所要存储的数据块的大小。
CN201410538375.3A 2014-10-13 2014-10-13 一种高效的本地缓存管理及读写方法 Active CN104239234B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410538375.3A CN104239234B (zh) 2014-10-13 2014-10-13 一种高效的本地缓存管理及读写方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410538375.3A CN104239234B (zh) 2014-10-13 2014-10-13 一种高效的本地缓存管理及读写方法

Publications (2)

Publication Number Publication Date
CN104239234A CN104239234A (zh) 2014-12-24
CN104239234B true CN104239234B (zh) 2016-03-30

Family

ID=52227348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410538375.3A Active CN104239234B (zh) 2014-10-13 2014-10-13 一种高效的本地缓存管理及读写方法

Country Status (1)

Country Link
CN (1) CN104239234B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106469120A (zh) * 2016-08-30 2017-03-01 华为技术有限公司 碎片整理方法、装置及设备
CN106406756B (zh) * 2016-09-05 2019-07-09 华为技术有限公司 一种文件系统的空间分配方法及装置
CN108509592B (zh) * 2018-03-30 2022-11-29 贵阳朗玛信息技术股份有限公司 基于Redis的数据存储方法、读取方法及装置
CN108777685B (zh) * 2018-06-05 2020-06-23 京东数字科技控股有限公司 用于处理信息的方法和装置
CN109800230A (zh) * 2018-12-29 2019-05-24 亚信科技(中国)有限公司 一种内存数据库varchar字段的存储方法及装置
CN109977121B (zh) * 2019-03-27 2022-10-14 上海鸣鸾互联网科技有限公司 一种大数据快速存储系统
CN111367926A (zh) * 2020-02-27 2020-07-03 星辰天合(北京)数据科技有限公司 分布式系统的数据处理方法和装置
CN114741630A (zh) * 2021-01-07 2022-07-12 华为云计算技术有限公司 一种淘汰数据的方法、装置、缓存节点以及缓存系统
CN116541348B (zh) * 2023-03-22 2023-09-26 河北热点科技股份有限公司 数据智能存储方法及终端查询一体机

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425435A (zh) * 2012-05-15 2013-12-04 深圳市腾讯计算机系统有限公司 磁盘存储方法及磁盘存储系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425435A (zh) * 2012-05-15 2013-12-04 深圳市腾讯计算机系统有限公司 磁盘存储方法及磁盘存储系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《第三章之Hadoop分布式文件系统》;Honkcal;《http://www.cnblogs.com/honkcal/archive/2012/07/23/2604885.html》;20120723;全文 *

Also Published As

Publication number Publication date
CN104239234A (zh) 2014-12-24

Similar Documents

Publication Publication Date Title
CN104239234B (zh) 一种高效的本地缓存管理及读写方法
US11385840B2 (en) Multi-tiered data storage with archival blockchains
US8347050B2 (en) Append-based shared persistent storage
US10296239B1 (en) Object-based commands with quality of service identifiers
CN107967124B (zh) 一种分布式持久性内存存储系统及方法
CN105339904B (zh) 用于存储和检索数据的方法和系统
CN106708425B (zh) 分布式多模存储管理
TWI737395B (zh) 日誌結構儲存系統及方法
EP2735978B1 (en) Storage system and management method used for metadata of cluster file system
US10331641B2 (en) Hash database configuration method and apparatus
CN104765575B (zh) 信息存储处理方法
US20200125286A1 (en) Fragment Management Method and Fragment Management Apparatus
TW202117529A (zh) 日誌結構儲存系統
TW202111585A (zh) 日誌結構儲存系統
US10394452B2 (en) Selecting pages implementing leaf nodes and internal nodes of a data set index for reuse
CN111183420A (zh) 日志结构存储系统
CN111886591A (zh) 日志结构存储系统
CN103929500A (zh) 一种分布式存储系统的数据分片方法
TW202113580A (zh) 日誌結構儲存系統
CN107832423B (zh) 一种用于分布式文件系统的文件读写方法
CN111295649A (zh) 日志结构存储系统
CN104765574A (zh) 数据云端存储方法
CA2893304A1 (en) Data storage method, data storage apparatus, and storage device
CN107153512B (zh) 一种数据迁移方法和装置
CN103605630A (zh) 一种虚拟服务器系统及其数据读写方法

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
CP01 Change in the name or title of a patent holder

Address after: 100080 Beijing Haidian District city Haidian street A Sinosteel International Plaza No. 8 block 5 layer A, C

Patentee after: Youku network technology (Beijing) Co.,Ltd.

Address before: 100080 Beijing Haidian District city Haidian street A Sinosteel International Plaza No. 8 block 5 layer A, C

Patentee before: 1VERGE INTERNET TECHNOLOGY (BEIJING) Co.,Ltd.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20200319

Address after: 310005 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Alibaba (China) Co.,Ltd.

Address before: 100080 Beijing Haidian District city Haidian street A Sinosteel International Plaza No. 8 block 5 layer A, C

Patentee before: Youku network technology (Beijing) Co.,Ltd.

TR01 Transfer of patent right