The invention provides a non blocking asynchronous disk file based on the read and write speed control method, the specific method is: to create a non blocking socket, the socket by using select to implement a timer, and set a default timeout; the maximum stable set file where the disk can provide the read and write speed and disk file read and write and read and write path rate; the size of the data blocks of each set of read and write operations, and calculate the disk file read and write the time required; according to the set disk file read and write path, open the path of the file to read and write non blocking mode, and will be added to the file handle the select event monitoring queue, in the thread of the disk read and write files to read and write operations to complete the timeout and subsequent processing. By using non blocking disk file read and write operation and asynchronous event notification method, accurate and reliable read / write rate control of disk files is realized.
【技术实现步骤摘要】
一种基于异步非阻塞的磁盘文件读写速率控制方法
本专利技术涉及一种磁盘文件读写速率控制方法,特别是涉及一种基于异步非阻塞的磁盘文件读写速率控制方法,在非阻塞的磁盘文件读写过程中实现对速率的控制。
技术介绍
在项目应用环境中,我们需要磁盘提供稳定的文件读写速率并能够对读写速率进行精准控制。在对多个磁盘文件同时进行读写时,会出现读写速率有的较快有的较慢或者时快时慢的情况。这种情况发生在VOD点播系统中流媒体服务器边下载节目文件边提供节目流推送的过程中时,如果节目文件所在服务器不能提供稳定的下载速率,将导致流媒体服务器无法按节目码率推送文件内容到点播客户端,进一步导致点播客户端视频画面和声音出现停顿现象,严重影响用户观看效果。因此,节目文件服务器必须为每个下载的节目文件提供稳定的下载速率。同时,节目文件服务器需要具备对大量文件的高并发下载提供稳定的速率控制能力。要对磁盘文件读写速率进行精准控制需要一个高精度的定时器。由于系统定时器的实现及使用机制会导致其存在毫秒级的误差,这种误差的叠加会严重影响控制速率的准确性。在这种情况下,同时进行大量文件的读写操作会使对速率准确而稳定的控制变得非常困难。因此,常规的技术方法难于做到在高并发条件下对磁盘文件读写速率进行准确稳定的控制。
技术实现思路
本专利技术要解决的技术问题是提供一种基于异步非阻塞的磁盘文件读写速率控制方法,实现对磁盘文件精准和可靠的读写速率控制。本专利技术采用的技术方案如下:一种基于异步非阻塞的磁盘文件读写速率控制方法,具体方法为:S1、创建一个非阻塞套接字,使用select通过该套接字实现一个定时器,为定时器设 ...
【技术保护点】
一种基于异步非阻塞的磁盘文件读写速率控制方法,具体方法为:S1、创建一个非阻塞套接字,使用select通过该套接字实现一个定时器,为定时器设置一个默认超时时间;S2、设置文件所在磁盘能够提供的最大稳定读写速率;S3、设置磁盘文件的读写路径和读写速率,该磁盘文件的读写速率不大于所述最大稳定读写速率;S4、设置每次读写操作的数据块的大小,并根据所述磁盘文件的读写速率和每次读写操作的数据块的大小,计算得到磁盘文件读写所需要的时间;S5、根据所设置的磁盘文件的读写路径,以非阻塞方式打开该读写路径中的文件,并将该文件句柄添加到select的事件监视队列中,在工作线程中对磁盘文件读写超时和读写操作完成进行后续处理。
【技术特征摘要】
1.一种基于异步非阻塞的磁盘文件读写速率控制方法,具体方法为:S1、创建一个非阻塞套接字,使用select通过该套接字实现一个定时器,为定时器设置一个默认超时时间;S2、设置文件所在磁盘能够提供的最大稳定读写速率;S3、设置磁盘文件的读写路径和读写速率,该磁盘文件的读写速率不大于所述最大稳定读写速率;S4、设置每次读写操作的数据块的大小,并根据所述磁盘文件的读写速率和每次读写操作的数据块的大小,计算得到磁盘文件读写所需要的时间;S5、根据所设置的磁盘文件的读写路径,以非阻塞方式打开该读写路径中的文件,并将该文件句柄添加到select的事件监视队列中,在工作线程中对磁盘文件读写超时和读写操作完成进行后续处理。2.根据权利要求1所述的磁盘文件读写速率控制方法,所述方法还包括,根据磁盘能够提供的最大稳定读写速率,和正在进行文件读写操作的所用的速率和,计算该磁盘当前剩余的可用读写速率,以非阻塞方式打开满足条件的其他读写路径中的文件,并将该文件句柄添加到select的事件监视队列中,在工作线程中对磁盘文件读写超时和读写操作完成进行后续处理。3.根据权利要求1或2所述的磁盘文件读写速率控制方法,对磁盘文件读写超时进行后续处理的...
【专利技术属性】
技术研发人员:李桂成,
申请(专利权)人:成都广达新网科技股份有限公司,
类型:发明
国别省市:四川,51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。