一种基于文件为客户端分配缓存配额的方法及其装置制造方法及图纸

技术编号:15541253 阅读:36 留言:0更新日期:2017-06-05 10:44
本发明专利技术涉及分配缓存配额领域,公开一种基于文件为客户端分配缓存配额的方法,包括以下步骤:在内存空间中划分出可分配缓存空间和预留缓存空间;为请求的每路文件均匀分配缓存配额;判断请求的每路文件可占用的缓存配额,为新文件分配预留缓存空间。还公开一种基于文件为客户端分配缓存配额的装置,划分模块,用于在内存空间中划分出可分配缓存空间和预留缓存空间;第一分配模块,用于为请求的每路文件均匀分配缓存配额;第一判断模块,用于判断请求的每路文件可占用的缓存配额;第二分配模块,用于为新文件分配预留缓存空间。本发明专利技术以文件为单位控制文件占用的缓存大小,使每路文件均匀读写;同时引入预留缓存空间,使新文件达到恒定读写速度。

Method and device for allocating cache quota based on file for client

The present invention relates to the distribution of cache quota field, discloses a method based on the document to the client cache quota allocation, including the following steps: the memory space can be divided into reservation and allocation of cache space for the requested cache space; each file distributed cache cache quota quota; judge requests each file can be occupied, the reserved buffer space for the new file allocation. Also disclosed is a device based on file for the client cache quota allocation module used in the memory space can be divided into reservation and cache space allocation of cache space; the first distribution module for each request file distributed cache quota; the first judging module, for each cache quota judgment request file occupation; second allocation module, the reserved buffer space for the new file allocation for. The invention takes the file as a unit to control the cache size occupied by the file, and makes each file read and write evenly; meanwhile, the reserved buffer space is introduced to make the new document achieve constant reading and writing speed.

