CN106775447B - 一种基于异步非阻塞的磁盘文件读写速率控制方法 - Google Patents

一种基于异步非阻塞的磁盘文件读写速率控制方法 Download PDF

Info

Publication number
CN106775447B
CN106775447B CN201610998027.3A CN201610998027A CN106775447B CN 106775447 B CN106775447 B CN 106775447B CN 201610998027 A CN201610998027 A CN 201610998027A CN 106775447 B CN106775447 B CN 106775447B
Authority
CN
China
Prior art keywords
read
write
file
disk
disk file
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.)
Expired - Fee Related
Application number
CN201610998027.3A
Other languages
English (en)
Other versions
CN106775447A (zh
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.)
Chengdu Guangda Hengji Communication Technology Co., Ltd
Original Assignee
Chengdu Guangda New Network Technology Co Ltd
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 Chengdu Guangda New Network Technology Co Ltd filed Critical Chengdu Guangda New Network Technology Co Ltd
Priority to CN201610998027.3A priority Critical patent/CN106775447B/zh
Publication of CN106775447A publication Critical patent/CN106775447A/zh
Application granted granted Critical
Publication of CN106775447B publication Critical patent/CN106775447B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明提供了一种基于异步非阻塞的磁盘文件读写速率控制方法,具体方法为:创建一个非阻塞套接字,使用select通过该套接字实现一个定时器,并设置一个默认超时时间;设置文件所在磁盘能够提供的最大稳定读写速率和磁盘文件的读写路径和读写速率;设置每次读写操作的数据块的大小,并计算得到磁盘文件读写所需要的时间;根据所设置的磁盘文件的读写路径,以非阻塞方式打开该读写路径中的文件,并将该文件句柄添加到select的事件监视队列中,在工作线程中对磁盘文件读写超时和读写操作完成进行后续处理。通过采用非阻塞的磁盘文件读写操作与异步事件通知的方法,实现了对磁盘文件精准和可靠的读写速率控制。

Description

一种基于异步非阻塞的磁盘文件读写速率控制方法
技术领域
本发明涉及一种磁盘文件读写速率控制方法,特别是涉及一种基于异步非阻塞的磁盘文件读写速率控制方法,在非阻塞的磁盘文件读写过程中实现对速率的控制。
背景技术
在项目应用环境中,我们需要磁盘提供稳定的文件读写速率并能够对读写速率进行精准控制。在对多个磁盘文件同时进行读写时,会出现读写速率有的较快有的较慢或者时快时慢的情况。这种情况发生在VOD点播系统中流媒体服务器边下载节目文件边提供节目流推送的过程中时,如果节目文件所在服务器不能提供稳定的下载速率,将导致流媒体服务器无法按节目码率推送文件内容到点播客户端,进一步导致点播客户端视频画面和声音出现停顿现象,严重影响用户观看效果。因此,节目文件服务器必须为每个下载的节目文件提供稳定的下载速率。同时,节目文件服务器需要具备对大量文件的高并发下载提供稳定的速率控制能力。
要对磁盘文件读写速率进行精准控制需要一个高精度的定时器。由于系统定时器的实现及使用机制会导致其存在毫秒级的误差,这种误差的叠加会严重影响控制速率的准确性。在这种情况下,同时进行大量文件的读写操作会使对速率准确而稳定的控制变得非常困难。因此,常规的技术方法难于做到在高并发条件下对磁盘文件读写速率进行准确稳定的控制。
发明内容
本发明要解决的技术问题是提供一种基于异步非阻塞的磁盘文件读写速率控制方法,实现对磁盘文件精准和可靠的读写速率控制。
本发明采用的技术方案如下:一种基于异步非阻塞的磁盘文件读写速率控制方法,具体方法为:
S1、创建一个非阻塞套接字,使用select通过该套接字实现一个定时器,为定时器设置一个默认超时时间;
S2、设置文件所在磁盘能够提供的最大稳定读写速率;
S3、设置磁盘文件的读写路径和读写速率,该磁盘文件的读写速率不大于所述最大稳定读写速率;
S4、设置每次读写操作的数据块的大小,并根据所述磁盘文件的读写速率和每次读写操作的数据块的大小,计算得到磁盘文件读写所需要的时间;
S5、根据所设置的磁盘文件的读写路径,以非阻塞方式打开该读写路径中的文件,并将该文件句柄添加到select的事件监视队列中,在工作线程中对磁盘文件读写超时和读写操作完成进行后续处理。
利用select微秒级的超时精度管理磁盘文件在单位时间内的读写操作次数,实现对速率的精准控制。设置文件所在磁盘能够提供的最大稳定读写速率,使控制的总读写速率不超过磁盘文件的最大稳定读写速率,保证速率控制的可靠稳定。
所述方法还包括,根据磁盘能够提供的最大稳定读写速率,和正在进行文件读写操作的所用的速率和,计算该磁盘当前剩余的可用读写速率,以非阻塞方式打开满足条件的其他读写路径中的文件,并将该文件句柄添加到select的事件监视队列中,在工作线程中对磁盘文件读写超时和读写操作完成进行后续处理。
使select工作在可控制的超时循环中,在超时循环中采用非阻塞的磁盘文件读写方式实现对多个磁盘文件的同时读写操作,使磁盘能够达到最大的稳定读写速率,实现并发性、高效性。
对磁盘文件读写超时进行后续处理的具体方法为:在定时器超时返回时,根据所设定的默认超时时间和计算得到磁盘文件读写所需要的时间,计算并对所述定时器设置下一个所述默认超时时间并进行更新,然后再次执行读写操作。
对读写操作完成进行后续处理的具体方法为:在读写操作完成返回时,根据所设定的默认超时时间和计算得到磁盘文件读写所需要的时间,计算并所述定时器设置下一个所述默认超时时间并进行更新。
所述磁盘能够提供的最大稳定读写速率通过测试过程预先确定。
所述方法还包括,所述S4中设置每次读写操作的数据块的大小的方法为:根据磁盘的IO特性为磁盘设置一个每次文件读写操作的数据库大小,后续的读写操作不能大于该数据库大小。
所述方法还包括,对磁盘的进行标识,记录每个磁盘能够提供的最大稳定读写速率。
所述方法还包括,在读写操作完成返回时,计算并对定时器设置下一个所述默认超时时间后,等待该默认超时时间到来时再执行下一个文件的读写操作。
与现有技术相比,本发明的有益效果是:使用select I/O多路复用模型,通过采用非阻塞的磁盘文件读写操作与异步事件通知的方法,实现了对磁盘文件精准和可靠的读写速率控制;设置文件所在磁盘能够提供的最大稳定读写速率,使控制的总读写速率不超过磁盘文件的最大稳定读写速率,保证速率控制的可靠稳定。select工作在可控制的超时循环中,在超时循环中采用非阻塞的磁盘文件读写方式实现对多个磁盘文件的同时读写操作,使磁盘能够达到最大的稳定读写速率,实现并发性和高效性。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本说明书(包括摘要)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
具体实施例1
一种基于异步非阻塞的磁盘文件读写速率控制方法,具体方法为:
S1、创建一个非阻塞套接字,使用select通过该套接字实现一个定时器,为定时器设置一个默认超时时间;
S2、设置文件所在磁盘能够提供的最大稳定读写速率;
S3、设置磁盘文件的读写路径和读写速率,该磁盘文件的读写速率不大于所述最大稳定读写速率;
S4、设置每次读写操作的数据块的大小,并根据所述磁盘文件的读写速率和每次读写操作的数据块的大小,计算得到磁盘文件读写所需要的时间;
S5、根据所设置的磁盘文件的读写路径,以非阻塞方式打开该读写路径中的文件,并将该文件句柄添加到select的事件监视队列中,在工作线程中对磁盘文件读写超时和读写操作完成进行后续处理。直到读写操作到达文件尾部或在外部函数控制下结束。
在本具体实施例中,在工作线程中创建一个非阻塞方式的套接字,select在工作线程中使用该套接字进行超时检测;创建一个结构体数组,用于存放磁盘最大稳定读写速率,在工作线程中将测试过程得到的每个磁盘能够提供的最大稳定读写速率保存到结构体数组中;采用一个输入接口,用于设置磁盘文件路径和控制读写速率;采用一个结构体,用于存放磁盘文件路径、打开的磁盘文件的句柄和读写速率,并设置一个用于管理该结构体的hash_map。
使用select I/O多路复用模型,利用select微秒级的超时精度管理磁盘文件在单位时间内的读写操作次数,实现对速率的精准控制。设置文件所在磁盘能够提供的最大稳定读写速率,使控制的总读写速率不超过磁盘文件的最大稳定读写速率,保证速率控制的可靠稳定;设置一个读写操作完成和超时后的外部回调函数,用于向外部交互文件读写内容和状态信息(包括超时完成信息和读写操作完成信息)。
具体实施例2
在具体实施例1的基础上,所述方法还包括,根据磁盘能够提供的最大稳定读写速率,和正在进行文件读写操作的所用的速率和,计算该磁盘当前剩余的可用读写速率,以非阻塞方式打开满足条件的其他读写路径中的文件,并将该文件句柄添加到select的事件监视队列中,在工作线程中对磁盘文件读写超时和读写操作完成进行后续处理。在本具体实施例中,将磁盘当前剩余的可用读写速率存放于所述结构体数组中,此时,磁盘剩余可用读写速率就等于磁盘最大稳定读写速率。在输入接口中,检查输入速率是否小于等于输入文件所在磁盘剩余可用读写速率。以非阻塞方式打开满足条件的输入文件,将文件路径、打开后的文件句柄和读写速率保存到结构体中,将该结构体添加到hash_map进行管理。
具体实施例3
在具体实施例1或2的基础上,对磁盘文件读写超时进行后续处理的具体方法为:在定时器超时返回时,根据所设定的默认超时时间和计算得到磁盘文件读写所需要的时间,计算并对所述定时器设置下一个所述默认超时时间并进行更新,然后再次执行读写操作。
具体实施例4
在具体实施例1到3之一的基础上,对读写操作完成进行后续处理的具体方法为:在读写操作完成返回时,根据所设定的默认超时时间和计算得到磁盘文件读写所需要的时间,计算并所述定时器设置下一个所述默认超时时间并进行更新。
具体实施例5
在具体实施例1到4之一的基础上,所述磁盘能够提供的最大稳定读写速率通过测试过程预先确定。
具体实施例6
在具体实施例1到5之一的基础上,所述方法还包括,所述S4中设置每次读写操作的数据块的大小的方法为:根据磁盘的IO特性为磁盘设置一个每次文件读写操作的数据库大小,后续的读写操作不能大于该数据库大小。
具体实施例7
在具体实施例1到6之一的基础上,所述方法还包括,对磁盘的进行标识,记录每个磁盘能够提供的最大稳定读写速率。在本具体实施例中,将磁盘标识存放于所述结构体数组中。
具体实施例8
在具体实施例4到7之一的基础上,所述方法还包括,在读写操作完成返回时,计算并对定时器设置下一个所述默认超时时间后,等待该默认超时时间到来时再执行下一个文件的读写操作。在工作线程中根据读写文件所在磁盘的数据块大小和读写速率为select超时循环计算设置新的超时间隔时间,然后发起一次读写操作。
具体实施例9
在具体实施例1到8之一的基础上,所述方法还包括,所述回调函数提供流程控制,完成对磁盘文件读写的外部控制。

