基于分布式文件的高效缓存服务器的制造方法

文档序号:6535572阅读:165来源:国知局
基于分布式文件的高效缓存服务器的制造方法
【专利摘要】本发明提供基于分布式文件的高效缓存服务器,用于与客户端通信,包括输入处理器、读写器、缓存监听器、输出处理器;其中:输入处理器用于接收客户端的读写业务请求、客户端的身份验证、客户端的请求类型,并用于将合法的请求传递到读写器处理;读写器用于对输入处理器所传递的客户端请求进行验证、读取数据输出以及写入数据处理;缓存监听器用于监听业务和监听系统事件;输出处理器用于将读写器读取的数据信息或写数据的返回状态信息发送给客户端。本发明在保障大文件数据存储的同时,也能同样的支持小数据的性能。
【专利说明】基于分布式文件的高效缓存服务器
【技术领域】
[0001]本发明涉及基于分布式文件的高效缓存服务器。
【背景技术】
[0002]根据did you know (http://didyouknow.0rg/)的数据,目前互联网上可访问的信息数量接近I秭=1百万亿亿。与目前常见的集中式存储技术不同,分布式存储技术并不是将数据存储在某个或多个特定的节点上,而是通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。
[0003]目前行业内比较主流的分布式存储技术可以大致分为结构化数据,非结构化数据,半结构化数据。不论任何的分布式存储方式,其目的都是将客户端的数据分散保存在网络中不同的存储设备内。要实现这个目标,对于网络、IO的读写性能都有着很高的要求。近年来,以Google为代表的GFS技术以及Apache公司的HDFS技术,在分布式存储技术方面异军突起,为人们带来了新的思路。
[0004]分布式文件存储大部分都是通过将文件分块进行存储,将不同的文件块存储在不同的网络设备上。当文件存入的时候,对不同设备上的块进行写操作;传输和下载数据的时候则对文件块进行读操作。并通过Key-Value的方式,通过内存缓存相关数据信息。由于分布式文件存储系统的特性,内存缓存与文件IO读写的性能成为了至关重要的关键因素。
[0005]在现有的技术中,在单个存储节点上,数据的读取是通过预先读入缓存的方式(例如GFS和HDFS等),当客户端大量的写入文件时候,系统将频繁的对文件进行写操作。
[0006]对于GFS和HDFS而言,高性能的处理大数据文件存储是其特有的优点,但是在实际运用中,小数据的存储却很不理想。
[0007]而NoSQL的出现,能够满足小数据的存储。但是对于动辄上G的大文件,则容易造成性能的下降,甚至一些内存数据库由于存储过多大文件造成内存不足当机。
[0008]同时对于多变的云计算的运用而言,用户的存储需求也是多变的,更多的时候,数据往往都是小数据与大数据的并存。面对只能为大文件提供存储,或只能为小数据提供存储,都是不利的,有制约的。

【发明内容】

[0009]本发明要解决的技术问题,在于提供基于分布式文件的高效缓存服务器,解决现有分布式文件存储系统无法同时满足大文件存储和大量小文件存储的问题。
[0010]本发明是这样实现的:
[0011]基于分布式文件的高效缓存服务器,用于与客户端通信,包括输入处理器、读写器、缓存监听器、输出处理器;其中:
[0012]输入处理器用于接收客户端的读写业务请求、客户端的身份验证、客户端的请求类型,并用于将合法的请求传递到读写器处理;[0013]读写器用于对输入处理器所传递的客户端请求进行验证、读取数据输出以及写入数据处理;
[0014]读写器包括只读主缓存、只读副缓存和只写缓存;
[0015]所述的只读主缓存用于记录文件表内文件块的物理或内存的地址位;
[0016]所述的只读副缓存用于记录只写缓存未写入物理文件且符合写入规则的数据;
[0017]所述的只写缓存用于记录要写入物理文件的请求和数据;
[0018]缓存监听器用于监听业务和监听系统事件;
[0019]监听业务具体为:实时监测只写缓存,对每个写数据请求进行校验;如果只写缓存超过预设时间而无任何写请求,而只写缓存中存在数据,则进行写物理文件操作;写操作完成后,同时修改只读主缓存的内存链址为物理文件链址,清理只写缓存和只读副缓存中的失效写请求日志;
[0020]监听系统事件具体为:通过系统钩子,监测系统服务关闭、操作系统是否关闭本程序进程、是否关机或注销操作;一旦发现这些事件,则将只写缓存数据进行写物理文件操作;
[0021]输出处理器用于将读写器读取的数据信息或写数据的返回状态信息发送给客户端。
[0022]进一步地,所述只读主缓存的大小不超过空闲物理内存的3/4。
[0023]进一步地,所述只读副缓存的大小不超过64MB。
[0024]进一步地,所述只写缓存的大小为64MB以上及512MB以下。
[0025]进一步地,所述预设时间为6秒。
[0026]本发明具有如下优点:
[0027]1.能够支持各种大小的海量文件存储,并优化了 IO的读写,避免了现有技术仅仅能支持大文件存储或小文件存储的单一性。
[0028]2.通过内存缓存未写入物理文件的数据,异步延迟过于频繁的写操作,提升了用户对写操作快速,能及时读取新数据的体验效果。
[0029]3.适应了各领域中对文件存储的多变需求,减少项目架构的复杂性。原有的技术中,架构一个项目,需要构建大文件存储(HDFS、GFS等)和小数据存储(NoSQL等)两种不同的存储方案。
[0030]4.文件存储数据不存储在内存,内存仅存储链址,避免了因为存储数据过大造成整个系统崩溃和不稳定的风险。
【专利附图】

【附图说明】
[0031]下面参照附图结合实施例对本发明作进一步的说明。
[0032]图1为本发明的单个分布式存储服务器的结构图。
[0033]图2为本发明的读文件流程图。
[0034]图3为本发明的写文件流程图。
【具体实施方式】
[0035]请参阅图1到图3所示,以下将对本发明进行详细说明。[0036]基于分布式文件的高效缓存服务器,用于与客户端通信,包括输入处理器、读写器、缓存监听器、输出处理器(如图1所示);其中:输入处理器用于接收客户端的读写业务请求、客户端的身份验证、客户端的请求类型(包括读请求和写请求),并用于将合法的请求传递到读写器处理。
[0037]读写器用于对输入处理器所传递的客户端请求进行验证、读取数据输出以及写入数据处理;读写器包括只读主缓存(RD1)、只读副缓存(RD2)和只写缓存(WL);所述的只读主缓存用于记录文件表内文件块的物理或内存的地址位;所述的只读副缓存用于记录只写缓存未写入物理文件且符合写入规则的数据;所述的只写缓存用于记录要写入物理文件的请求和数据。
[0038]缓存监听器用于监听业务和监听系统事件。监听业务具体为:实时监测只写缓存,对每个写数据请求进行校验;如果只写缓存超过预设时间而无任何写请求,而只写缓存中存在数据,则进行写物理文件操作;写操作完成后,同时修改只读主缓存的内存链址为物理文件链址,清理只写缓存和只读副缓存中的失效写请求日志。其中链址为数据在物理文件或内存中的存储地址,包含开始地址和数据长度。通过链址,系统能够方便、快速、准确的读取文件内容。监听系统事件具体为:通过系统钩子,监测系统服务关闭、操作系统是否关闭本程序进程、是否关机或注销操作;一旦发现这些事件,则将只写缓存数据进行写物理文件操作。
[0039]输出处理器用于将读写器读取的数据信息或写数据的返回状态信息发送给客户端。
[0040]在优选的情况下,只读主缓存的大小不超过空闲物理内存的3/4 ;只读副缓存的大小不超过64MB ;只写缓存的大小为64MB以上及512MB以下;预设时间为6秒。
[0041]本发明在与客户端通信时,客户端发送请求给输入处理器,输入处理器验证完客户端的身份、数据格式、包头等信息后,将请求数据发送给读写器。
[0042]如果请求数据是读取数据,则如图2所示,读写器将请求交给单独子进程,通过只读主缓存获取物理或内存链址,读取数据内容。并将数据内容转换为输出格式后送到输出处理器。
[0043]如果请求数据是写入数据,则如图3所示,读写器将请求信息加入只写缓存的缓存和将数据加入只读副缓存,同时将只读副缓存的键值和长度加入只读主缓存内。如果只写缓存内的数据满64MB,读写器的将在完成上述操作后,将写文件的任务交给单独子进程进行写入操作,写为物理文件(即写到物理存储器),并对只读主缓存的链址进行修改,并将只写缓存清空,格式化只读副缓存为当前进入的最新数据,回写只读主缓存新数据等操作。
[0044]上述的读写操作结束后,读写器将对读取内容或写入结果通过输出处理器发送给客户端。
[0045]本发明的读写过程为读写缓存分离,数据的写入满足写入的规则要求后,进入缓存队列,队列数据满64MB时系统写入物理文件,不论大文件块还是小文件块,无须频繁的写文件,降低IO操作次数,提升性能。当用户访问少的情况下,写文件的缓存队列数据不足64MB时,当延迟超过6秒,系统自动写入文件,并更新物理链址到只读缓存内。则本发明在保障大文件数据同时,也能同样的支持小数据的性能,并保障数据的实时更新,减少大量小数据和小文件对IO性能造成的损耗。[0046]虽然以上描述了本发明的【具体实施方式】,但是熟悉本【技术领域】的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
【权利要求】
1.基于分布式文件的高效缓存服务器,用于与客户端通信,其特征在于:包括输入处理器、读写器、缓存监听器、输出处理器;其中: 输入处理器用于接收客户端的读写业务请求、客户端的身份验证、客户端的请求类型,并用于将合法的请求传递到读写器处理; 读写器用于对输入处理器所传递的客户端请求进行验证、读取数据输出以及写入数据处理; 读写器包括只读主缓存、只读副缓存和只写缓存; 所述的只读主缓存用于记录文件表内文件块的物理或内存的地址位; 所述的只读副缓存用于记录只写缓存未写入物理文件且符合写入规则的数据; 所述的只写缓存用于记录要写入物理文件的请求和数据; 缓存监听器用于监听业务和监听系统事件; 监听业务具体为:实时监测只写缓存,对每个写数据请求进行校验;如果只写缓存超过预设时间而无任何写请求,而只写缓存中存在数据,则进行写物理文件操作;写操作完成后,同时修改只读主缓存的内存链址为物理文件链址,清理只写缓存和只读副缓存中的失效写请求日志; 监听系统事件具体为:通过系统钩子,监测系统服务关闭、操作系统是否关闭本程序进程、是否关机或注销操作;一旦发现这些事件,则将只写缓存数据进行写物理文件操作; 输出处理器用于将读写器读取的数据信息或写数据的返回状态信息发送给客户端。
2.根据权利要求1所述的基于分布式文件的高效缓存服务器,其特征在于:所述只读主缓存的大小不超过空闲物理内存的3/4。
3.根据权利要求1所述的基于分布式文件的高效缓存服务器,其特征在于:所述只读副缓存的大小不超过64MB。
4.根据权利要求1所述的基于分布式文件的高效缓存服务器,其特征在于:所述只写缓存的大小为64MB以上及512MB以下。
5.根据权利要求1所述的基于分布式文件的高效缓存服务器,其特征在于:所述预设时间为6秒。
【文档编号】G06F17/30GK103744975SQ201410013966
【公开日】2014年4月23日 申请日期:2014年1月13日 优先权日:2014年1月13日
【发明者】丁万年, 洪文洁, 陈日良, 姜士镒 申请人:锐达互动科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1