【技术实现步骤摘要】
一种基于文件为客户端分配缓存配额的方法及其装置
本专利技术涉及分配缓存配额领域,尤其涉及一种基于文件为客户端分配缓存配额的方法及其装置。
技术介绍
从事分布式存储产品的客户端软件开发时,往往会用到缓存的概念。它的本质是在计算机中申请一块内存空间,用于暂存用户写入或读取的数据,这样既可以提高写入性能,又能在用户对最近访问过的数据再次发起请求时迅速响应,降低延迟;但是缓存的大小是有限制的,目前的缓存管理机制将所有文件占用的缓存混合在一起进行管理,不具体细分每路文件分别占用的缓存大小,这样会存在以下问题:1.极限读写时,文件读写速度不同导致占用的缓存空间不均衡,反过来又制约了文件的读写速度,快的更快,慢的更慢;2.各路文件使用的缓存大小具有随机性,无法满足恒定码流场景下的读写要求;3.当缓存空间用完时,新加入的文件必须等缓存释放后才能开始读写,导致文件读或写时出现卡顿甚至阻塞的现象,影响读写效果。
技术实现思路
本专利技术针对目前需求以及现有技术发展的不足之处,提供一种基于文件为客户端分配缓存配额的方法及其装置,以文件为单位控制文件占用的缓存大小,使得每路文件可以均匀的读写;同时引入预留缓存空间,允许新加入的文件快速达到恒定读写的速度。为了实现上述目的,本专利技术采用以下的技术方案:一种基于文件为客户端分配缓存配额的方法,包括以下步骤:在内存空间中划分出可分配缓存空间和预留缓存空间;为请求的每路文件均匀分配缓存配额;判断请求的每路文件可占用的缓存配额是否达到上限,若是,则释放长时间未被客户端访问过的该路文件的缓存;若否,则继续对该路文件进行缓存;为新文件分配预留缓存空间。优选地,在内存空间中划分出可分配缓存空间和预留缓存空间之前,包括:向服务器申请内存空间。优选地,在向服务器申请内存空间之后,包括:预设阈值。优选地,在为请求的文件均匀分配缓存配额之前,包括:预设时间戳;接收客户端的读或写请求。优选地,在接收客户端的读或写请求之后,包括:查看客户端访问过的每路文件索引节点,判断每路文件当前时间和最后一次访问时间间隔是否大于时间戳,若是,即释放出该路文件所占用的缓存,若否,则不释放。优选地,为请求的每路文件均匀分配缓存配额,包括:统计当前可分配的缓存空间的大小,查看客户端访问过的每路文件索引节点,统计出每路文件可占用的缓存配额的上限,为请求的每路文件均匀分配可分配缓存空间内的缓存配额。优选地,释放长时间未被客户端访问过的该路文件的缓存,包括:释放当前时间和最后一次访问时间间隔大于时间戳的该路文件的缓存。优选地,为新文件分配预留缓存空间,包括:当可分配的缓存空间已用完且有新文件发起读或写请求时,从预留缓存空间中为新文件分配缓存配额,并将新文件的缓存存放至缓存队列中,同时,从其他路文件中释放出未被客户端访问的缓存作为新的预留缓存空间。一种基于文件为客户端分配缓存配额的装置,包括:划分模块,用于在内存空间中划分出可分配缓存空间和预留缓存空间;第一分配模块,用于为请求的每路文件均匀分配缓存配额;第一判断模块,用于判断请求的每路文件可占用的缓存配额是否达到上限;第二分配模块,用于为新文件分配预留缓存空间。优选地,还包括:申请模块,用于向服务器申请内存空间;优选地,还包括:预设模块,用于预设阈值和时间戳;优选地,还包括:接收模块,用于接收客户端的读或写请求;优选地,还包括:第二判断模块,用于判断每路文件当前时间和最后一次访问时间间隔是否大于时间戳。本专利技术的有益效果:1.本专利技术通过申请内存空间,并在内存空间中划分出可分配缓存空间和预留缓存空间,将当前缓存均匀分配给可分配缓存空间内的各路文件,使所有文件都能以恒定速度进行读写,互不干扰,可以很好的满足恒定码流场景下的读写,不会制约文件的读写速度;同时允许多个客户端并发访问同一个缓存空间时,以文件为单位控制各路文件占用的缓存大小,使得每路文件可以均匀的读写;通过时间戳的配合,初步释放出该文件所占用的缓存,进行作业,同时加入预留缓存空间,当可分配的缓存空间已用完且有新文件发起读或写请求时,从预留缓存空间内为新文件分配缓存配额,使新加入的文件快速达到恒定读写速度的目的;2.新加入的文件可以申请到预留缓存空间,同时,从其他路文件中释放出未被客户端访问的缓存作为新的预留缓存空间,从而不会出现卡顿或阻塞的情况,提高效率。附图说明图1为本专利技术一种基于文件为客户端分配缓存配额的方法的流程示意图之一。图2为本专利技术一种基于文件为客户端分配缓存配额的方法的结构示意图之二。图3为本专利技术一种基于文件为客户端分配缓存配额的装置的流程示意图之一。图4为本专利技术一种基于文件为客户端分配缓存配额的装置的结构示意图之二。具体实施方式为了便于理解,对本专利技术中出现的部分名词作以下解释说明:LRU链表,LRU是LeastRecentlyUsed的缩写,即最近最少使用,LRU链表把最近最少使用的数据移除,让给最新读取的数据。下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述:实施例一:如图1所示,本专利技术的一种基于文件为客户端分配缓存配额的方法,包括以下步骤:步骤S101,向服务器申请内存空间。步骤S102,预设阈值。步骤S103,在内存空间中划分出可分配缓存空间和预留缓存空间,其中可分配缓存空间的大小为申请的内存空间的缓存大小乘以预设的阈值;预留缓存空间的大小为申请的内存空间的大小减去可分配缓存空间的大小。步骤S104,预设时间戳;接收客户端发出的读或写请求,作为一种可实施的方式,本实施例中允许三个客户端并发访问内存空间。步骤S105,查看客户端访问过的三路文件索引节点,判断每路文件当前时间和最后一次访问时间间隔是否大于时间戳;若是,即释放出该路文件所占用的缓存,若否,则不释放。步骤S106,遍历当前缓存的各路文件,确定文件没有正在等待读或写的请求,统计当前可分配的缓存空间的大小,查看客户端访问过的三路文件索引节点,统计出每路文件可占用的缓存配额的上限,为请求的每路文件均匀分配可分配缓存空间内的缓存配额。步骤S107,判断请求的每路文件可占用的缓存配额是否达到上限,若是,则释放长时间未被客户端访问过的该路文件的缓存,即释放当前时间和最后一次访问时间间隔大于时间戳的该路文件的缓存;若否,则继续对该路文件进行缓存;步骤S108,当可分配的缓存空间已用完且有新文件发起读或写请求时,重新计算各路文件可占用的缓存上限,即通过可分配缓存空间内的缓存配额的大小减去预留缓存空间的大小再除以文件路数,再从预留缓存空间中为新文件分配缓存配额,并将新文件的缓存存放至缓存队列中,同时,从其他路文件中释放出未被客户端访问的缓存作为新的预留缓存空间。作为一种可实施的方式,本实施例中的阈值预设为90%;即当内存空间的缓存大小为10G时,分配缓存空间的大小为9G,预留缓存空间的大小为1G。作为一种可实施的方式,本实施例中的时间戳预设为30天。作为一种可实施的方式,使用LRU链表作为本实施例中的缓存队列。实施例二:如图2所示,本专利技术的一种基于文件为客户端分配缓存配额的装置,包括申请模块201、预设模块202、划分模块203、第一分配模块204、接收模块205、第一判断模块206、第二判断模块207和第二分配模块208,申请模块201依次连接预设模块本文档来自技高网...
一种基于文件为客户端分配缓存配额的方法及其装置