Claims (7)

1.一种基于异步非阻塞的磁盘文件读写速率控制方法,具体方法为:
S1、创建一个非阻塞套接字,使用select通过该套接字实现一个定时器,为定时器设置一个默认超时时间;
S2、设置文件所在磁盘能够提供的最大稳定读写速率;
S3、设置磁盘文件的读写路径和读写速率,该磁盘文件的读写速率不大于所述最大稳定读写速率;
S4、设置每次读写操作的数据块的大小,并根据所述磁盘文件的读写速率和每次读写操作的数据块的大小,计算得到磁盘文件读写所需要的时间;
S5、根据所设置的磁盘文件的读写路径,以非阻塞方式打开该读写路径中的文件,并将该文件句柄添加到select的事件监视队列中,在工作线程中对磁盘文件读写超时和读写操作完成进行后续处理;
所述方法还包括,根据磁盘能够提供的最大稳定读写速率,和正在进行文件读写操作的所用的速率和,计算该磁盘当前剩余的可用读写速率,以非阻塞方式打开满足条件的其他读写路径中的文件,并将该文件句柄添加到select的事件监视队列中,在工作线程中对磁盘文件读写超时和读写操作完成进行后续处理。
2.根据权利要求1所述的磁盘文件读写速率控制方法,对磁盘文件读写超时进行后续处理的具体方法为:在定时器超时返回时,根据所设定的默认超时时间和计算得到磁盘文件读写所需要的时间,计算并对所述定时器设置下一个所述默认超时时间并进行更新,然后再次执行读写操作。
3.根据权利要求1所述的磁盘文件读写速率控制方法,对读写操作完成进行后续处理的具体方法为:在读写操作完成返回时,根据所设定的默认超时时间和计算得到磁盘文件读写所需要的时间,计算并对所述定时器设置下一个所述默认超时时间并进行更新。
4.根据权利要求1所述的磁盘文件读写速率控制方法,所述磁盘能够提供的最大稳定读写速率通过测试过程预先确定。
5.根据权利要求1所述的磁盘文件读写速率控制方法,所述方法还包括,所述S4中设置每次读写操作的数据块的大小的方法为:根据磁盘的IO特性为磁盘设置一个每次文件读写操作的数据库大小,后续的读写操作不能大于该数据库大小。
6.根据权利要求1所述的磁盘文件读写速率控制方法,所述方法还包括,对磁盘的进行标识,记录每个磁盘能够提供的最大稳定读写速率。
7.根据权利要求4所述的磁盘文件读写速率控制方法,所述方法还包括,在读写操作完成返回时,计算并对定时器设置下一个所述默认超时时间后,等待该默认超时时间到来时再执行下一个文件的读写操作。
CN201610998027.3A 2016-11-14 2016-11-14 一种基于异步非阻塞的磁盘文件读写速率控制方法 Expired - Fee Related CN106775447B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610998027.3A CN106775447B (zh) 2016-11-14 2016-11-14 一种基于异步非阻塞的磁盘文件读写速率控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610998027.3A CN106775447B (zh) 2016-11-14 2016-11-14 一种基于异步非阻塞的磁盘文件读写速率控制方法

