CN109743377A - 一种基于http的小文件读写优化方法 - Google Patents
一种基于http的小文件读写优化方法 Download PDFInfo
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于HTTP的小文件读写优化方法。它具体包括如下步骤:(1)写入执行:在数据写入时,由于先写入到缓存,再异步写入存储;(2)读取执行:在数据读取时,由于先从缓存中读取,如果缓存不存在,才会从实际存储读取;(3)删除执行:在数据删除时,由于从缓存中删除,再异步删除存储。本发明的有益效果是:根据业务场景,缓存配置合理,读取效率高,优化存储读写延时问题,解决在存储写入可能发生抖动时直播流不能流畅播放的问题。
Description
技术领域
本发明涉及文件读写相关技术领域,尤其是指一种基于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)删除成功或者失败,任务执行结束。
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)
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)
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 | 深圳忆联信息系统有限公司 | 带时效的数据读写方法、装置、计算机设备及存储介质 |
-
2018
- 2018-12-27 CN CN201811611731.4A patent/CN109743377A/zh active Pending
Patent Citations (6)
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)
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 |