CN110837482B - 分布式块存储低延迟控制方法、系统及设备 - Google Patents
分布式块存储低延迟控制方法、系统及设备 Download PDFInfo
- Publication number
- CN110837482B CN110837482B CN201911001096.2A CN201911001096A CN110837482B CN 110837482 B CN110837482 B CN 110837482B CN 201911001096 A CN201911001096 A CN 201911001096A CN 110837482 B CN110837482 B CN 110837482B
- Authority
- CN
- China
- Prior art keywords
- logic core
- user equipment
- data
- descriptor ring
- data packets
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了分布式块存储低延迟控制方法、系统及设备,方法包括:获取用户设备驱动程序的应用编程接口,应用编程接口与用户设备之间发送和接收数据包,并形成数据描述符环且包括发送数据描述符环和接收数据描述符环;轮询逻辑核心通过应用编程接口轮询一个或多个用户设备端口的接收数据描述符环并通过接收数据描述符环发送数据包至处理逻辑核心;处理逻辑核心根据策略规则接收数据包并进行处理;通过应用编程接口将处理后的数据包在用户设备端口的发送数据描述符环上进行传输。通过采用轮询模式代替中断模式的技术手段,克服现有技术中存在由于中断导致IO延迟严重的技术问题,避免了中断带来的延时和开销,提高端口处理效率且降低端口的延迟。
Description
技术领域
本发明涉及数据存储的技术领域,尤其是分布式块存储低延迟控制方法、系统及设备。
背景技术
随着基于国产处理器的服务器系统应用于各种云计算环境,国产处理器技术在通用技术市场的应用能力越来越重要。目前,国产处理器在技术支持能力总体上已经具有一定基础,但是与国际主流同类芯片技术还有不小的差距。
相比于X86处理器较为完善的生态环境,国产处理器对应用支持还存在明显不足,特别是如何通过技术优化,在国产芯片搭建分布式存储系统,能够为计算虚拟化提供稳定低IO延迟的存储系统服务支撑,是快速推动国产处理器平台形成良性循环的应用生态关键手段。
申威处理器是我国江南计算机所进行研制,由其为计算基础的神威太湖之光超级计算机曾经多年蝉联全球最快的超级计算机。在传统的IO模型中,应用程序提交读写请求后睡眠,一旦IO完成,中断就会将其唤醒,频繁的中断和唤醒带来大量的处理器损耗开销,在机械式硬盘时代,中断开销只占整个IO时间的一个很小的百分比,因此给系统效率影响微乎其微。然而,在固态设备的时代,持续引入更低延迟的持久化设备,中断开销成为了整个IO时间中不能被忽视的部分,这个问题在更低延迟的设备上只会越来越严重。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的是提供分布式块存储低延迟控制方法,能够来尽量减少CPU额外损耗和消耗,来提升整体的IO效率。
为此,本发明的第二个目的是提供基于申威平台的分布式块存储低延迟控制系统。
本发明所采用的技术方案是:
第一方面,本发明提供分布式块存储低延迟控制方法,包括以下步骤:
获取用户设备驱动程序的应用编程接口,所述应用编程接口与所述用户设备之间发送和接收数据包,并形成数据描述符环,所述数据描述符环包括:发送数据描述符环和接收数据描述符环;
轮询逻辑核心通过所述应用编程接口轮询一个或多个用户设备端口的所述接收数据描述符环并通过所述接收数据描述符环发送数据包至处理逻辑核心;
所述处理逻辑核心根据策略规则接收数据包并进行处理;
通过所述应用编程接口将处理后的数据包利用所述用户设备端口的所述发送数据描述符环上进行传输。
进一步地,所述轮询逻辑核心轮询到所述处理逻辑核心,所述处理逻辑核心完成处理所述数据包,所述处理的过程是通过选择所述策略规则静态修复或动态调整其整体行为。
进一步地,所述策略规则包括:
所述处理逻辑核心接收并依次处理所述数据包列表中的数据包;或,
所述处理逻辑核心接收第一预设数量的数据包,并对接收到的数据包进行处理并即时传输;或,
所述处理逻辑核心接收第二预设数量的数据包,并对所接收到的数据包进行处理,累计处理后的数据包进行整体传输。
进一步地,所述数据包的配置信息包括:传输队列描述数值、内存地址套接字标识符、传输队列寄存器值、传输阈值。
进一步地,适用于申威处理器。
第二方面,本发明提供分布式块存储低延迟控制装置,包括:
获取模块,用于获取用户设备驱动程序的应用编程接口;
轮询逻辑核心,用于通过所述应用编程接口轮询一个或多个用户设备端扣的接收数据描述符环并通过所述数据描述符环发送数据包并进行处理;
处理逻辑核心,用于根据策略规则接收数据包并进行处理,处理后的数据包通过所述用户设备端口发送数据描述符环进行传输。
进一步地,所述轮询逻辑核心包括:
轮询单元,用于通过应用编程接口轮询一个或多个用户设备端口的所述接收数据描述符环;
发送单元,用于通过所述接收数据描述符环发送数据包至所述处理逻辑核心。
进一步地,所述处理逻辑核心包括:
处理单元,用于将对所述发送单元发送的数据包进行处理;
传输单元,用于将处理后的数据包通过所述用户设备端口的所述接收数据描述符环传输至用户设备。
第三方面,本发明提供一种分布式块存储低延迟控制设备,包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;
其中,所述处理器通过调用所述存储器中存储的计算机程序,用于执行如权利要求1至7任一项所述的方法。
本发明的有益效果是:
本发明通过采用轮询模式代替中断模式的技术手段,克服现有技术中存在由于中断导致IO延迟严重的技术问题,实现了避免终端带来的延时和开销,使得程序提高IO的效率,带来更低的IO延迟。
附图说明
图1是基于申威平台的分布式存储低延迟控制系统的实施例的模块框图;
图2是基于申威平台的分布式存储低延迟控制系统的实施例中轮询处理模块和处理逻辑核心的模块框图;
图3是基于申威平台的分布式存储低延迟控制方法实施例的流程图。
附图标记:10、获取模块;20、轮询逻辑核心;21、轮询单元;22、发送单元;30、处理逻辑核心;31、处理单元;32、传输单元。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例一:参照图1和图2,本发明实施例公开了分布式存储低延迟控制系统,包括:获取模块10、轮询逻辑核心20以及处理逻辑核心30;获取模块10用于获取用户设备驱动程序的应用编程接口,应用编程接口与用户设备之间发送数据包和接收数据包,数据包的接收和发送形成数据描述符环,通过获取模块直接获取用户设备驱动程序的应用程序接口,能够直接接收来自用户设备的数据包和发送数据包至用户设备。通过获取模块10获取用户设备驱动程序的应用编程接口以便于可以直接发送和接收数据包,而需要任何中断,以快速接收、处理和传递用户应用程序中的数据包。
轮询逻辑核心20用于通过应用编程接口轮询一个或多个端口的用户设备端口的接收数据描述符环并通过接收数据描述符环发送至处理逻辑核心30,处理逻辑核心30用于根据策略规则处理接收来自轮询逻辑核心11发送的数据包,处理后的数据包通过应用编程接口利用端口的发送数据描述符环上进行传输。通过轮询处理核心11逐个对用户设备端口进行轮询,若轮询处理核心11轮询到端口的应用编程接口发送数据包,则轮询处理核心11通过接收数据描述符环接收数据包并将数据包发送至处理逻辑核心30,处理逻辑核心30对接收到的数据包进行处理,并将处理后的数据包利用端口的发送数据描述符环进行传输,轮询逻辑核心20轮询过程检测到发送数据包描述环上传输的数据包并将数据包通过应用编程接口发送至用户设备中,从而完成数据包的传输与处理,通过轮询逻辑核心20代替原来的中断处理数据包的传输,从而节省了中断带来的延迟,从而加快数据处理的效率。
为了避免任何不必要的中断处理开销,执行环境不能使用任何移步通知机制。在多核环境中,需要解决琐争问题,采用设计为尽可能多地使用每个核心的私有资源,在本实施例中轮询逻辑核心20和处理逻辑核心30为同一个申威处理器,通过申威处理器中的轮询逻辑核心20对端口的接收数据描述符环和发送数据描述符环进行轮询以将数据包传输。
数据包队列的配置信息包括:传输队列描述数值、内存地址套接字标识符、传输队列寄存器值以及传输阈值,传输队列描述数值为数据包发送或接收的数量,内存地址套接字标识符为用于标识从中分配传输环的适当DMA内存区域的套接字标识符,传输环为本实施例的接收数据描述符环和发送数据描述符环。传输队列寄存器值为数据包队列的预取、主机和写回阈值寄存器的值,传输阈值为最小传输数据包的空闲阈值,当传输数据包的描述符的数量超过这个阈值时,应该检查设备是否写回了描述符。在传输队列配置期间可以传递值0,通过传递值0以指示应使用默认值。空闲阈值的默认值为32,这可以确保在设备至少为该队列处理32个描述符之前,不会搜索已完成的描述符。
轮询逻辑核心20轮询到处理逻辑核心30,处理逻辑核心30完成处理数据包,处理过程是通过选择策略规划静态修复或动态调整其整体行为。通过处理逻辑核心30选择不同的策略规则进行数据包的处理,以便于数据包处理快速。
参照图2,轮询逻辑核心20包括:轮询单元21以及发送单元22,轮询单元21用于通过获取模块10轮询通过应用编程接口轮询一个或多个用户设备端口的接收描述符环,发送单元22用于通过接收数据描述符环发送数据包至处理逻辑核心30。处理逻辑核心30包括:处理单元31以及传输单元32,处理单元31用于处理来自发送单元22发送的数据包,传输单元32用于将处理后的数据包放在用户设备端口的发送数据描述符环上进行传输至用户设备。轮询单元21对通过应用编程接口轮询用户设备的多个端口,知道轮询单元21轮询到该端口发送数据包时,轮询单元21通知发送单元22将数据包发送至处理单元31进行处理,处理后的数据包通过传输单元32将数据包通过用户设备端口的发送数据描述符环进行传输至用户设备,以通过轮询模式接收数据包与发送数据包,消除了中断模式带来的延迟,增加数据包处理的效率。
处理逻辑核心30根据策略规则进行数据包的接收和处理,其中策略规则包括:
处理逻辑核心30接收并依次处理数据包列表中的数据包;其中依次处理列表中的数据包,即为接收一个数据包处理后即发送至用户设备,或,
处理逻辑核心30接收第一预设数量的数据包,并对接收到的数据包进行处理并即时传输,其中处理逻辑核心30接收到第一预设数量的数据包,并将第一预设数量的数据包处理后一次性通过发送数据描述符环进行传输至用户设备;或,
处理逻辑核心30接收第二预设数量的数据包,并对所接收到的数据包进行处理,累积处理后的数据包进行整体传输,其中处理逻辑核心每次处理第二预设数量的数据包,当第二预设数量的数据包处理后会累积到一定数量处理后的数据包再统一通过发送数据描述符环传输至用户设备。
通过三种方式对数据包进行接收与传输,以便于处理逻辑核心30根据不同的轮询完成时间调整接收与处理的方式,从而使轮询后的数据包能够被处理逻辑核心30快速进行处理。
实施例二:参照图3,UIO技术是运行在用户空间的I/O技术,Linux系统中一般的驱动设备都是运行在内核空间,而在用户空间用应用程序调用即可,而UIO则是将驱动的很少一部分运行在内核空间,而在用户空间实现驱动的绝大多数功能。PMD技术为轮询模式驱动(Polled Mode Drivers)即持续等待工作,而不是被派遣工作,依赖于内核的UIO技术。ANS(Acceleted Network Stack)是一个基于DPDK的TCP/IP stack,可以运行在linuxuserspace。用户可以自由添加、删除ether接口和IP地址,添加、删除静态路由。
参照图3,本发明实施例公开了基于申威平台的分布式存储低延迟控制方法,包括以下步骤:
获取用户设备驱动程序的应用编程接口,应用编程接口与用户设备之间发送和接收数据包,并形成数据描述符环,数据描述符环包括:发送数据描述符环和接收数据描述符环;
通过获取用户设备驱动程序的应用编程接口,以便于通过应用编程接口直接获取用户设备的数据包发送和接收,而无需任何中断来对用户设备的数据包发送和接收进行管理,以便于通过应用编程接口快速接收、处理和传输用户设备的数据包。
轮询逻辑核心通过应用编程接口轮询一个或多个用户设备端口的接收数据描述符环并通过接收数据描述符环发送数据包至处理逻辑核心;
轮询的过程具体为:
轮询逻辑核心通过应用编程接口轮询一个或多个用户设备端口的接收数据描述符环;
接收来自接收数据描述符环传输的数据包,并形成数据包队列;
轮询逻辑核心将数据包队列中所有数据包发送至所述处理逻辑核心。
通过轮询逻辑核心对用户设备的通过应用编程接口进行用户设备端口的接收数据描述符环轮询,以便于当用户设备发送数据包时轮询逻辑核心轮询到该端口将数据包发送至处理逻辑核心,然后继续轮询接下的端口。同时,轮询逻辑核心会以一定的时间间隔回头检查端口是否已经完成,当处理逻辑核心将数据包处理后将数据包在发送数据描述符环上进行传输,轮询逻辑核心检测到发送数据描述符环上的数据包将数据包发送至用户设备。通过轮询方式代替原本的中断模式,不仅可避免终端带来的延时和开销,且提高端口处理的效率,实现更低的端口延迟。
处理逻辑核心根据策略规则接收数据包并进行处理;
通过应用编程接口将处理后的数据包利用用户设备端口的发送数据描述符环上进行传输。
处理逻辑核心将数据包根据策略规则对数据包进行处理,且处理逻辑核心根据轮询逻辑核心发送的数据包队列进行检索以找到当前需要处理的数据包,并数据包处理,处理后的数据包利用用户设备端口的发送数据描述符环上进行传输,从而使数据包处理快速。
其中对于应用编程接口的获取需要通过在申威处理器的CORE绑定技术来执行轮询模式驱动的运行,一块PCI的网卡对应一个轮询模式驱动程序并绑定一个CORE,运行在轮询模式驱动的CORE会处于用户态CPU100%的状态,实现了完全无中断的快速数据接收。采用基于申威平台的UIO技术将对NVMe固态硬盘的操作提升到用户态,采用轮询模式驱动模式,实现无中断执行操作模式,使用申威核绑定技术每个PMD程序对应一个NVMe-SSD设备,用一颗逻辑Core进行绑定,轮询模式驱动运行的程序的Core会持续在100%的利用率,不断的轮询处理NVMe设备的数据。
实施例三:一种分布式块存储低延迟控制设备,包括:
至少一个处理器;以及,与至少一个处理器通信连接的存储器;
其中,处理器通过调用存储器中存储的计算机程序,用于执行一种分布式块存储低延迟控制方法。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (7)
1.分布式块存储低延迟控制方法,其特征在于,包括以下步骤:
获取用户设备驱动程序的应用编程接口,所述应用编程接口与所述用户设备之间发送和接收数据包,并形成数据描述符环,所述数据描述符环包括:发送数据描述符环和接收数据描述符环;
轮询逻辑核心通过所述应用编程接口轮询一个或多个用户设备端口的所述接收数据描述符环并通过所述接收数据描述符环发送数据包至处理逻辑核心,具体包括:所述轮询逻辑核心通过所述应用编程接口轮询一个或多个用户设备端口的接收数据描述符环;
接收来自所述接收数据描述符环传输的数据包,并形成数据包队列;
所述轮询逻辑核心将所述数据包队列中所有数据包发送至所述处理逻辑核心,且所述轮询逻辑核心检测到发送数据描述符环上的数据包并将所述数据包发送至用户设备;
所述处理逻辑核心根据策略规则接收数据包并进行处理;
通过所述应用编程接口将处理后的数据包利用所述用户设备端口的所述发送数据描述符环上进行传输。
2.根据权利要求1所述的分布式块存储低延迟控制方法,其特征在于,
所述轮询逻辑核心轮询到所述处理逻辑核心,所述处理逻辑核心完成处理所述数据包,所述处理的过程是通过选择所述策略规则静态修复或动态调整其整体行为。
3.根据权利要求1所述的分布式块存储低延迟控制方法,其特征在于,所述策略规则包括:
所述处理逻辑核心接收并依次处理所述数据包列表中的数据包;或,
所述处理逻辑核心接收第一预设数量的数据包,并对接收到的数据包进行处理并即时传输;或,
所述处理逻辑核心接收第二预设数量的数据包,并对所接收到的数据包进行处理,累积处理后的数据包进行整体传输。
4.根据权利要求3所述的分布式块存储低延迟控制方法,其特征在于,所述数据包的配置信息包括:传输队列描述数值、内存地址套接字标识符、传输队列寄存器值、传输阈值。
5.根据权利要求1至4任一项所述的分布式块存储低延迟控制方法,其特征在于,适用于申威处理器。
6.分布式块存储低延迟控制装置,其特征在于,包括:
获取模块,用于获取用户设备驱动程序的应用编程接口;
轮询逻辑核心,用于通过所述应用编程接口轮询一个或多个用户设备端扣的接收数据描述符环并通过所述数据描述符环发送数据包并进行处理;
处理逻辑核心,用于根据策略规则接收数据包并进行处理,处理后的数据包通过所述用户设备端口发送数据描述符环进行传输;其中,所述轮询逻辑核心包括:
轮询单元,用于通过应用编程接口轮询一个或多个用户设备端口的所述接收数据描述符环;
发送单元,用于通过所述接收数据描述符环发送数据包至所述处理逻辑核心;
处理单元,用于将对所述发送单元发送的数据包进行处理;
传输单元,用于将处理后的数据包通过所述用户设备端口的所述接收数据描述符环传输至用户设备。
7.一种分布式块存储低延迟控制设备,其特征在于,包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;
其中,所述处理器通过调用所述存储器中存储的计算机程序,用于执行如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911001096.2A CN110837482B (zh) | 2019-10-21 | 2019-10-21 | 分布式块存储低延迟控制方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911001096.2A CN110837482B (zh) | 2019-10-21 | 2019-10-21 | 分布式块存储低延迟控制方法、系统及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110837482A CN110837482A (zh) | 2020-02-25 |
CN110837482B true CN110837482B (zh) | 2023-10-27 |
Family
ID=69575459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911001096.2A Active CN110837482B (zh) | 2019-10-21 | 2019-10-21 | 分布式块存储低延迟控制方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110837482B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296974B (zh) * | 2020-08-31 | 2022-04-26 | 阿里巴巴集团控股有限公司 | 数据库访问方法、装置、电子设备及可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102667714A (zh) * | 2009-11-25 | 2012-09-12 | 飞思卡尔半导体公司 | 支持访问由操作系统环境外的资源提供的功能的方法和系统 |
-
2019
- 2019-10-21 CN CN201911001096.2A patent/CN110837482B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102667714A (zh) * | 2009-11-25 | 2012-09-12 | 飞思卡尔半导体公司 | 支持访问由操作系统环境外的资源提供的功能的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110837482A (zh) | 2020-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10331595B2 (en) | Collaborative hardware interaction by multiple entities using a shared queue | |
US9244881B2 (en) | Facilitating, at least in part, by circuitry, accessing of at least one controller command interface | |
US7953915B2 (en) | Interrupt dispatching method in multi-core environment and multi-core processor | |
CN101159765B (zh) | 网络接口方法、装置和系统 | |
JP2011526390A (ja) | 仮想化環境における割り込みメッセージ終了のレイジー処理 | |
CN108351783A (zh) | 多核数字信号处理系统中处理任务的方法和装置 | |
US9390036B2 (en) | Processing data packets from a receive queue in a remote direct memory access device | |
WO2013082809A1 (zh) | 协处理加速方法、装置及系统 | |
US10932202B2 (en) | Technologies for dynamic multi-core network packet processing distribution | |
CN110865868B (zh) | 一种低延迟控制方法、装置及其设备 | |
US9098431B2 (en) | USB redirection for interrupt transactions | |
US7386642B2 (en) | IO direct memory access system and method | |
US20200371714A1 (en) | Method, Apparatus, Device and Storage Medium for Processing Access Request | |
CN106101019A (zh) | 一种基于中断绑定的多队列网卡性能调优方法 | |
CN110874336B (zh) | 一种基于申威平台的分布式块存储低延迟控制方法及系统 | |
CN110837482B (zh) | 分布式块存储低延迟控制方法、系统及设备 | |
US20060029088A1 (en) | Reducing latency in a channel adapter by accelerated I/O control block processing | |
WO2022032990A1 (zh) | 一种命令信息传输方法、系统、装置及可读存储介质 | |
CN111290983A (zh) | Usb传输设备及传输方法 | |
US10284501B2 (en) | Technologies for multi-core wireless network data transmission | |
CN116257471A (zh) | 一种业务处理方法及装置 | |
JP6206524B2 (ja) | データ転送装置、データ転送方法、プログラム | |
US11941722B2 (en) | Kernel optimization and delayed execution | |
CN117312202B (zh) | 片上系统和用于片上系统的数据传输方法 | |
TW201421420A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |