CN109743377A - 一种基于http的小文件读写优化方法 - Google Patents

一种基于http的小文件读写优化方法 Download PDF

Info

Publication number
CN109743377A
CN109743377A CN201811611731.4A CN201811611731A CN109743377A CN 109743377 A CN109743377 A CN 109743377A CN 201811611731 A CN201811611731 A CN 201811611731A CN 109743377 A CN109743377 A CN 109743377A
Authority
CN
China
Prior art keywords
write
caching
read
http
storage
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
Application number
CN201811611731.4A
Other languages
English (en)
Inventor
李妃军
孙彦龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dang Hong Polytron Technologies Inc
Hangzhou Arcvideo Technology Co ltd
Original Assignee
Hangzhou Dang Hong Polytron Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dang Hong Polytron Technologies Inc filed Critical Hangzhou Dang Hong Polytron Technologies Inc
Priority to CN201811611731.4A priority Critical patent/CN109743377A/zh
Publication of CN109743377A publication Critical patent/CN109743377A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种基于HTTP的小文件读写优化方法。它具体包括如下步骤:(1)写入执行:在数据写入时,由于先写入到缓存,再异步写入存储;(2)读取执行:在数据读取时,由于先从缓存中读取,如果缓存不存在,才会从实际存储读取;(3)删除执行:在数据删除时,由于从缓存中删除,再异步删除存储。本发明的有益效果是:根据业务场景,缓存配置合理,读取效率高,优化存储读写延时问题,解决在存储写入可能发生抖动时直播流不能流畅播放的问题。

Description

一种基于HTTP的小文件读写优化方法
技术领域
本发明涉及文件读写相关技术领域,尤其是指一种基于HTTP的小文件读写优化方法。
背景技术
目前在视频直播领域中,HLS(HTTP Live Streaming)格式由于其良好的兼容性、便于CDN加速、便于形成时移回看等原因,占据着较大市场份额。因此很多服务商都会将直播流转成HLS,然后再通过时移回看系统,最后经CDN加速分发给终端用户播放。在生成直播时,很多系统会采用HTTP-PUT方式输入到使用Nginx或Tomcat等第三方开源软件塔建的HTTP服务,然后直接写入到磁盘中,如果磁盘写入一旦发生抖动,就会造成直播卡顿等现象,客户体验很差。
发明内容
本发明是为了克服现有技术中存在上述的不足,提供了一种保证直播流畅提高客户体验的基于HTTP的小文件读写优化方法。
为了实现上述目的,本发明采用以下技术方案:
一种基于HTTP的小文件读写优化方法,具体包括如下步骤:
(1)写入执行:在数据写入时,由于先写入到缓存,再异步写入存储;
(2)读取执行:在数据读取时,由于先从缓存中读取,如果缓存不存在,才会从实际存储读取;
(3)删除执行:在数据删除时,由于从缓存中删除,再异步删除存储。
在数据写入时,由于先写入到缓存,再异步写入存储,所以对外部来说会有较高的写入性能,即使在实际写入存储时速度比较低,也不会影响外部写入的性能;在数据读取时,由于先从缓存中读取,如果缓存不存在,才会从实际存储读取,所以只要根据业务场景,缓存配置合理,会有较高的读取效率;在数据删除时,由于先从缓存中删除,再异步删除存储,所以对外部来说会有较高的删除性能,即使在实际删除存储时速度比较低,也不会影响外部删除的性能;上述方法优化存储读写延时问题,解决在存储写入可能发生抖动时直播流不能流畅播放的问题。
作为优选,在步骤(1)中,写入执行的具体步骤如下:
(11)HTTP容器模块收到客户端写入请求,采用PUT方法;
(12)写入到缓存,并设置缓存时长;
(13)增加异步写入存储任务;如果有多个输出存储,则需要多个异步写入任务;
(14)HTTP容器返回执行结果,结束主流程;
(15)缓存模块中有个后台进程会定时扫描缓存,将过期的缓存清除。
作为优选,在步骤(13)中,异步写入存储的具体步骤如下:
(131)在缓存中查找文件是否过期;
(132)如果已经过期,则退出写入存储过程,认为写入失败;
(133)如果缓存未过期,则从缓存中读取文件内容,并写入到实际存储;
(134)写入过程如果失败,则重复步骤(131)到步骤(133)的过程,直播写入成功或者失败;
(135)写入成功或者失败,任务执行结束。
作为优选,在步骤(2)中,读取执行的具体步骤如下:
(21)HTTP容器模块收到客户端读取请求,采用GET方法;
(22)如果缓存中存在该文件,则直接返回给客户端;
(23)如果缓存中不存在该文件,则从实际存储中读取,同步返回;
(24)根据缓存规则,将文件内容写入到缓存,如果不需要缓存,则跳过;
(25)HTTP容器返回执行结果,结束读取流程。
作为优选,在步骤(3)中,删除执行的具体步骤如下:
(31)HTTP容器模块收到客户端删除请求,采用DELETE方法;
(32)从缓存删除;
(33)增加异步删除任务;如果有多个输出存储,则需要多个异步删除任务;
(34)HTTP容器返回执行结果,结束主流程。
作为优选,在步骤(33)中,异步写入存储的具体步骤如下:
(331)检查是否超过最大重试次数;
(332)如果已经超过最大重试次数,则退出删除存储过程,认为删除失败;
(333)如果未超过最大重试次数,则从实际存储中删除文件;
(334)删除过程如果失败,则重复步骤(331)到步骤(333)的过程,直播删除成功或者失败;
(335)删除成功或者失败,任务执行结束。
本发明的有益效果是:根据业务场景,缓存配置合理,读取效率高,优化存储读写延时问题,解决在存储写入可能发生抖动时直播流不能流畅播放的问题。
附图说明
图1是本发明的写入执行过程图;
图2是本发明的读取执行过程图;
图3是本发明的删除执行过程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述。
一种基于HTTP的小文件读写优化方法,具体包括如下步骤:
(1)写入执行:在数据写入时,由于先写入到缓存,再异步写入存储;
如图1所示,写入执行的具体步骤如下:
(11)HTTP容器模块收到客户端写入请求,采用PUT方法;
(12)写入到缓存,并设置缓存时长;
(13)增加异步写入存储任务;如果有多个输出存储,则需要多个异步写入任务;
其中:异步写入存储的具体步骤如下:
(131)在缓存中查找文件是否过期;
(132)如果已经过期,则退出写入存储过程,认为写入失败;
(133)如果缓存未过期,则从缓存中读取文件内容,并写入到实际存储;
(134)写入过程如果失败,则重复步骤(131)到步骤(133)的过程,直播写入成功或者失败;
(135)写入成功或者失败,任务执行结束。
(14)HTTP容器返回执行结果,结果主流程;
(15)缓存模块中有个后台进程会定时扫描缓存,将过期的缓存清除。
(2)读取执行:在数据读取时,由于先从缓存中读取,如果缓存不存在,才会从实际存储读取;
如图2所示,读取执行的具体步骤如下:
(21)HTTP容器模块收到客户端读取请求,采用GET方法;
(22)如果缓存中存在该文件,则直接返回给客户端;
(23)如果缓存中不存在该文件,则从实际存储中读取,同步返回;
(24)根据缓存规则,将文件内容写入到缓存,如果不需要缓存,则跳过;
(25)HTTP容器返回执行结果,结束读取流程。
(3)删除执行:在数据删除时,由于从缓存中删除,再异步删除存储;
如图3所示,删除执行的具体步骤如下:
(31)HTTP容器模块收到客户端删除请求,采用DELETE方法;
(32)从缓存删除;
(33)增加异步删除任务;如果有多个输出存储,则需要多个异步删除任务;
其中:异步写入存储的具体步骤如下:
(331)检查是否超过最大重试次数;
(332)如果已经超过最大重试次数,则退出删除存储过程,认为删除失败;
(333)如果未超过最大重试次数,则从实际存储中删除文件;
(334)删除过程如果失败,则重复步骤(331)到步骤(333)的过程,直播删除成功或者失败;
(335)删除成功或者失败,任务执行结束。
(34)HTTP容器返回执行结果,结束主流程。
其中,HTTP容器:该模块面向客户端,接收文件的写入(HTTP PUT)、读取(HTTPGET)、删除(HTTP DELETE)请求,并将经过其他模块处理后的结果或数据返回给客户端。缓存模块:该模块管理文件的缓存及其生命周期,可以根据不同文件类型设置不同的缓存时间。读写模块:该模块将缓存中的文件内容写入到实际的存储,该模块根据需要可以扩展支持多种后端存储,比如本地存储、HTTP存储、FTP存储、对象存储等,同时也可以支持一进多出模式。
在数据写入时,由于先写入到缓存,再异步写入存储,所以对外部来说会有较高的写入性能,即使在实际写入存储时速度比较低,也不会影响外部写入的性能;在数据读取时,由于先从缓存中读取,如果缓存不存在,才会从实际存储读取,所以只要根据业务场景,缓存配置合理,会有较高的读取效率;在数据删除时,由于先从缓存中删除,再异步删除存储,所以对外部来说会有较高的删除性能,即使在实际删除存储时速度比较低,也不会影响外部删除的性能。另外,该存储方案也可以有较高好扩展性,可以根据需要可以扩展支持多种后端存储,比如本地存储、HTTP存储、FTP存储、对象存储等,也可以支持一进多出的存储模式,可以起到备份的作用。

Claims (6)

1.一种基于HTTP的小文件读写优化方法,其特征是,具体包括如下步骤:
(1)写入执行:在数据写入时,由于先写入到缓存,再异步写入存储;
(2)读取执行:在数据读取时,由于先从缓存中读取,如果缓存不存在,才会从实际存储读取;
(3)删除执行:在数据删除时,由于从缓存中删除,再异步删除存储。
2.根据权利要求1所述的一种基于HTTP的小文件读写优化方法,其特征是,在步骤(1)中,写入执行的具体步骤如下:
(11)HTTP容器模块收到客户端写入请求,采用PUT方法;
(12)写入到缓存,并设置缓存时长;
(13)增加异步写入存储任务;如果有多个输出存储,则需要多个异步写入任务;
(14)HTTP容器返回执行结果,结束主流程;
(15)缓存模块中有个后台进程会定时扫描缓存,将过期的缓存清除。
3.根据权利要求2所述的一种基于HTTP的小文件读写优化方法,其特征是,其特征是,在步骤(13)中,异步写入存储的具体步骤如下:
(131)在缓存中查找文件是否过期;
(132)如果已经过期,则退出写入存储过程,认为写入失败;
(133)如果缓存未过期,则从缓存中读取文件内容,并写入到实际存储;
(134)写入过程如果失败,则重复步骤(131)到步骤(133)的过程,直播写入成功或者失败;
(135)写入成功或者失败,任务执行结束。
4.根据权利要求1所述的一种基于HTTP的小文件读写优化方法,其特征是,在步骤(2)中,读取执行的具体步骤如下:
(21)HTTP容器模块收到客户端读取请求,采用GET方法;
(22)如果缓存中存在该文件,则直接返回给客户端;
(23)如果缓存中不存在该文件,则从实际存储中读取,同步返回;
(24)根据缓存规则,将文件内容写入到缓存,如果不需要缓存,则跳过;
(25)HTTP容器返回执行结果,结束读取流程。
5.根据权利要求1所述的一种基于HTTP的小文件读写优化方法,其特征是,在步骤(3)中,删除执行的具体步骤如下:
(31)HTTP容器模块收到客户端删除请求,采用DELETE方法;
(32)从缓存删除;
(33)增加异步删除任务;如果有多个输出存储,则需要多个异步删除任务;
(34)HTTP容器返回执行结果,结束主流程。
6.根据权利要求5所述的一种基于HTTP的小文件读写优化方法,其特征是,其特征是,在步骤(33)中,异步写入存储的具体步骤如下:
(331)检查是否超过最大重试次数;
(332)如果已经超过最大重试次数,则退出删除存储过程,认为删除失败;
(333)如果未超过最大重试次数,则从实际存储中删除文件;
(334)删除过程如果失败,则重复步骤(331)到步骤(333)的过程,直播删除成功或者失败;
(335)删除成功或者失败,任务执行结束。
CN201811611731.4A 2018-12-27 2018-12-27 一种基于http的小文件读写优化方法 Pending CN109743377A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811611731.4A CN109743377A (zh) 2018-12-27 2018-12-27 一种基于http的小文件读写优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811611731.4A CN109743377A (zh) 2018-12-27 2018-12-27 一种基于http的小文件读写优化方法

Publications (1)

Publication Number Publication Date
CN109743377A true CN109743377A (zh) 2019-05-10

Family

ID=66361421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811611731.4A Pending CN109743377A (zh) 2018-12-27 2018-12-27 一种基于http的小文件读写优化方法

Country Status (1)