Publications (2)

Publication Number Publication Date
CN106775447A CN106775447A (zh) 2017-05-31
CN106775447B true CN106775447B (zh) 2020-03-27

Family

ID=58973266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610998027.3A Expired - Fee Related CN106775447B (zh) 2016-11-14 2016-11-14 一种基于异步非阻塞的磁盘文件读写速率控制方法

Country Status (1)

Country Link
CN (1) CN106775447B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110399393B (zh) * 2018-04-16 2020-06-30 北京三快在线科技有限公司 数据处理方法、装置、介质及电子设备
CN117632198B (zh) * 2024-01-26 2024-05-07 深圳乐木骆科技有限公司 固件升级方法、设备、存储介质及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101651698A (zh) * 2007-12-12 2010-02-17 浙江大学 基于nio和io的面向发布订阅系统的传输方法
CN101982955A (zh) * 2010-11-19 2011-03-02 深圳华大基因科技有限公司 高性能文件传输系统及方法
CN102196002A (zh) * 2010-03-17 2011-09-21 同济大学 一种基于数据流通信的网络控制系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8478847B2 (en) * 2010-02-04 2013-07-02 International Business Machines Corporation Blocking a selected port prior to installation of an application

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101651698A (zh) * 2007-12-12 2010-02-17 浙江大学 基于nio和io的面向发布订阅系统的传输方法
CN102196002A (zh) * 2010-03-17 2011-09-21 同济大学 一种基于数据流通信的网络控制系统
CN101982955A (zh) * 2010-11-19 2011-03-02 深圳华大基因科技有限公司 高性能文件传输系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《高并发访问量下网络I/O模型选择的研究》;常正超;《电脑知识与技术》;20160731;第12卷(第19期);第28-29页 *

Also Published As

Publication number Publication date
CN106775447A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
CN102236705B (zh) 数据库重放的细粒度同步
US10430324B2 (en) System and method for automated intelligent mobile application testing
CN103136243B (zh) 基于云存储的文件系统去重方法及装置
CN109558457B (zh) 一种数据写入方法、装置、设备及存储介质
US10037255B2 (en) Device, method and program for performing system testing
WO2018068639A1 (zh) 数据恢复方法、装置和存储介质
CN106775447B (zh) 一种基于异步非阻塞的磁盘文件读写速率控制方法
US20240189724A1 (en) Videogame telemetry data and game asset tracker for session recordings
US10241888B2 (en) Method to verify correctness of computer system software and hardware components and corresponding test environment
US10901982B2 (en) Managing a data set
CN110134735A (zh) 分布式事务日志的存储方法及装置
CN106874343B (zh) 一种时序数据库的数据删除方法及系统
CN102624678A (zh) 系统验证的方法和服务器
US11709752B2 (en) Pause and resume in database system workload capture and replay
CN103279408A (zh) 独立冗余磁盘阵列raid性能的测试方法
US11341159B2 (en) In-stream data load in a replication environment
US8000952B2 (en) Method and system for generating multiple path application simulations
US12093166B2 (en) Systems and methods for automating test and validity
CN112148917B (zh) 媒体播放控制方法、装置及系统和计算机可读存储介质
US9990274B2 (en) Testing integrated business systems
US11301442B2 (en) Method and system for using array level time buckets to efficiently calculate top contributors using relevant performance metric
Campello SMR: The next generation of storage technology
Mandrioli et al. Dynamic models for the formal verification of big data applications via stochastic model checking
US20170300257A1 (en) Extraction of audit trails
Morschel et al. Improving Tape Restore Request Scheduling in the Storage System dCache

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200806

Address after: Floor 2, No.16, Gaopeng Avenue, high tech Zone, Chengdu, Sichuan 610000

Patentee after: Chengdu Guangda Hengji Communication Technology Co., Ltd

Address before: 610041 building four, building two, Shiyang Industrial Park, five village, Shiyang village, fifty-five village, Chengdu hi tech Zone, Sichuan, Qingyun

Patentee before: CHENGDU GUANGDA NEW NETWORK TECHNOLOGY Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200327

Termination date: 20201114