【技术实现步骤摘要】
一种数据读取方法、系统、电子设备及存储介质
[0001]本专利技术涉及数据处理
,尤其涉及一种数据读取方法、系统、电子设备及存储介质。
技术介绍
[0002]数据中心中网络节点上的传统网络应用大多是基于x86平台上Linux内核的网络协议栈实现的。自从Linux诞生之日起,如何对网络协议栈进行改进一直是行业研究的热点。
[0003]目前,针对Linux内核协议栈进行优化的工作如火如荼,发布的高性能数据包收发(Input/Output,IO)框架,例如Intel DPDK、Netmap等,这些高性能数据包收发框架提高了x86平台的数据包处理性能,但其本身并没有提供完整的网络协议栈,阻碍了其在业界的广泛使用;基于高性能数据包收发框架开发的用户态协议栈,例如mTCP、IX等,具有较高的性能,但是其提供的接口(Application Programming Interface,API)与可移植操作系统接口(Portable Operating System Interface for Unix,POSIX)的语义和功能 ...
【技术保护点】
【技术特征摘要】
1.一种数据读取方法,其特征在于,包括:应用程序通过用户态协议栈调用用户态阻塞式数据读取接口,读取数据文件;在所述数据文件为网络套接字,且所述网络套接字的接收队列中无可读数据的情况下,创建先入先出队列,其中,所述先入先出队列中无可读数据;通过内核调用内核态阻塞式数据读取接口,对所述先入先出队列进行监测;在所述先入先出队列中无可读数据的情况下,内核使应用程序进入阻塞状态,并等待新的可读数据。2.根据权利要求1所述的数据读取方法,其特征在于,所述应用程序通过用户态协议栈调用用户态阻塞式数据读取接口,读取数据文件的步骤之后,所述方法还包括:在所述数据文件为非网络套接字的情况下,通过内核调用内核态阻塞式数据读取接口,读取所述非网络套接字。3.根据权利要求2所述的数据读取方法,其特征在于,所述读取所述非网络套接字的步骤之后,所述方法还包括:在所述非网络套接字的接收队列中无可读数据的情况下,内核使所述应用程序进入阻塞状态,并等待新的可读数据。4.根据权利要求2所述的数据读取方法,其特征在于,所述读取所述非网络套接字的步骤之后,所述方法还包括:在所述非网络套接字的接收队列中有可读数据的情况下,内核返回所述可读数据给所述应用程序。5.根据权利要求1所述的数据读取方法,其特征在于,所述应用程序通过用户态协议栈调用用户态阻塞式数据读取接口,读取数据文件的步骤之后,所述方法还包括:在所述数据文件为网络套接字,且所述网络套接字的接收队列中有可读数据的情况下,用户态协议栈返回所述可读数据给所述应用程序。6.根据权利要求1所述的数据读取方法,其特征在于,所述等待新的可读数据的步骤之后,所述方法还包括:在所述网络套接字...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。