【技术保护点】
一种基于文件为客户端分配缓存配额的方法,其特征在于,包括以下步骤:在内存空间中划分出可分配缓存空间和预留缓存空间;为请求的每路文件均匀分配缓存配额;判断请求的每路文件可占用的缓存配额是否达到上限,若是,则释放长时间未被客户端访问过的该路文件的缓存;若否,则继续对该路文件进行缓存;为新文件分配预留缓存空间。

【技术特征摘要】
1.一种基于文件为客户端分配缓存配额的方法,其特征在于,包括以下步骤:在内存空间中划分出可分配缓存空间和预留缓存空间;为请求的每路文件均匀分配缓存配额;判断请求的每路文件可占用的缓存配额是否达到上限,若是,则释放长时间未被客户端访问过的该路文件的缓存;若否,则继续对该路文件进行缓存;为新文件分配预留缓存空间。2.根据权利要求1所述的一种基于文件为客户端分配缓存配额的方法,其特征在于,在内存空间中划分出可分配缓存空间和预留缓存空间之前,包括:向服务器申请内存空间。3.根据权利要求2所述的一种基于文件为客户端分配缓存配额的方法,其特征在于,在向服务器申请内存空间之后,包括:预设阈值。4.根据权利要求1所述的一种基于文件为客户端分配缓存配额的方法,其特征在于,在为请求的文件均匀分配缓存配额之前,包括:预设时间戳;接收客户端的读或写请求。5.根据权利要求4所述的一种基于文件为客户端分配缓存配额的方法,其特征在于,在接收客户端的读或写请求之后,包括:查看客户端访问过的每路文件索引节点,判断每路文件当前时间和最后一次访问时间间隔是否大于时间戳,若是,即释放出该路文件所占用的缓存,若否,则不释放。6.根据权利要求1所述的一种基于文件为客户端分配缓存配额的方法,其特征在于,为请求的每路文件均匀分配缓存配额,包括:统计当前可分配的缓存空间的大小,查看客户端访问过的每路文件索引节点...

【专利技术属性】
技术研发人员:孔帅
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1