CN103744975A - 基于分布式文件的高效缓存服务器 - Google Patents
基于分布式文件的高效缓存服务器 Download PDFInfo
- Publication number
- CN103744975A CN103744975A CN201410013966.9A CN201410013966A CN103744975A CN 103744975 A CN103744975 A CN 103744975A CN 201410013966 A CN201410013966 A CN 201410013966A CN 103744975 A CN103744975 A CN 103744975A
- Authority
- CN
- China
- Prior art keywords
- write
- read
- buffer memory
- data
- client
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供基于分布式文件的高效缓存服务器,用于与客户端通信,包括输入处理器、读写器、缓存监听器、输出处理器;其中:输入处理器用于接收客户端的读写业务请求、客户端的身份验证、客户端的请求类型,并用于将合法的请求传递到读写器处理;读写器用于对输入处理器所传递的客户端请求进行验证、读取数据输出以及写入数据处理;缓存监听器用于监听业务和监听系统事件;输出处理器用于将读写器读取的数据信息或写数据的返回状态信息发送给客户端。本发明在保障大文件数据存储的同时,也能同样的支持小数据的性能。
Description
技术领域
本发明涉及基于分布式文件的高效缓存服务器。
背景技术
根据did you know(http://didyouknow.org/)的数据,目前互联网上可访问的信息数量接近1秭=1百万亿亿。与目前常见的集中式存储技术不同,分布式存储技术并不是将数据存储在某个或多个特定的节点上,而是通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。
目前行业内比较主流的分布式存储技术可以大致分为结构化数据,非结构化数据,半结构化数据。不论任何的分布式存储方式,其目的都是将客户端的数据分散保存在网络中不同的存储设备内。要实现这个目标,对于网络、IO的读写性能都有着很高的要求。近年来,以Google为代表的GFS技术以及Apache公司的HDFS技术,在分布式存储技术方面异军突起,为人们带来了新的思路。
分布式文件存储大部分都是通过将文件分块进行存储,将不同的文件块存储在不同的网络设备上。当文件存入的时候,对不同设备上的块进行写操作;传输和下载数据的时候则对文件块进行读操作。并通过Key-Value的方式,通过内存缓存相关数据信息。由于分布式文件存储系统的特性,内存缓存与文件IO读写的性能成为了至关重要的关键因素。
在现有的技术中,在单个存储节点上,数据的读取是通过预先读入缓存的方式(例如GFS和HDFS等),当客户端大量的写入文件时候,系统将频繁的对文件进行写操作。
对于GFS和HDFS而言,高性能的处理大数据文件存储是其特有的优点,但是在实际运用中,小数据的存储却很不理想。
而NoSQL的出现,能够满足小数据的存储。但是对于动辄上G的大文件,则容易造成性能的下降,甚至一些内存数据库由于存储过多大文件造成内存不足当机。
同时对于多变的云计算的运用而言,用户的存储需求也是多变的,更多的时候,数据往往都是小数据与大数据的并存。面对只能为大文件提供存储,或只能为小数据提供存储,都是不利的,有制约的。
发明内容
本发明要解决的技术问题,在于提供基于分布式文件的高效缓存服务器,解决现有分布式文件存储系统无法同时满足大文件存储和大量小文件存储的问题。
本发明是这样实现的:
基于分布式文件的高效缓存服务器,用于与客户端通信,包括输入处理器、读写器、缓存监听器、输出处理器;其中:
输入处理器用于接收客户端的读写业务请求、客户端的身份验证、客户端的请求类型,并用于将合法的请求传递到读写器处理;
读写器用于对输入处理器所传递的客户端请求进行验证、读取数据输出以及写入数据处理;
读写器包括只读主缓存、只读副缓存和只写缓存;
所述的只读主缓存用于记录文件表内文件块的物理或内存的地址位;
所述的只读副缓存用于记录只写缓存未写入物理文件且符合写入规则的数据;
所述的只写缓存用于记录要写入物理文件的请求和数据;
缓存监听器用于监听业务和监听系统事件;
监听业务具体为:实时监测只写缓存,对每个写数据请求进行校验;如果只写缓存超过预设时间而无任何写请求,而只写缓存中存在数据,则进行写物理文件操作;写操作完成后,同时修改只读主缓存的内存链址为物理文件链址,清理只写缓存和只读副缓存中的失效写请求日志;
监听系统事件具体为:通过系统钩子,监测系统服务关闭、操作系统是否关闭本程序进程、是否关机或注销操作;一旦发现这些事件,则将只写缓存数据进行写物理文件操作;
输出处理器用于将读写器读取的数据信息或写数据的返回状态信息发送给客户端。
进一步地,所述只读主缓存的大小不超过空闲物理内存的3/4。
进一步地,所述只读副缓存的大小不超过64MB。
进一步地,所述只写缓存的大小为64MB以上及512MB以下。
进一步地,所述预设时间为6秒。
本发明具有如下优点:
1.能够支持各种大小的海量文件存储,并优化了IO的读写,避免了现有技术仅仅能支持大文件存储或小文件存储的单一性。
2.通过内存缓存未写入物理文件的数据,异步延迟过于频繁的写操作,提升了用户对写操作快速,能及时读取新数据的体验效果。
3.适应了各领域中对文件存储的多变需求,减少项目架构的复杂性。原有的技术中,架构一个项目,需要构建大文件存储(HDFS、GFS等)和小数据存储(NoSQL等)两种不同的存储方案。
4.文件存储数据不存储在内存,内存仅存储链址,避免了因为存储数据过大造成整个系统崩溃和不稳定的风险。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明的单个分布式存储服务器的结构图。
图2为本发明的读文件流程图。
图3为本发明的写文件流程图。
具体实施方式
请参阅图1到图3所示,以下将对本发明进行详细说明。
基于分布式文件的高效缓存服务器,用于与客户端通信,包括输入处理器、读写器、缓存监听器、输出处理器(如图1所示);其中:输入处理器用于接收客户端的读写业务请求、客户端的身份验证、客户端的请求类型(包括读请求和写请求),并用于将合法的请求传递到读写器处理。
读写器用于对输入处理器所传递的客户端请求进行验证、读取数据输出以及写入数据处理;读写器包括只读主缓存(RD1)、只读副缓存(RD2)和只写缓存(WL);所述的只读主缓存用于记录文件表内文件块的物理或内存的地址位;所述的只读副缓存用于记录只写缓存未写入物理文件且符合写入规则的数据;所述的只写缓存用于记录要写入物理文件的请求和数据。
缓存监听器用于监听业务和监听系统事件。监听业务具体为:实时监测只写缓存,对每个写数据请求进行校验;如果只写缓存超过预设时间而无任何写请求,而只写缓存中存在数据,则进行写物理文件操作;写操作完成后,同时修改只读主缓存的内存链址为物理文件链址,清理只写缓存和只读副缓存中的失效写请求日志。其中链址为数据在物理文件或内存中的存储地址,包含开始地址和数据长度。通过链址,系统能够方便、快速、准确的读取文件内容。监听系统事件具体为:通过系统钩子,监测系统服务关闭、操作系统是否关闭本程序进程、是否关机或注销操作;一旦发现这些事件,则将只写缓存数据进行写物理文件操作。
输出处理器用于将读写器读取的数据信息或写数据的返回状态信息发送给客户端。
在优选的情况下,只读主缓存的大小不超过空闲物理内存的3/4;只读副缓存的大小不超过64MB;只写缓存的大小为64MB以上及512MB以下;预设时间为6秒。
本发明在与客户端通信时,客户端发送请求给输入处理器,输入处理器验证完客户端的身份、数据格式、包头等信息后,将请求数据发送给读写器。
如果请求数据是读取数据,则如图2所示,读写器将请求交给单独子进程,通过只读主缓存获取物理或内存链址,读取数据内容。并将数据内容转换为输出格式后送到输出处理器。
如果请求数据是写入数据,则如图3所示,读写器将请求信息加入只写缓存的缓存和将数据加入只读副缓存,同时将只读副缓存的键值和长度加入只读主缓存内。如果只写缓存内的数据满64MB,读写器的将在完成上述操作后,将写文件的任务交给单独子进程进行写入操作,写为物理文件(即写到物理存储器),并对只读主缓存的链址进行修改,并将只写缓存清空,格式化只读副缓存为当前进入的最新数据,回写只读主缓存新数据等操作。
上述的读写操作结束后,读写器将对读取内容或写入结果通过输出处理器发送给客户端。
本发明的读写过程为读写缓存分离,数据的写入满足写入的规则要求后,进入缓存队列,队列数据满64MB时系统写入物理文件,不论大文件块还是小文件块,无须频繁的写文件,降低IO操作次数,提升性能。当用户访问少的情况下,写文件的缓存队列数据不足64MB时,当延迟超过6秒,系统自动写入文件,并更新物理链址到只读缓存内。则本发明在保障大文件数据同时,也能同样的支持小数据的性能,并保障数据的实时更新,减少大量小数据和小文件对IO性能造成的损耗。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (5)
1.基于分布式文件的高效缓存服务器,用于与客户端通信,其特征在于:包括输入处理器、读写器、缓存监听器、输出处理器;其中:
输入处理器用于接收客户端的读写业务请求、客户端的身份验证、客户端的请求类型,并用于将合法的请求传递到读写器处理;
读写器用于对输入处理器所传递的客户端请求进行验证、读取数据输出以及写入数据处理;
读写器包括只读主缓存、只读副缓存和只写缓存;
所述的只读主缓存用于记录文件表内文件块的物理或内存的地址位;
所述的只读副缓存用于记录只写缓存未写入物理文件且符合写入规则的数据;
所述的只写缓存用于记录要写入物理文件的请求和数据;
缓存监听器用于监听业务和监听系统事件;
监听业务具体为:实时监测只写缓存,对每个写数据请求进行校验;如果只写缓存超过预设时间而无任何写请求,而只写缓存中存在数据,则进行写物理文件操作;写操作完成后,同时修改只读主缓存的内存链址为物理文件链址,清理只写缓存和只读副缓存中的失效写请求日志;
监听系统事件具体为:通过系统钩子,监测系统服务关闭、操作系统是否关闭本程序进程、是否关机或注销操作;一旦发现这些事件,则将只写缓存数据进行写物理文件操作;
输出处理器用于将读写器读取的数据信息或写数据的返回状态信息发送给客户端。
2.根据权利要求1所述的基于分布式文件的高效缓存服务器,其特征在于:所述只读主缓存的大小不超过空闲物理内存的3/4。
3.根据权利要求1所述的基于分布式文件的高效缓存服务器,其特征在于:所述只读副缓存的大小不超过64MB。
4.根据权利要求1所述的基于分布式文件的高效缓存服务器,其特征在于:所述只写缓存的大小为64MB以上及512MB以下。
5.根据权利要求1所述的基于分布式文件的高效缓存服务器,其特征在于:所述预设时间为6秒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410013966.9A CN103744975A (zh) | 2014-01-13 | 2014-01-13 | 基于分布式文件的高效缓存服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410013966.9A CN103744975A (zh) | 2014-01-13 | 2014-01-13 | 基于分布式文件的高效缓存服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103744975A true CN103744975A (zh) | 2014-04-23 |
Family
ID=50501993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410013966.9A Pending CN103744975A (zh) | 2014-01-13 | 2014-01-13 | 基于分布式文件的高效缓存服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103744975A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219327A (zh) * | 2014-09-27 | 2014-12-17 | 上海瀚之友信息技术服务有限公司 | 一种分布式缓存系统 |
CN106802950A (zh) * | 2017-01-16 | 2017-06-06 | 郑州云海信息技术有限公司 | 一种分布式文件系统小文件写缓存优化的方法 |
CN107888687A (zh) * | 2017-11-15 | 2018-04-06 | 长沙证通云计算有限公司 | 一种基于分布式存储系统的代理客户端存储加速方法及系统 |
CN109918021A (zh) * | 2014-11-05 | 2019-06-21 | 华为技术有限公司 | 数据处理方法和装置 |
CN110083549A (zh) * | 2019-04-01 | 2019-08-02 | 福建天泉教育科技有限公司 | 一种缓存读写的方法及终端 |
CN115098045A (zh) * | 2022-08-23 | 2022-09-23 | 成都止观互娱科技有限公司 | 一种数据存储系统及网络数据读取和写入方法 |
CN116048425A (zh) * | 2023-03-09 | 2023-05-02 | 浪潮电子信息产业股份有限公司 | 一种分层缓存方法、系统及相关组件 |
-
2014
- 2014-01-13 CN CN201410013966.9A patent/CN103744975A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104219327A (zh) * | 2014-09-27 | 2014-12-17 | 上海瀚之友信息技术服务有限公司 | 一种分布式缓存系统 |
CN104219327B (zh) * | 2014-09-27 | 2017-05-10 | 上海瀚之友信息技术服务有限公司 | 一种分布式缓存系统 |
CN109918021A (zh) * | 2014-11-05 | 2019-06-21 | 华为技术有限公司 | 数据处理方法和装置 |
CN106802950A (zh) * | 2017-01-16 | 2017-06-06 | 郑州云海信息技术有限公司 | 一种分布式文件系统小文件写缓存优化的方法 |
CN107888687A (zh) * | 2017-11-15 | 2018-04-06 | 长沙证通云计算有限公司 | 一种基于分布式存储系统的代理客户端存储加速方法及系统 |
CN107888687B (zh) * | 2017-11-15 | 2020-06-16 | 长沙证通云计算有限公司 | 一种基于分布式存储系统的代理客户端存储加速方法及系统 |
CN110083549A (zh) * | 2019-04-01 | 2019-08-02 | 福建天泉教育科技有限公司 | 一种缓存读写的方法及终端 |
CN115098045A (zh) * | 2022-08-23 | 2022-09-23 | 成都止观互娱科技有限公司 | 一种数据存储系统及网络数据读取和写入方法 |
CN115098045B (zh) * | 2022-08-23 | 2022-11-25 | 成都止观互娱科技有限公司 | 一种数据存储系统及网络数据读取和写入方法 |
CN116048425A (zh) * | 2023-03-09 | 2023-05-02 | 浪潮电子信息产业股份有限公司 | 一种分层缓存方法、系统及相关组件 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103744975A (zh) | 基于分布式文件的高效缓存服务器 | |
US10782880B2 (en) | Apparatus and method for providing storage for providing cloud services | |
TWI610187B (zh) | 用於自主記憶體搜尋之方法及系統 | |
CN102810107B (zh) | 重复数据的处理方法 | |
US20130227047A1 (en) | Methods for managing content stored in cloud-based storages | |
EP2879040B1 (en) | Data storage method, data storage apparatus, and storage device | |
CN104765661B (zh) | 一种云存储服务中元数据服务节点的多节点热备方法 | |
CN104657366B (zh) | 海量日志写入数据库的方法、装置和日志容灾系统 | |
US11507277B2 (en) | Key value store using progress verification | |
US9639398B1 (en) | Burst throttling with sequential operation detection | |
CN109144406A (zh) | 分布式存储系统中元数据存储方法、系统及存储介质 | |
CN103412929A (zh) | 一种海量数据的存储方法 | |
CN103699429A (zh) | 虚拟机迁移方法及装置 | |
CN104079600A (zh) | 文件存储方法、装置、访问客户端及元数据服务器系统 | |
CN104407990B (zh) | 一种磁盘访问方法及装置 | |
JPWO2009066611A1 (ja) | 仮想マシン向けデータ格納システム、データ格納方法およびデータ格納用プログラム | |
CN104021088A (zh) | 日志存储方法和装置 | |
WO2016101662A1 (zh) | 一种数据处理方法及相关服务器 | |
WO2016091124A1 (zh) | 一种文件截断方法和装置 | |
US9639397B1 (en) | Dynamic burst throttling for multi-tenant storage | |
US10025680B2 (en) | High throughput, high reliability data processing system | |
US20140025630A1 (en) | Data-store management apparatus, data providing system, and data providing method | |
CN105574008A (zh) | 应用于分布式文件系统的任务调度方法和设备 | |
JP2018129074A5 (ja) | ストレージシステム、およびストレージシステムの制御方法 | |
CN105653566B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140423 |
|
WD01 | Invention patent application deemed withdrawn after publication |