一种高效的图片存储读取系统及方法技术方案

技术编号:24410107 阅读:18 留言:0更新日期:2020-06-06 08:48
本发明专利技术涉及一种高效的图片存储读取系统及方法,包括:图片存储模块,用于直接存储图片,并给图片分配一个存储的参数;图片参数存储模块,用于存储图片的参数,所述参数对应所述图片存储模块中的存储位置;图片缓存模块,在图片存入所述图片存储模块时进行缓存;调取服务模块,用于根据请求向所述图片参数存储模块调取图片的参数,再根据参数从所述图片存储模块中调取相应的图片,本发明专利技术极大的减少了在访问图片时的文件IO的次数,读取图片文件没有寻址过程,只需要找到对应的物理卷,进行一次顺序读取,显著提高了读取效率,并且由于图片缓存模块进行预先缓存,将读取和存储分开,也显著的增加了存储效率。

An efficient image storage and reading system and method

【技术实现步骤摘要】
一种高效的图片存储读取系统及方法
本专利技术涉及一种高效的图片存储读取系统及方法,属于数据存储

技术介绍
现在大部分图片存储系统,都是直接将单个图片直接保存在磁盘上,一张图片对应一个文件,再由服务器为每个图片文件生成唯一ID,并且存到不同的目录下,这样直接导致的问题是,当图片越来越多,文件数量也随之增加,目录的数量和深度也随之增加,如果需要读取某一张图片,传统的POSIX文件系统,首先需要读取图片文件的元数据,即MetaData,再根据MetaData去读取对应的图片文件,这其中需要多次文件I/O,在大量的读取请求下,无论是响应速度,还是开销都非常巨大,用户等待的时间也更长。随着服务器的发展,现在网络服务端的图片存储,如图1所示,一般都是由用户向WebServer请求图片,WebServer返回图片的URL,再由用户根据返回的URL进行下载,下载的过程一般是直接请求CDN节点,如果CDN的缓存中有对应的图片,则直接返回;如果没有对应的图片,则再次由CDN到图片存储服务中读取图片,图片存储服务器自身的文件读取流程包含:1)读取图片对应的metaData;2)读取inode信息;3)读取图片信息;一般至少需要3次文件I/O,文件I/O属于系统调用,速度非常慢,当文件存储服务处理大量请求时,过多的文件I/O次数明显成为瓶颈。
技术实现思路
本专利技术要解决的技术问题是:为克服上述问题,提供一种减少文件IO次数的高效的图片存储读取系统及方法。本专利技术解决其技术问题所采用的技术方案是:一种高效的图片存储读取系统,包括:图片存储模块,用于直接存储图片,并给图片分配一个存储的参数;图片参数存储模块,用于存储图片的参数,所述参数对应所述图片存储模块中的存储位置;图片缓存模块,在图片存入所述图片存储模块时进行缓存;调取服务模块,用于根据请求向所述图片参数存储模块调取图片的参数,再根据参数从所述图片存储模块中调取相应的图片。在优选的实施方式中,所述图片存储模块将储存空间分为多个物理卷,所述物理卷直接存储图片,所述物理卷空间存储满之后显示为只读状态。在优选的实施方式中,所述图片存储模块中还包括卷文件夹,所述卷文件夹中存储着给图片分配的参数包括:图片ID、物理卷标、逻辑卷标、逻辑卷标与物理卷标的对应关系、图片偏移量和图片数据大小。在优选的实施方式中,所述图片参数存储模块存储图片的部分参数,包括图片ID、物理卷标、逻辑卷标和逻辑卷标与物理卷标的对应关系。在优选的实施方式中,还包括节点缓存模块,用于在网络环境缓存最近访问的图片。在优选的实施方式中,所述图片缓存模块采用分布式哈希表,其缓存最近存入的图片,当缓存的图片对应存储的物理卷存储满之后,则将该缓存图片删除出图片缓存。一种以上所述图片存储读取系统的图片存储读取方法,包括以下步骤:S1:调取服务模块获得图片访问请求,向所述图片参数存储模块调取该图片的参数;S2:调取服务模块依据该图片的参数,先向图片缓存模块调取图片,如果图片缓存模块中有缓存,则直接调取发送;S3:如果图片缓存模块中没有缓存,则向所述图片存储模块调取该图片并发送,完成读取。在优选的实施方式中,所述步骤S3中,所述调取服务模块从图片参数存储模块获得图片ID、物理卷标、逻辑卷标和逻辑卷标与物理卷标的对应关系,根据逻辑卷标选择一个物理卷标,并找到对应的图片存储模块中的物理卷,在所述卷文件夹中找到该图片的图片偏移量和图片数据大小,根据图片偏移量找到图片在物理卷中的位置,向后读取图片数据大小的数据,即读取了相应的图片。在优选的实施方式中,还包括步骤S4:在执行过步骤S1后,所述调取服务模块先通过图片ID在所述节点缓存模块查找图片,如查到到相应图片,则直接调取发送,完成读取,如没有查找到相应图片,则继续执行步骤S2和S3。本专利技术的有益效果是:本专利技术极大的减少了在访问图片时的文件IO的次数,读取图片文件没有寻址过程,只需要找到对应的物理卷,进行一次顺序读取,显著提高了读取效率。附图说明下面结合附图和实施例对本专利技术进一步说明。图1是
技术介绍
中所述的现有技术流程图;图2是本专利技术所述图片存储读取系统的一个结构示意图。具体实施方式现在结合附图对本专利技术作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本专利技术的基本结构,因此其仅显示与本专利技术有关的构成。实施例1如图2所示的本专利技术所述一种高效的图片存储读取系统,包括:图片存储模块,用于直接存储图片,并给图片分配一个存储的参数;所述图片存储模块将储存空间分为多个物理卷,所述物理卷在具体实施时,优选的对应存储的硬盘,一个硬盘划分为一个物理卷,所述物理卷直接存储图片,直接存储为该物理卷内不再设立目录或文件夹,以该物理卷为一个整个存储文件夹,直接存储图片,图片在物理卷内堆叠存放的形式,直到该物理卷存放满,所述物理卷空间存储满之后显示为只读状态。所述图片存储模块中还包括卷文件夹,所述卷文件夹中存储着给图片分配的参数包括:图片ID、物理卷标、逻辑卷标、逻辑卷标与物理卷标的对应关系、图片偏移量和图片数据大小,图片ID为图片生成时就产生的参数,物理卷标即对应该图片在图片存储模块中存储在哪一个物理卷中,逻辑卷标对于图片是唯一的,而物理卷标可能是多个,因为用户上传的图片会有重复或重复保存,则可能出现一个逻辑卷标对应多个物理卷标的情况,图片偏移量即为图片在物理卷中堆叠存放的位置,例如:比如100G的单个物理卷中,里面有10W张1MB的图片,如果要读取第5W个图片;偏移量=(50000-1)*1MB=49999MB=49.999G;文件大小为1M;则文件指针偏移到49999MB的位置,顺序读取1MB的图片数据,为该图片。图片参数存储模块,用于存储图片的参数,所述参数对应所述图片存储模块中的存储位置;所述图片参数存储模块存储图片的部分参数,包括图片ID、物理卷标、逻辑卷标和逻辑卷标与物理卷标的对应关系;由于图片参数存储模块需要快速的处理,当把所有的图片参数都存储的时候,会影响其处理速度,因此,本专利技术只在其中存储便于在查找的必要参数,增加处理效率。图片缓存模块,在图片存入所述图片存储模块时进行缓存;所述图片缓存模块采用分布式哈希表(DistributedHashTable)简称DHT,类似Tracker的根据种子特征码返回种子信息的网络,是一种分布式存储方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储,所述图片缓存模块用于在存储端或局域端进行缓存,其缓存最近存入的图片,当缓存的图片对应存储的物理卷存储满之后,则将该缓存图片删除出图片缓存,其可以防止物理卷在一边存储的同时,还进行读取任务,物理卷尤其是硬盘在一边存储又一边读取的情况下,效率会降低,因此,本文档来自技高网
...