Country Link
CN (1) CN109743377A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581241A (zh) * 2020-04-21 2020-08-25 上海爱数信息技术股份有限公司 一种无锁处理的读缓存方法
CN113485978A (zh) * 2021-06-23 2021-10-08 华泰证券股份有限公司 一种提升文件存储nas读写吞吐能力的方法、系统及存储器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678173A (zh) * 2013-12-31 2014-03-26 金蝶软件(中国)有限公司 缓存失效方法和装置
CN105930100A (zh) * 2016-04-15 2016-09-07 烽火通信科技股份有限公司 一种优化usim卡文件读写速度及频率的实现方法
CN106604043A (zh) * 2016-12-30 2017-04-26 Ut斯达康(深圳)技术有限公司 一种互联网直播方法及直播服务器
CN106843770A (zh) * 2017-01-23 2017-06-13 北京思特奇信息技术股份有限公司 一种分布式文件系统中小文件数据存储、读取方法及装置
CN107786623A (zh) * 2016-09-20 2018-03-09 平安科技(深圳)有限公司 消息异步处理方法和装置
CN109032505A (zh) * 2018-06-26 2018-12-18 深圳忆联信息系统有限公司 带时效的数据读写方法、装置、计算机设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678173A (zh) * 2013-12-31 2014-03-26 金蝶软件(中国)有限公司 缓存失效方法和装置
CN105930100A (zh) * 2016-04-15 2016-09-07 烽火通信科技股份有限公司 一种优化usim卡文件读写速度及频率的实现方法
CN107786623A (zh) * 2016-09-20 2018-03-09 平安科技(深圳)有限公司 消息异步处理方法和装置
CN106604043A (zh) * 2016-12-30 2017-04-26 Ut斯达康(深圳)技术有限公司 一种互联网直播方法及直播服务器
CN106843770A (zh) * 2017-01-23 2017-06-13 北京思特奇信息技术股份有限公司 一种分布式文件系统中小文件数据存储、读取方法及装置
CN109032505A (zh) * 2018-06-26 2018-12-18 深圳忆联信息系统有限公司 带时效的数据读写方法、装置、计算机设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581241A (zh) * 2020-04-21 2020-08-25 上海爱数信息技术股份有限公司 一种无锁处理的读缓存方法
CN111581241B (zh) * 2020-04-21 2023-08-18 上海爱数信息技术股份有限公司 一种无锁处理的读缓存方法
CN113485978A (zh) * 2021-06-23 2021-10-08 华泰证券股份有限公司 一种提升文件存储nas读写吞吐能力的方法、系统及存储器
CN113485978B (zh) * 2021-06-23 2023-07-21 华泰证券股份有限公司 一种提升文件存储nas读写吞吐能力的方法、系统及存储器

Similar Documents

Publication Publication Date Title
CN109491859B (zh) 针对Kubernetes集群中容器日志的收集方法
US10268398B2 (en) Storage system, recording medium for storing control program and control method for storage system
CN104580437A (zh) 一种云存储客户端及其高效数据访问方法
CN101510219B (zh) 文件数据访问方法、装置以及系统
CN104657366B (zh) 海量日志写入数据库的方法、装置和日志容灾系统
CN108647151A (zh) 一种全闪系统元数据落盘方法、装置、设备及存储介质
CN102902724B (zh) 海量栅格瓦块地图发布方法
CN103514258B (zh) 一种基于离线缓存文件操作集中记录预处理并重放的方法
CN103246696A (zh) 高并发数据库的访问方法及应用于多服务器系统的方法
CN101707633B (zh) 一种基于文件系统的消息中间件持久消息的存储方法
CN101651825A (zh) 数据采集上传方法和系统
CN106357463B (zh) 非入侵式的访问链路跟踪实现方法及其系统
CN108776682B (zh) 基于对象存储的随机读写对象的方法和系统
CN110457305B (zh) 数据去重方法、装置、设备及介质
CN109743377A (zh) 一种基于http的小文件读写优化方法
CN102479249A (zh) 一种嵌入式浏览器内存缓存数据的淘汰方法
CN101068341B (zh) 流媒体调度系统及其媒体文件调度方法
CN105488108A (zh) 一种多个视频文件高速并行存储的方法及装置
CN106303671A (zh) 一种流媒体的播放方法
CN111159176A (zh) 一种海量流数据的存储和读取的方法和系统
CN105677579A (zh) 缓存系统中的数据访问方法和系统
CN110046135B (zh) 一种客户端日志不易失的存储方法
CN105631010A (zh) 一种基于hdfs小文件存储的优化方法
JP2005339262A (ja) ファイルシステムおよびその制御方法
CN103236938A (zh) 一种基于缓存及异步处理技术的用户行为采集方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190510