CN103442000B - Web缓存置换方法及装置、http代理服务器 - Google Patents
Web缓存置换方法及装置、http代理服务器 Download PDFInfo
- Publication number
- CN103442000B CN103442000B CN201310370226.6A CN201310370226A CN103442000B CN 103442000 B CN103442000 B CN 103442000B CN 201310370226 A CN201310370226 A CN 201310370226A CN 103442000 B CN103442000 B CN 103442000B
- Authority
- CN
- China
- Prior art keywords
- subspaces
- file
- directory
- subspace
- cached
- 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 35
- 238000003860 storage Methods 0.000 claims abstract description 60
- 238000006243 chemical reaction Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 10
- 238000005192 partition Methods 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 7
- 238000000638 solvent extraction Methods 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 2
- 238000012217 deletion Methods 0.000 abstract description 25
- 230000037430 deletion Effects 0.000 abstract description 25
- 238000005516 engineering process Methods 0.000 abstract description 7
- 230000009467 reduction Effects 0.000 abstract description 3
- 230000007246 mechanism Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 229910002056 binary alloy Inorganic materials 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种WEB缓存置换方法及装置、HTTP代理服务器,用以解决现有的WEB缓存置换技术中存在删除操作的效率低下、降低缓存性能的问题。在本发明实施例中,HTTP代理服务器将缓存空间划分为至少两个子空间,将文件按照时间顺序依次存储到缓存空间的子空间中,并且在当前子空间不具备空闲存储空间后将另一子空间作为新的当前子空间,在子空间都存储满后,将最先存储满的子空间的全部文件删除掉,能够在保证缓存命中率的情况下实现批量删除文件,能够显著提高WEB缓存置换的删除操作的效率,对缓存性能的降低影响较小,从而能够解决现有的WEB缓存置换技术中所存在的删除操作的效率低下、降低缓存性能的问题。
Description
技术领域
本发明涉及网络通信系统,具体地,涉及一种WEB缓存置换方法及装置、超文本传输协议(HTTP,Hyper Text Transfer Protocol)代理服务器。
背景技术
普通的HTTP访问过程是一个典型的客户机与服务器模型,如图1所示,用户利用计算机上的客户端程序例如浏览器发出请求,远端WEB服务器程序响应请求并提供相应的数据,HTTP代理服务器处于客户机与WEB服务器之间,进行请求和数据的转发,对于WEB服务器来说,HTTP代理服务器是客户机,HTTP代理服务器将来自客户机的请求转发给WEB服务器,WEB服务器响应该请求;对于客户机来说,HTTP代理服务器是WEB服务器,它接受客户机的请求,并将WEB服务器上传来的数据转给客户机。
WEB缓存是一种HTTP应用加速技术,HTTP代理服务器将客户机访问的可以缓存的内容存储下来,这样其他用户再次访问相同内容时,HTTP代理服务器就可以将所存储的内容发送给所请求的客户机,不用跨广域网(WAN,Wide Area Network)向服务器去获取,大大缩短了页面访问的时间,达到加速的效果。
当HTTP代理服务器中存储的内容达到空间上限时,需要替换掉旧的内容,填充新内容,以完成内容的更替,也即缓存置换。
缓存内容被置换掉,理论上是会对缓存命中率产生影响,缓存命中率=缓存命中的数量/客户端请求数量,该指标体现WEB缓存对减少HTTP代理服务器负载的贡献程度。缓存命中率越高,说明对WEB服务器的请求越少,缓存的贡献程度越大。根据网上的使用经验,一般缓存命中率能在30%~60%之间。
目前,有多种缓存置换的方法,例如:最近最少使用(LRU,Least RecentlyUsed)算法、最近访问频率最少(LFU,Least Frequently Used)算法等等。这些算法都确保所删除置换掉的内容不是当前的热点内容即请求较多的内容。
但是,在这些算法中,在具体删除掉操作中,均是根据算法所维护的文件信息,在存储器中定位待删除的文件,再逐个删除待删除的文件,也即删除操作是逐一删除的方法,这样就造成删除操作的效率即为低下,较为显著地降低了缓存的性能,根据工程实践的证明,在删除操作的过程中,缓存的吞吐性能会下降30%~50%。
可见,现有的WEB缓存置换技术中存在删除操作的效率低下、降低缓存性能的问题。
发明内容
有鉴于此,本发明实施例提供了一种WEB缓存置换方法及装置、HTTP代理服务器,用以解决现有的WEB缓存置换技术中存在删除操作的效率低下、降低缓存性能的问题。
本发明实施例技术方案如下:
一种WEB缓存置换方法,包括:HTTP代理服务器将缓存空间划分为至少两个子空间,每个子空间包括Ni个目录,其中,N为预定的N进制计数的基数,i为预定的大于或等于2的自然数,并对每个子空间中的目录进行N进制的顺序编号;对待缓存的文件按照预定的命名规则对该文件的统一资源定位符(URL,Uniform Resource Locator)地址进行转换命名,得到所述预定的N进制的至少包括i位的文件名;在待缓存的文件的文件名中确定预定数位起的i个数位的数值,在当前子空间中确定目录编号与所述i个数位的数值相同的目录,将该待缓存的文件存储到所确定的目录中;并且,在当前子空间不具备空闲存储空间后将另一子空间作为新的当前子空间;在全部的子空间都存储满后,将最先存储满的子空间中的文件删除掉。
其中,根据如下公式确定所述子空间的数量为:T=D/(X*Y),其中,T为子空间的数量,X为预定的子空间占缓存空间容量的最大比率,Y为预定的文件存储天数,D为预定的缓存空间中的全部文件置换一次的天数;D=S/(M*L*(U-V)),其中,S为缓存空间的容量,M为WEB客户机的数量,L为每个WEB客户机每天的访问流量,U为预定的向WEB服务器请求访问的流量中可被缓存的流量的比率,V为预定的缓存命中率。
具体地,将缓存空间划分为至少两个子空间,具体包括:将缓存空间平均划分为至少两个子空间;或者,按照预定的子空间之间的容量比例将缓存空间划分为至少两个子空间;其中,预定的子空间之间的容量比例中包括预定的子空间占缓存空间容量的最大比率,则,当前子空间为当前存储容量最小的子空间。
具体地,对待缓存的文件按照预定的命名规则对该文件的URL地址进行转换命名,具体包括:在N为十六进制的基数的情况下,对待缓存的文件的URL地址进行MD5校验,得到十六进制文件名;或者,在N为二进制的基数的情况下,对待缓存的文件的URL地址的每个字符转换为二进制的美国新型交互标准码(ASCII,American Standard Code for Information Interchange),得到二进制文件名。
优选地,所述方法还包括:将每个子空间划分为两级子目录,一级子目录包括N个目录,每个一级目录包括Ni-j个二级目录,其中,j为小于i的自然数;则,
在当前子空间中确定目录编号与所述i个数位的数值相同的目录,将该待缓存的文件存储到所确定的目录中,具体包括:在当前子空间的一级目录中确定目录编号为与所述i个数位的第一位至第j位的数值相同的一级目录,在所确定的一级目录的二级目录中确定目录编号为与所述i个数位的第j+1位至第i位的数值相同的二级目录;将所述待缓存的文件存储到所确定的二级目录中。
一种WEB缓存置换装置,包括:缓存划分模块,用于将缓存空间划分为至少两个子空间,每个子空间包括Ni个目录,其中,N为预定的N进制计数的基数,i为预定的大于或等于2的自然数,并对每个子空间中的目录进行N进制的顺序编号;转换命名模块,用于对待缓存的文件按照预定的命名规则对该文件的URL地址进行转换命名,得到所述预定的N进制的至少包括i位的文件名;存储模块,用于在待缓存的文件的文件名中确定预定数位起的i个数位的数值,在当前子空间中确定目录编号与所述i个数位的数值相同的目录,将该待缓存的文件存储到所确定的目录中;并且,在当前子空间不具备空闲存储空间后将另一子空间作为新的当前子空间;置换删除模块,用于在全部的子空间都存储满后,将最先存储满的子空间中的文件删除掉。
其中,缓存划分模块将缓存空间划分为至少两个子空间,具体用于:根据如下公式进行确定子空间的数量:T=D/(X*Y),其中,T为子空间的数量,X为预定的子空间占缓存空间容量的最大比率,Y为预定的文件存储天数,D为预定的缓存空间中的全部文件置换一次的天数;D=S/(M*L*(U-V)),其中,S为缓存空间的容量,M为WEB客户机的数量,L为每个WEB客户机每天的访问流量,U为预定的向WEB服务器请求访问的流量中可被缓存的流量的比率,V为预定的缓存命中率。
具体地,缓存划分模块将缓存空间划分为至少两个子空间,具体用于:将缓存空间平均划分为至少两个子空间;或者,按照预定的子空间之间的容量比例将缓存空间划分为至少两个子空间;其中,预定的子空间之间的容量比例中包括预定的子空间占缓存空间容量的最大比率,则,当前子空间为当前存储容量最小的子空间。
具体地,转换命名模块,对待缓存的文件按照预定的命名规则对该文件的URL地址进行转换命名,具体用于:在N为十六进制的基数的情况下,对待缓存的文件的URL地址进行MD5校验,得到十六进制文件名;或者,在N为二进制的基数的情况下,对待缓存的文件的URL地址的每个字符转换为二进制的ASCII码,得到二进制文件名。
优选地,缓存划分模块还用于:将每个子空间划分为两级子目录,一级子目录包括N个目录,每个一级目录包括Ni-j个二级目录,其中,j为小于i的自然数;则,存储模块在当前子空间中确定目录编号与所述i个数位的数值相同的目录,将该待缓存的文件存储到所确定的目录中,具体用于:在当前子空间的一级目录中确定目录编号为与所述i个数位的第一位至第j位的数值相同的一级目录,在所确定的一级目录的二级目录中确定目录编号为与所述i个数位的第j+1位至第i位的数值相同的二级目录;将所述待缓存的文件存储到所确定的二级目录中。
一种HTTP代理服务器,包括如上所述的WEB缓存置换装置。
根据本发明实施例的技术方案,HTTP代理服务器将缓存空间划分为至少两个子空间,每个子空间包括Ni个目录,其中,N为预定的N进制计数的基数,i为预定的大于或等于2的自然数,并对每个子空间中的目录进行N进制的顺序编号;对待缓存的文件按照预定的命名规则对该文件的URL地址进行转换命名,得到所述预定的N进制的至少包括i位的文件名;在待缓存的文件的文件名中确定预定数位起的i个数位的数值,在当前子空间中确定目录编号与所述i个数位的数值相同的目录,将该待缓存的文件存储到所确定的目录中;并且,在当前子空间不具备空闲存储空间后将另一子空间作为新的当前子空间;在全部的子空间都存储满后,将最先存储满的子空间中的文件删除掉;也即,将文件按照时间顺序依次存储到缓存空间的子空间中,并且在当前子空间不具备空闲存储空间后将另一子空间作为新的当前子空间,在子空间都存储满后,将最先存储满的子空间的全部文件删除掉,由于最先存储满的子空间中的文件被请求获取的可能性较小,从而能够在保证缓存命中率的情况下实现批量删除文件,相比于现有技术中通过逐一定位和逐一删除待删除的文件的方式来实现WEB缓存置换的删除操作,能够显著提高WEB缓存置换的删除操作的效率,对缓存性能的降低影响较小,从而能够解决现有的WEB缓存置换技术中所存在的删除操作的效率低下、降低缓存性能的问题。
并且,将缓存空间的每个子空间划分为Ni个目录,对待缓存的文件的URL地址进行转换命名,得到所述预定的N进制的至少包括i位的文件名,将待缓存的文件根据文件名和子空间的目录编号进行对应存储,由于URL地址中的字符具有随机性,转换命名得到文件名中的字符也相应地具有随机性,从而在对应存储后,子空间中的文件存储状态呈离散分布状态,有利于操作系统快速定位文件,并且,随着存储的文件的数量增多,操作系统定位文件的速度也不会有明显下降。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
图1为HTTP访问过程的模型示意图;
图2为本发明实施例提供的WEB缓存置换方法的工作流程图;
图3为本发明实施例提供的WEB缓存置换装置的结构框图。
具体实施方式
以下结合附图对本发明的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定本发明。
针对现有的WEB缓存置换技术中所存在的删除操作的效率低下、降低缓存性能的问题,本发明实施例提供了一种WEB缓存置换的方法及装置、HTTP,代理服务器,用以解决该问题。
在本发明实施例的技术方案提出了两种存储机制和一种删除机制,两种存储机制包括缓存分区存储和名称对应存储,删除机制为批量删除机制。
分区存储机制包括:将缓存空间划分为至少两个子空间,将文件按照时间顺序依次存储到缓存空间的子空间中,并且在当前子空间不具备空闲存储空间后将另一子空间作为新的当前子空间;名称对应存储机制包括:将缓存空间的每个子空间划分为Ni个目录,对待缓存的文件的URL地址进行转换命名,得到所述预定的N进制的至少包括i位的文件名,将待缓存的文件根据文件名和子空间的目录编号进行对应存储;批量删除机制包括:在子空间都存储满后,将最先存储满的子空间的全部文件删除掉。
通过分区存储机制和批量删除机制,最先存储满的子空间中的文件被请求获取的可能性较小,从而能够在保证缓存命中率的情况下实现批量删除文件,相比于现有技术中通过逐一定位和逐一删除待删除的文件的方式来实现WEB缓存置换的删除操作,能够显著提高WEB缓存置换的删除操作的效率,对缓存性能的降低影响较小,从而能够解决现有的WEB缓存置换技术中所存在的删除操作的效率低下、降低缓存性能的问题。
通过名称对应存储机制,由于URL地址中的字符具有随机性,转换命名得到文件名中的字符也相应地具有随机性,从而在对应存储后,子空间中的文件存储状态呈离散分布状态,有利于操作系统快速定位文件,并且,随着存储的文件的数量增多,操作系统定位文件的速度也不会有明显下降。
下面对本发明实施例的技术方案进行详细说明。
图2示出了本发明实施例提供的WEB缓存置换方法的工作流程图,该方法包括:
步骤201、HTTP代理服务器将缓存空间划分为至少两个子空间,每个子空间包括Ni个目录,其中,N为预定的N进制计数的基数,i为预定的大于或等于2的自然数,并对每个子空间中的目录进行N进制的顺序编号;
下面具体描述本发明实施例提供的缓存分区存储机制:
(1)、具体地,子空间的数量可以根据如下公式进行确定:
T=D/(X*Y),其中,T为子空间的数量,X为预定的子空间占缓存空间容量的最大比率,Y为预定的文件存储天数,D为预定的缓存空间中的全部文件置换一次的天数;D=S/(M*L*(U-V)),其中,S为缓存空间的容量,M为WEB客户机的数量,L为每个WEB客户机每天的访问流量,U为预定的向WEB服务器请求访问的流量中可被缓存的流量的比率,V为预定的缓存命中率;其中,由于本发明实施例所提出的对缓存空间中的文件的删除原则为批量删除,则在具体应用中,对于预定的子空间占缓存空间容量的最大比率X的设定,应当尽可能地保证缓存空间中所删除的文件不会降低缓存命中率、也不会太频繁地执行删除操作、影响系统性能,例如,根据实际经验,X可以设置为20%;
例如,缓存空间的容量S为1T,WEB客户机的数量M为500,每个WEB客户机每天的访问流量为50M,预定的向WEB服务器请求访问的流量中可被缓存的流量的比率U为60%,预定的缓存命中率V为30%,则,D=120天;预定的子空间占缓存空间容量的最大比率X为20%,预定的文件存储天数Y为30天,则,T=20;
(2)、进一步地,将缓存空间划分为至少两个子空间的操作,可以通过至少以下两种方式的其中之一实现:
方式一、将缓存空间平均划分为至少两个子空间,优选地,平均地划分为T个子空间;
方式二、按照预定的子空间之间的容量比例将缓存空间划分为至少两个子空间,预定的子空间之间的容量比例中包括预定的子空间占缓存空间容量的最大比率,例如,预定的子空间的容量比例为20%:20%:15%:15%:10%:10%:5%:5%,其中,20%为预定的子空间占缓存空间容量的最大比率,则,根据该比例可以将缓存空间划分为8个子空间;上面只是为了便于描述给出了一个子空间之间的容量比例的例子,在具体应用中,应当综合考虑缓存命中率和系统性能,尽可能地保证缓存空间中所删除的文件不会降低缓存命中率、也不会太频繁地执行删除操作、影响系统性能,从而综合考虑设置子空间之间的容量比例;
根据上述方式一或方式二划分存储空间,由于规定了子空间占缓存空间容量的最大比率,则,后期的步骤204中删除最先存储满的子空间中的文件操作不会删除超过缓存空间中超过该最大比率对应的容量的文件,使得缓存空间中保留缓存时间较晚的文件,该部分文件是WEB客户机请求获取的可能性较大的文件,从而不会降低缓存命中率,使得缓存命中率维持在较高水平上;
(3)、设置每个子空间的所包括的Ni个目录时,N和i的取值可以根据具体应用场景的需要而设定,例如,N为十六进制的基数,i为3,则,每个子空间中包括163=4096个目录,如果N为二进制的基数,i为20,则每个子空间中包括220=1048576个目录;还可以根据具体场景的需要设置N和i为其它取值;
步骤202、对待缓存的文件按照预定的命名规则对该文件的URL地址进行转换命名,得到所述预定的N进制的至少包括i位的文件名;
其中,预定的命名规则可以根据具体应用场景的需要而设定,例如,可以根据以下两种方式的其中之一来进行转换命名:
方式一、在N为十六进制的基数的情况下,对待缓存的文件的URL地址进行MD5校验,得到十六进制文件名,MD5校验的结果为32位的十六进制数码,也即转换命名得到的文件名中包括至少i=3位的数码;
方式二、在N为二进制的基数的情况下,对待缓存的文件的URL地址的每个字符转换为ASCII码,得到二进制文件名,通常URL地址的字符超过10个,且将每个ASCII码字符包括8个二进制字符,则,每个转换命名得到的文件名中包括至少i=20位的数码;
可以理解的是,根据具体场景的需要,还可以通过其它的方式来实现对待缓存的文件的URL地址进行转换命名;
步骤203、在待缓存的文件的文件名中确定预定数位起的i个数位的数值,在当前子空间中确定目录编号与所述i个数位的数值相同的目录,将该待缓存的文件存储到所确定的目录中;并且,在当前子空间不具备空闲存储空间后将另一子空间作为新的当前子空间;
下面具体描述本发明实施例提供的名称对应存储机制:
例如,在N为十六进制的基数的情况下,每个子空间中包括163=4096个目录,在待缓存的文件的文件名中确定从左至右顺序的第一位起的3个数位的数值,例如为A3F,则在当前子空间中确定编号为A3F的目录,将待缓存的文件存储到该目录中;
又例如,在为二进制的基数的情况下,每个子空间中包括220=1048576个目录,在待缓存的文件的文件名中确定从右至左顺序的第一位起的20个数位的数值,例如为11001011100010101001,则在当前子空间中确定编号为11001011100010101001的目录,将待缓存的文件存储到该目录中;
在实际应用的过程中,可能会发生两个文件转换命名后的文件名一样的情况,这样可以将这两个文件都存储到同一个子目录中;并且,在当前子空间存储满后再存储另一子空间;
另一方面,根据上述步骤201中划分子空间的方式不同,在将缓存空间平均划分为至少两个子空间的情况下,每个子空间的容量是相同的,则可以任选一个子空间为当前子空间,或者依次选择一个子空间为当前子空间;在按照预定的子空间之间的容量比例将缓存空间划分为至少两个子空间的情况下,可以选择当前存储容量最小的子空间为当前子空间,这样,在后续步骤204中每次删除最先存储满的子空间的文件时,能够在缓存空间中保留更多缓存时间较晚的文件,从而进一步提供缓存命中率;
步骤204、在全部的子空间都存储满后,将最先存储满的子空间中的文件删除掉。
步骤204描述的即为本发明实施例提供的批量删除机制。
通过上述处理过程,通过分区存储机制和批量删除机制,最先存储满的子空间中的文件被请求获取的可能性较小,从而能够在保证缓存命中率的情况下实现批量删除文件,相比于现有技术中通过逐一定位和逐一删除待删除的文件的方式来实现WEB缓存置换的删除操作,能够显著提高WEB缓存置换的删除操作的效率,对缓存性能的降低影响较小,从而能够解决现有的WEB缓存置换技术中所存在的删除操作的效率低下、降低缓存性能的问题。
通过名称对应存储机制,由于URL地址中的字符具有随机性,转换命名得到文件名中的字符也相应地具有随机性,从而在对应存储后,子空间中的文件存储状态呈离散分布状态,有利于操作系统快速定位文件,并且,随着存储的文件的数量增多,操作系统定位文件的速度也不会有明显下降。
更进一步地,本发明实施例还对上述步骤201中在子空间中设置目录的方法进行了改进,具体包括:
将每个子空间划分为两级子目录,一级子目录包括N个目录,每个一级目录包括Ni-j个二级目录,其中,j为小于i的自然数;
这样就将每个子空间分成了二级目录树的结构,例如N为十六进制的基数、i=3的情况下,一级目录中包括16个目录,一级目录编号为0~F,每个一级目录中包括256个目录,二级目录的编号为00~FF;
则,步骤203中,在当前子空间中确定目录编号与所述i个数位的数值相同的目录,将该待缓存的文件存储到所确定的目录中,具体包括:
在当前子空间的一级目录中确定目录编号为与所述i个数位的第一位至第j位的数值相同的一级目录,在所确定的一级目录的二级目录中确定目录编号为与所述i个数位的第j+1位至第i位的数值相同的二级目录;将所述待缓存的文件存储到所确定的二级目录中。
通过上述方式将子空间划分为二级目录树的结构,能够有利于操作系统更为快速地定位到文件。
基于相同的发明构思,本发明实施例还提供了一种WEB缓存置换装置,该装置位于HTTP代理服务器中。
图3示出了本发明实施例提供的WEB缓存置换装置的结构框图,该装置包括:
缓存划分模块31,用于将缓存空间划分为至少两个子空间,每个子空间包括Ni个目录,其中,N为预定的N进制计数的基数,i为预定的大于或等于2的自然数,并对每个子空间中的目录进行N进制的顺序编号;
具体地,缓存划分模块31根据如下公式进行确定子空间的数量:T=D/(X*Y),其中,T为子空间的数量,X为预定的子空间占缓存空间容量的最大比率,Y为预定的文件存储天数,D为预定的缓存空间中的全部文件置换一次的天数;D=S/(M*L*(U-V)),其中,S为缓存空间的容量,M为WEB客户机的数量,L为每个WEB客户机每天的访问流量,U为预定的向WEB服务器请求访问的流量中可被缓存的流量的比率,V为预定的缓存命中率;
缓存划分模块31将缓存空间划分为至少两个子空间,具体用于:将缓存空间平均划分为至少两个子空间;或者,按照预定的子空间之间的容量比例将缓存空间划分为至少两个子空间;其中,预定的子空间之间的容量比例中包括预定的子空间占缓存空间容量的最大比率,则,当前子空间为当前存储容量最小的子空间;
转换命名模块32,用于对待缓存的文件按照预定的命名规则对该文件的URL地址进行转换命名,得到所述预定的N进制的至少包括i位的文件名;
转换命名模块32,对待缓存的文件按照预定的命名规则对该文件的URL地址进行转换命名,具体用于:在N为十六进制的基数的情况下,对待缓存的文件的URL地址进行MD5校验,得到十六进制文件名;或者,在N为二进制的基数的情况下,对待缓存的文件的URL地址的每个字符转换为二进制的ASCII码,得到二进制文件名;
存储模块33,连接至缓存划分模块31和转换命名模块32,用于在转换命名模块32转换得到的待缓存的文件的文件名中确定预定数位起的i个数位的数值,在缓存划分模块31划分得到的当前子空间中确定目录编号与所述i个数位的数值相同的目录,将该待缓存的文件存储到所确定的目录中;并且,在当前子空间不具备空闲存储空间后将另一子空间作为新的当前子空间;
置换删除模块34,连接至存储模块33,用于在存储模块33将全部的子空间都存储满后,将最先存储满的子空间中的文件删除掉。
优选地,缓存划分模块31还用于:将每个子空间划分为两级子目录,一级子目录包括N个目录,每个一级目录包括Ni-j个二级目录,其中,j为小于i的自然数;则,
存储模块33在当前子空间中确定目录编号与所述i个数位的数值相同的目录,将该待缓存的文件存储到所确定的目录中,具体用于:在当前子空间的一级目录中确定目录编号为与所述i个数位的第一位至第j位的数值相同的一级目录,在所确定的一级目录的二级目录中确定目录编号为与所述i个数位的第j+1位至第i位的数值相同的二级目录;将所述待缓存的文件存储到所确定的二级目录中。
通过图3所示的装置,将文件按照时间顺序依次存储到缓存空间的子空间中,并且在一个子空间存储完后再将待存储的文件存储另一个子空间,在子空间都存储满后,将最先存储满的子空间的全部文件删除掉,由于最先存储满的子空间中的文件被请求获取的可能性较小,从而能够在保证缓存命中率的情况下实现批量删除文件,相比于现有技术中通过逐一定位和逐一删除待删除的文件的方式来实现WEB缓存置换的删除操作,能够显著提高WEB缓存置换的删除操作的效率,对缓存性能的降低影响较小,从而能够解决现有的WEB缓存置换技术中所存在的删除操作的效率低下、降低缓存性能的问题。
并且,将缓存空间的每个子空间划分为Ni个目录,对待缓存的文件的URL地址进行转换命名,得到所述预定的N进制的至少包括i位的文件名,将待缓存的文件根据文件名和子空间的目录编号进行对应存储,由于URL地址中的字符具有随机性,转换命名得到文件名中的字符也相应地具有随机性,从而在对应存储后,子空间中的文件存储状态呈离散分布状态,有利于操作系统快速定位文件,并且,随着存储的文件的数量增多,操作系统定位文件的速度也不会有明显下降。
基于相同的发明构思,本发明实施例还提供了一种HTTP代理服务器,该HTTP代理服务器包括如图3所示的WEB缓存置换装置。
综上所述,通过本发明实施例提供的分区存储机制和批量删除机制,最先存储满的子空间中的文件被请求获取的可能性较小,从而能够在保证缓存命中率的情况下实现批量删除文件,相比于现有技术中通过逐一定位和逐一删除待删除的文件的方式来实现WEB缓存置换的删除操作,能够显著提高WEB缓存置换的删除操作的效率,对缓存性能的降低影响较小,从而能够解决现有的WEB缓存置换技术中所存在的删除操作的效率低下、降低缓存性能的问题。
根据本发明实施例提供的名称对应存储机制,由于URL地址中的字符具有随机性,转换命名得到文件名中的字符也相应地具有随机性,从而在对应存储后,子空间中的文件存储状态呈离散分布状态,有利于操作系统快速定位文件,并且,随着存储的文件的数量增多,操作系统定位文件的速度也不会有明显下降。
本领域普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (11)
1.一种WEB缓存置换方法,其特征在于,包括:
超文本传输协议HTTP代理服务器将缓存空间划分为至少两个子空间,每个子空间包括Ni个目录,其中,N为预定的N进制计数的基数,i为预定的大于或等于2的自然数,并对每个子空间中的目录进行N进制的顺序编号;
对待缓存的文件按照预定的命名规则对该文件的统一定位符URL地址进行转换命名,得到所述预定的N进制的至少包括i位的文件名;
在待缓存的文件的文件名中确定预定数位起的i个数位的数值,在当前子空间中确定目录编号与所述i个数位的数值相同的目录,将该待缓存的文件存储到所确定的目录中;并且,在当前子空间不具备空闲存储空间后将另一子空间作为新的当前子空间;
在全部的子空间都存储满后,将最先存储满的子空间中的文件删除掉。
2.根据权利要求1所述的方法,其特征在于,根据如下公式确定所述子空间的数量为:
T=D/(X*Y),其中,T为子空间的数量,X为预定的子空间占缓存空间容量的最大比率,Y为预定的文件存储天数,D为预定的缓存空间中的全部文件置换一次的天数;
D=S/(M*L*(U-V)),其中,S为缓存空间的容量,M为WEB客户机的数量,L为每个WEB客户机每天的访问流量,U为预定的向WEB服务器请求访问的流量中可被缓存的流量的比率,V为预定的缓存命中率。
3.根据权利要求1或2所述的方法,其特征在于,将缓存空间划分为至少两个子空间,具体包括:
将缓存空间平均划分为至少两个子空间;或者,
按照预定的子空间之间的容量比例将缓存空间划分为至少两个子空间;其中,预定的子空间之间的容量比例中包括预定的子空间占缓存空间容量的最大比率,则,当前子空间为当前存储容量最小的子空间。
4.根据权利要求1所述的方法,其特征在于,对待缓存的文件按照预定的命名规则对该文件的URL地址进行转换命名,具体包括:
在N为十六进制的基数的情况下,对待缓存的文件的URL地址进行MD5校验,得到十六进制文件名;或者,
在N为二进制的基数的情况下,对待缓存的文件的URL地址的每个字符转换为二进制的ASCII码,得到二进制文件名。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将每个子空间划分为两级子目录,一级子目录包括N个目录,每个一级目录包括Ni-j个二级目录,其中,j为小于i的自然数;则,
在当前子空间中确定目录编号与所述i个数位的数值相同的目录,将该待缓存的文件存储到所确定的目录中,具体包括:
在当前子空间的一级目录中确定目录编号为与所述i个数位的第一位至第j位的数值相同的一级目录,在所确定的一级目录的二级目录中确定目录编号为与所述i个数位的第j+1位至第i位的数值相同的二级目录;
将所述待缓存的文件存储到所确定的二级目录中。
6.一种WEB缓存置换装置,其特征在于,包括:
缓存划分模块,用于将缓存空间划分为至少两个子空间,每个子空间包括Ni个目录,其中,N为预定的N进制计数的基数,i为预定的大于或等于2的自然数,并对每个子空间中的目录进行N进制的顺序编号;
转换命名模块,用于对待缓存的文件按照预定的命名规则对该文件的统一定位符URL地址进行转换命名,得到所述预定的N进制的至少包括i位的文件名;
存储模块,用于在待缓存的文件的文件名中确定预定数位起的i个数位的数值,在当前子空间中确定目录编号与所述i个数位的数值相同的目录,将该待缓存的文件存储到所确定的目录中;并且,在当前子空间不具备空闲存储空间后将另一子空间作为新的当前子空间;
置换删除模块,用于在全部的子空间都存储满后,将最先存储满的子空间中的文件删除掉。
7.根据权利要求6所述的装置,其特征在于,缓存划分模块将缓存空间划分为至少两个子空间,具体用于:
根据如下公式进行确定子空间的数量:T=D/(X*Y),其中,T为子空间的数量,X为预定的子空间占缓存空间容量的最大比率,Y为预定的文件存储天数,D为预定的缓存空间中的全部文件置换一次的天数;
D=S/(M*L*(U-V)),其中,S为缓存空间的容量,M为WEB客户机的数量,L为每个WEB客户机每天的访问流量,U为预定的向WEB服务器请求访问的流量中可被缓存的流量的比率,V为预定的缓存命中率。
8.根据权利要求6或7所述的装置,其特征在于,缓存划分模块将缓存空间划分为至少两个子空间,具体用于:
将缓存空间平均划分为至少两个子空间;或者,
按照预定的子空间之间的容量比例将缓存空间划分为至少两个子空间;其中,预定的子空间之间的容量比例中包括预定的子空间占缓存空间容量的最大比率,则,当前子空间为当前存储容量最小的子空间。
9.根据权利要求6所述的装置,其特征在于,转换命名模块,对待缓存的文件按照预定的命名规则对该文件的URL地址进行转换命名,具体用于:
在N为十六进制的基数的情况下,对待缓存的文件的URL地址进行MD5校验,得到十六进制文件名;或者,
在N为二进制的基数的情况下,对待缓存的文件的URL地址的每个字符转换为二进制的ASCII码,得到二进制文件名。
10.根据权利要求6所述的装置,其特征在于,缓存划分模块还用于:将每个子空间划分为两级子目录,一级子目录包括N个目录,每个一级目录包括Ni-j个二级目录,其中,j为小于i的自然数;则,
存储模块在当前子空间中确定目录编号与所述i个数位的数值相同的目录,将该待缓存的文件存储到所确定的目录中,具体用于:在当前子空间的一级目录中确定目录编号为与所述i个数位的第一位至第j位的数值相同的一级目录,在所确定的一级目录的二级目录中确定目录编号为与所述i个数位的第j+1位至第i位的数值相同的二级目录;
将所述待缓存的文件存储到所确定的二级目录中。
11.一种超文本传输协议HTTP代理服务器,其特征在于,包括如权利要求6~10中任一项所述的WEB缓存置换装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310370226.6A CN103442000B (zh) | 2013-08-22 | 2013-08-22 | Web缓存置换方法及装置、http代理服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310370226.6A CN103442000B (zh) | 2013-08-22 | 2013-08-22 | Web缓存置换方法及装置、http代理服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103442000A CN103442000A (zh) | 2013-12-11 |
CN103442000B true CN103442000B (zh) | 2016-08-10 |
Family
ID=49695665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310370226.6A Active CN103442000B (zh) | 2013-08-22 | 2013-08-22 | Web缓存置换方法及装置、http代理服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103442000B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905439A (zh) * | 2014-03-25 | 2014-07-02 | 重庆邮电大学 | 一种基于家庭网关的加速网页浏览方法 |
CN109325001B (zh) * | 2018-08-20 | 2021-06-29 | 郑州云海信息技术有限公司 | 基于元数据服务器删除小文件的方法、装置及设备 |
CN112558868B (zh) * | 2020-12-07 | 2024-04-09 | 炬芯科技股份有限公司 | 一种配置数据存储的方法和装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7155560B2 (en) * | 2001-06-27 | 2006-12-26 | Intel Corporation | Method and apparatus for storing data in flash memory |
CN101287107A (zh) * | 2008-05-29 | 2008-10-15 | 腾讯科技(深圳)有限公司 | 媒体文件的点播方法、系统和设备 |
CN101320353A (zh) * | 2008-07-18 | 2008-12-10 | 四川长虹电器股份有限公司 | 嵌入式浏览器缓存设计方法 |
CN102024015A (zh) * | 2009-09-18 | 2011-04-20 | 软件股份公司 | 用于批量删除数据库系统的数据记录的方法 |
CN102511043A (zh) * | 2011-11-26 | 2012-06-20 | 华为技术有限公司 | 缓存文件替换方法、装置及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020184327A1 (en) * | 2001-05-11 | 2002-12-05 | Major Robert Drew | System and method for partitioning address space in a proxy cache server cluster |
KR100856245B1 (ko) * | 2006-12-26 | 2008-09-03 | 삼성전자주식회사 | 파일 시스템 장치 및 그 파일 시스템의 파일 저장 및 파일 탐색 방법 |
-
2013
- 2013-08-22 CN CN201310370226.6A patent/CN103442000B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7155560B2 (en) * | 2001-06-27 | 2006-12-26 | Intel Corporation | Method and apparatus for storing data in flash memory |
CN101287107A (zh) * | 2008-05-29 | 2008-10-15 | 腾讯科技(深圳)有限公司 | 媒体文件的点播方法、系统和设备 |
CN101320353A (zh) * | 2008-07-18 | 2008-12-10 | 四川长虹电器股份有限公司 | 嵌入式浏览器缓存设计方法 |
CN102024015A (zh) * | 2009-09-18 | 2011-04-20 | 软件股份公司 | 用于批量删除数据库系统的数据记录的方法 |
CN102511043A (zh) * | 2011-11-26 | 2012-06-20 | 华为技术有限公司 | 缓存文件替换方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103442000A (zh) | 2013-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8583625B2 (en) | Systems and methods for network acceleration and efficient indexing for caching file systems | |
Wu et al. | {LSM-trie}: An {LSM-tree-based}{Ultra-Large}{Key-Value} Store for Small Data Items | |
Li et al. | Gd-wheel: a cost-aware replacement policy for key-value stores | |
US6754800B2 (en) | Methods and apparatus for implementing host-based object storage schemes | |
US10747951B2 (en) | Webpage template generating method and server | |
US9928178B1 (en) | Memory-efficient management of computer network resources | |
Wu et al. | zexpander: A key-value cache with both high performance and fewer misses | |
CN106776967A (zh) | 基于时序聚合算法的海量小文件实时存储方法及装置 | |
CN107368437B (zh) | 一种末级缓存管理方法及系统 | |
Ma et al. | Weighted greedy dual size frequency based caching replacement algorithm | |
WO2014201696A1 (zh) | 一种文件读取方法、存储设备及读取系统 | |
CN106407224A (zh) | 一种键值存储系统中文件压实的方法和装置 | |
CN106156255A (zh) | 一种数据缓存层实现方法及系统 | |
JP5861473B2 (ja) | 情報処理装置、メモリ管理方法およびメモリ管理プログラム | |
CN109981659A (zh) | 基于数据去重技术的网络资源预取方法以及系统 | |
CN103442000B (zh) | Web缓存置换方法及装置、http代理服务器 | |
CN111782612A (zh) | 跨域虚拟数据空间中文件数据边缘缓存方法 | |
Liu et al. | A High Performance Memory Key-Value Database Based on Redis. | |
US9940069B1 (en) | Paging cache for storage system | |
Ghandeharizadeh et al. | CAMP: A cost adaptive multi-queue eviction policy for key-value stores | |
CN111274245B (zh) | 一种用于优化数据存储的方法和装置 | |
CN114817195A (zh) | 一种分布式存储缓存管理的方法、系统、存储介质及设备 | |
US7249219B1 (en) | Method and apparatus to improve buffer cache hit rate | |
CN106649150A (zh) | 一种缓存管理方法及装置 | |
KR102476620B1 (ko) | 캐시 자동제어 시스템 |
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 |