【技术保护点】
1.一种高效的图片存储读取系统,其特征在于,包括:/n图片存储模块,用于直接存储图片,并给图片分配一个存储的参数;/n图片参数存储模块,用于存储图片的参数,所述参数对应所述图片存储模块中的存储位置;/n图片缓存模块,在图片存入所述图片存储模块时进行缓存;/n调取服务模块,用于根据请求向所述图片参数存储模块调取图片的参数,再根据参数从所述图片存储模块中调取相应的图片。/n

【技术特征摘要】
1.一种高效的图片存储读取系统,其特征在于,包括:
图片存储模块,用于直接存储图片,并给图片分配一个存储的参数;
图片参数存储模块,用于存储图片的参数,所述参数对应所述图片存储模块中的存储位置;
图片缓存模块,在图片存入所述图片存储模块时进行缓存;
调取服务模块,用于根据请求向所述图片参数存储模块调取图片的参数,再根据参数从所述图片存储模块中调取相应的图片。


2.如权利要求1所述的高效的图片存储读取系统,其特征在于,所述图片存储模块将储存空间分为多个物理卷,所述物理卷直接存储图片,所述物理卷空间存储满之后显示为只读状态。


3.如权利要求1所述的高效的图片存储读取系统,其特征在于,所述图片存储模块中还包括卷文件夹,所述卷文件夹中存储着给图片分配的参数包括:图片ID、物理卷标、逻辑卷标、逻辑卷标与物理卷标的对应关系、图片偏移量和图片数据大小。


4.如权利要求3所述的高效的图片存储读取系统,其特征在于,所述图片参数存储模块存储图片的部分参数,包括图片ID、物理卷标、逻辑卷标和逻辑卷标与物理卷标的对应关系。


5.如权利要求1-4任一项所述的高效的图片存储读取系统,其特征在于,还包括节点缓存模块,用于在网络环境缓存最近访问的图片。


6.如权利要求2所述的高效的图片存储读取...

【专利技术属性】
技术研发人员:冯继强丁捷
申请(专利权)人:苏州极光无限信息技术有限公司
类型:发明
国别省市:江苏;32

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

1