CN110226159B - 在网络交换机上执行数据库功能的方法 - Google Patents

在网络交换机上执行数据库功能的方法 Download PDF

Info

Publication number
CN110226159B
CN110226159B CN201880007173.2A CN201880007173A CN110226159B CN 110226159 B CN110226159 B CN 110226159B CN 201880007173 A CN201880007173 A CN 201880007173A CN 110226159 B CN110226159 B CN 110226159B
Authority
CN
China
Prior art keywords
data
network switch
database
function
database function
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
Application number
CN201880007173.2A
Other languages
English (en)
Other versions
CN110226159A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN110226159A publication Critical patent/CN110226159A/zh
Application granted granted Critical
Publication of CN110226159B publication Critical patent/CN110226159B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24524Access plan code generation and invalidation; Reuse of access plans
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种在网络交换机处计算机实现的方法和系统包括:使用一个或多个处理器对所述网络交换机接收的数据消息中包含的查询数据执行预定义的数据库功能,所述执行生成结果数据,其中,在第一操作模式下对所述查询数据执行所述预定义的数据库功能到完全完成状态,生成完整的结果数据和未跳过的查询数据,以及在第二操作模式下对所述查询数据执行所述预定义的数据库功能到部分完成状态,生成部分完成的结果数据和跳过的查询数据。此外,所述方法和系统执行一个或多个网络交换机功能将所述完整的结果数据路由到一个或多个目标节点,和/或将所述部分完整的结果数据和跳过的查询数据路由到一个或多个目标节点。此外,还使用应用编程接口定义所述数据库功能。

Description

在网络交换机上执行数据库功能的方法
技术领域
本发明涉及分布式数据库,尤其涉及用于在分布式数据库系统的节点之间路由数据的网络交换机和相关方法。
背景技术
现代分布式数据库,例如大规模并行处理(massively parallel processing,简称MPP)数据库,可能会部署成百上千个数据节点(data node,简称DN)。分布式数据库中的数据节点通过网络互连,所述网络包括每个节点上的网卡(network interface card,简称NIC)、连接节点和其它交换机的网络交换机以及将所述网络与其它网络(例如互联网)连接的路由器。当处理所述数据库系统接收的查询时,数据节点通常需要交换数据消息才能执行数据库操作(例如,连接、聚合和哈希等)。这些数据消息可以是表格行数据、某些列数据、分组的中间聚合结果、某些表格行子集的最大值或最小值或者哈希连接的中间结果等。
数据消息通过所述网络中的交换机进行路由,以传送到目标数据节点。数据节点可以向所述网络中的部分或所有其它数据节点发送数据消息,以完成查询的操作。由于传统网络交换机不知道其转发的数据消息的内容,因此可能会转发重复的或不必要的数据消息,在所述目标数据节点上浪费了高要求网络带宽和计算容量。
发明内容
一种网络交换方法,包括:使用一个或多个处理器对网络交换机接收的数据消息中包含的查询数据执行预定义的数据库功能,所述执行生成结果数据,其中,在第一操作模式下对所述查询数据执行所述预定义的数据库功能到完全完成状态,生成完整的结果数据和未跳过的查询数据,以及在第二操作模式下对所述查询数据执行所述预定义的数据库功能到部分完成状态,生成部分完成的结果数据和跳过的查询数据。一个或多个网络交换机功能将所述完整的结果数据路由到一个或多个目标节点,和/或将所述部分完整的结果数据和跳过的查询数据路由到一个或多个目标节点。
一种网络交换机,包括包含指令的非瞬时性存储器以及与所述存储器通信的一个或多个处理器,其中,所述一个或多个处理器执行所述指令以进行下述操作:对到达所述网络交换机的数据消息中携带的数据执行预定义的数据库功能,所述执行生成处理后的结果数据,其中可以执行所述预定义的数据库功能以生成完整状态,所述完整状态包括完整的处理后的结果数据,或者也可以在尽力而为的基础上执行所述预定义的数据库功能以生成部分执行的不完整状态,所述不完整状态包括不完整的处理后的结果数据;执行一个或多个网络交换机功能以将所述处理后的结果数据和/或所述数据消息中携带的数据路由到一个或多个目标节点,其中,如果所述完成状态为部分完成的状态,所述网络交换机逻辑单元则将所述处理后的结果数据和任何未处理的数据转发到所述一个或多个目标节点。
一种非瞬时性计算机可读介质,存储有计算机指令,所述计算机指令在由一个或多个处理器执行时,使所述一个或多个处理器执行以下步骤:对接收的数据消息中包含的查询数据执行一个或多个预定义的数据库功能,所述执行生成结果数据,其中对所述查询数据执行所述预定义的数据库功能到完全完成状态,生成完整的结果数据和未跳过的查询数据,和/或对所述查询数据执行所述预定义的数据库功能到部分完成状态,生成部分完成的结果数据和跳过的查询数据,和/或将所述部分完整的结果数据和跳过的查询数据路由到一个或多个目标节点。
现描述各种示例从而以简化的形式引入概念的选择,这些概念将在以下具体实施方式中进行进一步的描述。本发明内容的目的不在于识别权利要求书保护的主题的关键或必要特征,也不在于限制权利要求书保护的主题的范围。
在示例1中,在网络交换机处执行的方法包括:使用一个或多个处理器,对所述网络交换机接收的数据消息中包含的查询数据执行预定义的数据库功能,所述执行生成结果数据,其中,在第一操作模式下对所述查询数据执行所述预定义的数据库功能到完全完成状态,生成完整的结果数据和未跳过的查询数据,以及在第二操作模式下对所述查询数据执行所述预定义的数据库功能到部分完成状态,生成部分完成的结果数据和跳过的查询数据;执行一个或多个网络交换机功能将所述完整的结果数据路由到一个或多个目标节点,和/或将所述部分完整的结果数据和跳过的查询数据路由到一个或多个目标节点。
在示例2中,还提供了根据示例1的方法,其中,所述数据库功能包括聚合功能、缓存功能、哈希功能、联合/合并功能或排序/排列功能。
在示例3中,提供了根据示例1或示例2的方法,其中,所述交换机中的多个交换机按层次结构排列,并且部分处理结果在第二交换机中进一步处理,所述第二交换机从第一交换机接收所述部分处理结果。
在示例4中,还提供了根据示例1至3的方法,其中,所述查询数据从一个或多个数据存储源中检索得到,所述检索到的数据携带在所述数据消息中。
在示例5中,提供了根据示例1至4的方法,其中,在所述第一操作模式下或在所述第二操作模式下执行所述数据库功能至少部分地基于可用于执行所述数据库功能的资源来确定。
在示例6中,还提供了根据示例1至5的方法,其中,所述资源选自以下组:内存、时间或处理器带宽。
在示例7中,提供了根据示例1至6的方法,所述方法还包括至少一个用于执行所述数据库功能的数据库功能规则。
在示例8中,提供了根据示例1至7的方法,其中,所述网络交换机功能还包括分类或流量控制功能。
在示例9中,提供了根据示例1-8的方法,所述方法还包括数据消息,所述数据消息包括所述结果数据,并将所述数据消息排队等待路由到所述一个或多个目标节点。
在示例10中,提供了网络交换机,所述网络交换机包括包含指令的非瞬时性存储器以及与所述存储器通信的一个或多个处理器,其中,所述一个或多个处理器执行所述指令以进行下述操作:对到达所述交换机的数据消息中携带的数据执行预定义的数据库功能,所述执行生成处理后的结果数据,其中可以执行所述预定义的数据库功能以生成完整状态,所述完整状态包括完整的处理后的结果数据,或者也可以在尽力而为的基础上执行所述预定义的数据库功能以生成部分执行的不完整状态,所述不完整状态包括不完整的处理后的结果数据;执行一个或多个网络交换机功能以将所述处理后的结果数据和/或所述数据消息中携带的数据路由到一个或多个目标节点,其中,如果所述完成状态为部分完成的状态,所述网络交换机逻辑单元则将所述处理后的结果数据和任何未处理的数据转发到所述一个或多个目标节点。
在示例11中,提供了根据示例10的交换机,所述交换机还包括数据库服务器,所述数据库服务器用于处理需要从一个或多个数据存储源检索数据的数据库查询,所述检索到的数据携带在数据消息中。
在示例12中,还提供了根据示例10或11的交换机,其中,数据库功能处理逻辑单元的尽力而为基础至少部分取决于所述数据库功能处理逻辑单元的处理能力。
在示例13中,提供了根据示例10至12的交换机,所述交换机还包括数据存储器,所述数据存储器用于存储至少一个数据库功能规则以执行所述数据库功能。
在示例14中,提供了根据示例10-13的交换机,其中,所述网络交换机逻辑单元执行路由、分类或流量控制功能。
在示例15中,提供了根据示例10-14的交换机,其中,在执行所述数据库功能后,所述处理后的结果数据被包含在排队等待转发到所述一个或多个目标节点的一个或多个数据消息中。
在示例16中,提供了根据示例10-15的交换机,其中,所述数据消息还包括指定至少一个数据库功能的指令,以对所述数据消息中携带的数据执行所述数据库功能。
在示例17中,提供了存储有计算机指令的非瞬时性计算机可读介质,所述计算机指令在由一个或多个处理器执行时使所述一个或多个处理器执行以下步骤:
对接收的数据消息中包含的查询数据执行一个或多个预定义的数据库功能,所述执行生成结果数据,其中对所述查询数据执行所述预定义的数据库功能到完全完成状态,生成完整的结果数据和未跳过的查询数据,和/或对所述查询数据执行所述预定义的数据库功能到部分完成状态,生成部分完成的结果数据和跳过的查询数据,和/或将所述部分完整的结果数据和跳过的查询数据路由到一个或多个目标节点。
在示例18中,提供了根据示例17的非瞬时性计算机可读介质,其中,在所述一个或多个处理器接收的数据消息中包含的数据还包括完整的结果数据或部分完整的结果数据。
在示例19中,提供了根据示例17或示例18的非瞬时性计算机可读介质,其中,所述目标节点中的至少一个目标节点包括数据库服务器,用于生成请求所述查询数据的查询。
在示例20中,提供了根据示例17-19的非瞬时性计算机可读介质,所述非瞬时性计算机可读介质还包括应用编程接口装置,用于创建或修改由执行一个或多个数据库功能的装置所使用的数据库功能。
附图说明
图1示出了根据示例实施例的分布式数据库系统;
图2是根据示例实施例的分布式数据库系统的数据流图;
图3示出了根据示例实施例的数据库功能定义(database function–defined,简称DFD)的网络交换机;
图4是根据示例实施例的过程的流程图;
图5是根据示例实施例的分布式数据库系统的数据流图;
图6是根据示例实施例的过程的流程图;
图7示出了根据示例实施例的大规模并行处理(massively parallelprocessing,简称MPP)分布式数据库系统;
图8是根据示例实施例的过程的流程图;
图9示出了根据示例实施例的分布式数据库系统;
图10是根据示例实施例的过程的流程图;
图11是根据示例实施例的过程的流程图;
图12是根据示例实施例的过程的流程图;
图13是根据示例实施例的过程的流程图;
图14是根据示例实施例的过程的流程图;
图15是根据示例实施例的数据流图和过程;
图16是根据示例实施例的数据流图和过程;
图17是根据示例实施例的用于实现算法和执行方法的客户端、服务器、云资源的电路框图。
具体实施方式
以下结合附图进行详细描述,所述附图是描述的一部分,并通过图解说明的方式示出可以实施本发明的具体实施例。这些实施例将充分详细描述使本领域技术人员能够实施本发明而且应该明白的是可以使用其它实施例并且在不脱离本发明的范围的情况下可以做出结构上、逻辑上、电学上的改变。因此,以下描述的示例性实施例并不当作限定,本发明的范围由所附权利要求书界定。
本文描述的功能或算法可以在一实施例中的软件中实施。该软件可包含计算机可执行指令,这些计算机可执行指令存储在计算机可读介质上或者计算机可读存储设备上,如本地或联网的一个或多个非瞬时性存储器或其它类型的硬件存储设备。此外,这些功能对应模块,这些模块可以是软件、硬件、固件或其任意组合。多个功能可根据需要在一个或多个模块中执行,所描述的实施例仅为示例。该软件可在数字信号处理器、ASIC、微处理器上执行或者在个人计算机、服务器、或其它计算机系统等其它类型的计算机系统上运行的处理器上执行,从而将这些计算机系统转换成一个专门编程的机器。
使用数据库功能定义(database function–defined,简称DFD)的网络交换机的分布式数据库
参考图1,图中显示了分布式数据库系统100的示例实施例。根据一实施例,所述分布式数据库可选地是大规模并行处理(massively parallel processing,简称MPP)数据库。如图1所示,所述数据库系统100包括主控主机102,所述主控主机102承载主数据库,其中,用户数据分布在多个网段主机104、106和108上托管的数据段上,这些网段主机维护各自的网段数据库。所述主控主机102包括一个单独的物理服务器,其具有自己的操作系统(operating system,简称OS)、处理器、存储器和随机访问存储器和/或只读存储器。在一示例实施例中,所述主控主机102中没有存储用户数据,但所述主控主机102在所述数据库的网段主机104、106和108中存储有关数据库网段的元数据。网段主机104、106和108各自还包括物理服务器,其具有自己的OS、处理器、存储器和内存。本文中使用的术语“处理器”应包括软件可编程计算设备和/或可编程中央处理器(如图17中所示)、不可编程的硬件电路(例如ASIC)和/或可配置电路的设备(例如FPGA)。
主控主机102和网段主机104、106和108通过网络接口(例如网卡)与一个或多个数据库功能定义(database function–defined,简称DFD)的网络交换机110通信。根据一示例实施例,DFD网络交换机110包括执行数据库功能的组件(如下文图3所述)和执行网络交换功能的组件。根据一实施例,所述网络交换功能由多端口网桥执行,所述网桥使用硬件地址在所述开放系统互连(open systems interconnection,简称OSI)模型的数据链路层处理和转发数据。在另一实施例中,附加地或可替代地,所述DFD网络交换机110可以通过另外结合最常使用IP地址执行报文转发的路由功能来在所述网络层处理数据。
根据一实施例,数据分布在每个网段主机104、106和108上,以实现数据和处理的并行。例如,这可以通过使用哈希或循环分布在所述网段数据库中自动分发数据来实现。当客户端计算机114发出查询112时,所述主控主机102解析所述查询并构建查询计划。在一示例实施例中,在分布键列上过滤所述查询,以便将所述计划仅发送到包含适用于执行所述查询的数据的网段主机104、106和108。
现在参考图2,图中示出了数据库系统200的数据流图,其中,数据库功能或操作可能需要通过DFD网络交换机110在不同的数据节点0到N之间进行数据交换。根据一实施例,数据节点0–N可以采用例如数据库服务器(例如主控主机102)或数据源(例如但不限于图1的数据存储系统,例如网段主机104、106和108)的形式。分布式数据库可以部署成百上千个数据节点0–N。这些数据节点例如通过多个网络交换机互连,包括但不限于本实施例中的DFD网络交换机110、连接节点和其它交换机,以及将所述网络与其它网络(例如互联网)连接的路由器。在本示例实施例中,源自数据节点0–N的数据消息202由所述DFD网络交换机110在所述网络中进行路由,以传送到目标数据节点0–N。根据一实施例,数据消息202封装在网络报文中,包含例如表格行数据、列数据、分组的中间聚合结果、某些表格行子集的最大或最小值或哈希联接的中间结果,如下所述。
在图2示例中,DFD网络交换机110在第一操作模式下运行时,不使用其数据库功能能力,将数据消息202从节点0、2、3、4、6、N路由到数据节点1,从而完成数据库查询的操作。例如,数据节点1可能需要数据库功能的数据,即从所有其它数据节点检索不同的值204。对于此功能,所述数据节点中的每个节点将通过所述交换机包含的数据消息202中不同值的单独中间结果发送到节点1。在第一操作模式中,这些不同值的发送对所述交换机是“透明”的,换句话说,所述DFD网络交换机110以传统方式路由所述消息,而不对所述数据消息202或使用所述数据消息202执行数据库功能,如下文更详细说明。因此,所有这些数据消息202都转发到节点1并由节点1接收。但是,在许多情况下,来自各种数据节点的大多数数据消息202都是冗余的,即与其它消息中包含的值并无不同,如图所示,例如,数值“7”源自5个不同的节点0、2、4、5、N。因此,浪费了节点1的网络带宽和计算容量。例如,由于分布式数据库系统可能有数以百计、数以千计甚至数以百万计的此类数据库功能正在被所有所述数据节点同时执行,因此废弃或冗余的消息传送可能会对数据库系统的总体性能产生巨大影响并导致次优性能。
如上所述,如图3和图4所示,DFD网络交换机110可以执行数据库操作以及传统的交换和路由功能。如下面图3所示,DFD网络交换机110/300包括一个或多个数据库功能定义规则应用编程接口(application programming interface,简称API)302、数据库功能规则库304、数据库功能处理逻辑单元306、网络交换机核心逻辑单元308以及交换结构硬件310。图4示出了所述组件302、304、306和308的操作的过程400。
所述数据库功能定义规则API 302用于配置规则,以使所述交换机使用这些规则操作和处理与所述数据消息202关联的某些类型的数据库功能。根据一实施例,“配置”所述规则包括创建、定义、修改或删除数据库功能的规则。如图4所示,所述数据库功能定义规则API 302允许分布式数据库系统(例如图1的数据库系统100)创建和维护402存储404在数据库功能规则库304中的自定义和可扩展规则。例如,所述数据库功能规则库304中的规则可以通过数据库功能定义规则API 302动态创建、修改或删除。这可以支持可能具有不同数据库功能或操作的不同分布式数据库系统,以及交换的所述数据消息的不同格式。定义数据库功能的规则时,数据库功能定义规则API 302指定406查询数据格式、输出数据格式以及内部处理逻辑。规则可以定义的数据库功能可能包括但不限于以下:聚合(例如,区分、求和、计数、最小值、最大值等);交换数据(例如,中间结果、哈希表等)的缓存;结果的联合/合并;以及数据的排序/排列。
如上所述,数据库功能规则库304存储数据库功能的规则,其中所述规则可以通过上述数据库功能定义规则API 302动态创建、修改或删除,或者以其它方式引入所述数据库功能规则库304。在一示例实施例中,数据消息202携带规则标识或识别规则的信息,以便所述DFD网络交换机110在接收到408封装数据消息的网络报文时能够在其数据库功能规则库304中定位到410所识别的规则。
一旦所述DFD网络交换机110在数据库功能规则库304中定位到410所述适用的规则,所述数据消息202将由所述数据库功能处理逻辑单元306处理411,以使用所述适用的规则执行所述预定义的数据库功能412。所述数据库功能处理逻辑单元306由所述交换结构硬件310执行。在执行所述功能后,将结果数据消息202组合并排队414等待所述网络交换机核心逻辑单元308转发416到所述目标数据节点(或下一数据节点),例如DFD网络交换机110。
所述网络交换机核心逻辑单元308执行网络交换机的常见功能,例如路由、分类、流量控制等。所述网络交换机核心逻辑单元308用作网络交换机的基本组件,并在传统网络交换机和所述DFD网络交换机110的架构中都会存在。
所述交换结构硬件310包括传统网络交换机使用的一般硬件,例如处理器、存储器;在一示例实施例中,所述交换结构硬件310还集成了专用硬件,例如但不限于协处理器、现场可编程门阵列(field programmable gate array,简称FPGA)和/或专用集成电路(application specific integrated circuit,简称ASIC),以有效执行某些数据库功能。此类功能包括但不限于哈希计算、排序、加密/解密、压缩/解压缩等。借助所述专用硬件,处理数据消息和执行数据库功能的性能将显著提高。但是,选用此类专用硬件就是为了提高性能,而所述定义的数据库功能大多数都可以在不使用这些专用硬件的情况下完成。
图5的数据流图和图6的流程图中所示的过程600示出了一示例实施例,其中分布式数据库系统200中的DFD网络交换机110在数据库功能定义的模式下运行,即与结合图2所讨论的所述第一模式不同的第二模式。在此示例中,所述DFD网络交换机110不会透明地将所有单个数据消息202(无论是否冗余)转发到所述目标数据节点1,而是处理603来自所有其它数据节点0、2–N的数据消息202,并且仅将包含唯一值502的结果数据消息504转发604到所述目标数据节点1。这将节省所述目标数据节点1上的网络带宽和计算容量。此外,借助所述专门硬件的帮助,可以大大减少所述过程的开销和延迟。因此,可以相应地提高同一数据库功能的总体性能,例如,从以前的数据库操作中检索不同的值。
现在参考图7,图中示出了部署为大规模并行处理(massively parallelprocessing,简称MPP)数据库基础设施700的网络节点706的DFD网络交换机110的实施例,其中协调节点702可以是例如图1的主控主机102等数据库主机,而数据节点704可以是结合图1所讨论的网段主机104、106和108等数据源。在此示例实施例中,还提供了在分布式数据库系统上运行的优化器708和执行器710,以规划和协调在DFD网络交换机110中使用所述数据库功能。根据图7所示的一实施例,协调节点702包含或利用优化器708和执行器710,数据节点704仅包含或利用执行器710。下面结合图11讨论一示例实施例,优化器708访问所述网络节点706的能力的相关信息,所述信息存储在分布式数据库系统目录表。下文结合图12讨论另一示例实施例,执行器710从优化器708获取查询计划信息,并使用所述查询计划信息执行数据库查询操作。
虽然此示例性实施例显示所述DFD网络交换机110部署在分布式数据库基础设施700中,但所述DFD网络交换机110不限于应用在分布式数据库基础设施中,并且可以部署在其它数据库基础设施或系统中。在一示例性实施例中,优化器708和执行器710驻留在数据库服务器系统(例如,主控主机102)上并在所述数据库服务器系统上执行,所述数据库服务器可以例如部署为图7系统中的协调节点702。
在此示例实施例中,所述DFD网络交换机110不仅执行传统的网络路由和交换功能,以在数据节点(例如协调节点702和数据节点704之间)之间路由数据消息,还执行预先定义的数据库功能,如上文所述和下文所述,从而减少和优化这些数据节点之间的网络通信。因此,所述DFD网络交换机110充当网络节点706优化了数据库操作性能。因此,在本实施例和本文所述的其它实施例中,所述DFD网络交换机110不仅是对数据库系统透明的网络设备,而且对通过所述网络进行路由的数据主动执行数据库功能和操作。
优化器和执行器
根据一示例实施例,如上所述,提供了在分布式数据库系统上运行的优化器708和执行器710,以利用DFD网络交换机110中的数据库功能。如上所述,根据一实施例,如图7所示,协调节点702包含或利用优化器708和执行器710,数据节点704仅包含或利用执行器710。如上所述,数据库功能或操作在所述DFD网络交换机110中定义。此类数据库功能包括但不限于:(1)聚合数据节点的中间结果,(2)缓冲数据和构建哈希表,(3)对某些数据进行排序和排列,以及(4)联合或合并中间结果。
根据图8的过程流程图800中所示的示例操作模式,所述优化器708在为查询选择802最优计划时决定是否利用DFD网络交换机110。如果所述优化器708识别804特定的数据库操作可以从DFD网络交换机110中的一个或多个数据库操作中受益,则会要求所述数据节点704标记806其发送的数据消息,然后将所述数据消息与预定义标志一起发送808,以标识将要由所述DFD网络交换机110执行的数据操作。
当携带所述匹配功能的数据消息到达所述节点时,所述数据库功能由所述DFD网络交换机110的软件和硬件执行810,下面将详细介绍。根据所述网络互连拓扑和查询计划,将所述最终或中间结果转发812至所述目标数据节点(协调节点或数据节点)或下一台交换机或者DFD网络交换机110。因此,所述网络流量针对所述分布式数据库进行了优化,例如,可以减少传输的数据,从而降低带宽需求。此外,在目标数据节点上可以大大节省处理数据消息的时间和所述关联数据的相应计算时间。
如上所述,在大多数场景中,分布式数据库系统100、200或700可能包含超过几十个数据节点,甚至成百上千个数据节点。在这种情况下,根据一实施例,多个DFD网络交换机110如图9中所示的分层或树状网络拓扑900进行部署和互连。如图10的过程1000流程图所示,上游交换机904从发送数据节点接收1002数据消息902(例如消息202),然后使用存储在数据库功能规则库304(请参阅图3)中的预先定义的数据库功能定义规则处理1004所述数据消息。将结果数据消息转发1006到所述数据消息902的路由路径上的下游交换机906。在从上游交换机904接收所述数据消息202时,所述下游交换机906使用与所述数据消息902关联的预定义数据库功能定义规则再次处理1008所述数据消息,然后将新的结果数据消息转发1010到在所述数据消息的路由路径上的下游交换机906。所述过程将持续到所述数据消息到达1010所述目标908。因此,图9和过程1000的实施例所示的情况是多台DFD网络交换机110,其中所述数据库功能在所述数据消息902的路由路径上的每台DFD网络交换机110上执行。
所述DFD网络交换机110还处理与其在1004和1008处处理的数据消息902关联的传输层控制消息。例如,对于面向连接传输,如果处理并聚合原始数据消息202,则会代表目标节点向源节点发送控制信息(如ACK)。对于无连接传输,处理后的数据包含所述原始消息ID。在这两种情况下,所述分布式数据库执行器710知道所述过程,并处理所述后续过程,如下面结合MPP执行器设计的示例实施例所述。
根据图11所示的优化器过程1100的一示例实施例,由所述优化器708执行的过程1100识别1102DFD网络交换机110的属性和资源,例如DFD网络交换机的处理器、本地内存、专用硬件(例如,FPGA或ASIC)和/或带宽的属性和资源。根据一实施例,节点的属性和资源用元数据表示,所述元数据可以存储在分布式数据库系统目录表中,例如可以在所述数据库系统100的存储设备或内存中维护。考虑到所述节点的属性和资源,所述优化器识别1104可在DFD网络交换机110上处理的可行数据库功能/操作。在一示例实施例中,所述DFD网络交换机110上的可行数据库功能/操作也在所述分布式数据库系统目录表中维护。在一示例实施例中,所述DFD网络交换机110是对称的或假设是对称的,这意味着在每个数据节点上启用的数据库功能/操作是相同的。在另一实施例中,优化器还识别DFD网络交换机110不对称的场景,并相应调整所述DFD网络交换机110中尽力而为操作(如下所述)的代价估计。尽管DFD网络交换机110通常有助于提高性能,但也需要额外的计算和相关开销。因此,根据另一示例实施例,所述优化器使用代价模型来估计1106DFD网络交换机110上所述数据库功能的处理代价,从而估计任何特定查询计划的总体代价。更具体地说,在另一示例实施例中,所述优化器模型估计1106所述数据节点中尽力而为操作的代价(如下所述),作为整个查询计划的代价估计和选择1108的一部分。
如下文中更详细描述的,由于DFD网络交换机110可能具有有限的系统资源,例如但不限于有限的内存/缓存大小和/或有限的计算能力,因此DFD网络交换机110上的数据库功能或操作可能无法跟上或赶上所述交换机的主要数据路由任务预期的数据流速度/速率。在这种情况下,根据一实施例,所述DFD网络交换机110接收数据消息中包含的流查询数据,并且仅对指定或期望时间范围内且其容量内的查询数据执行操作/功能,并将所述部分处理结果连同“跳过”的未处理的查询数据转发到所述下一目标节点。
根据一实施例,跳过的数据绕过用于执行数据库功能的DFD网络交换机110的任何组件,或者输入到此类组件但在未处理的情况下输出。本文将这些类型的数据库操作定义为“尽力而为操作”。换句话说,相应的数据库功能可以执行到完成状态,即完整状态,包括完整的结果数据,或者部分执行,即不完整状态,包括不完整的结果数据。如果DFD网络交换机110的资源足以在所述交换机中完成所需的数据库功能,则会将其执行到完整状态。在第一操作模式下,如果所述资源不足以在一时间段(例如所需或指定的时间段)内对所有可用数据执行所需的数据库功能,则所述DFD网络交换机110通过“尽力而为”操作仅对资源允许的最大数据执行所述期望的数据库功能,并将未处理的不完整数据以及所述已处理的完成数据进行传递。在另一操作模式下,如果有足够的资源可用,则将所述数据库功能执行到所述完整状态。任何涉及DFD网络交换机110的分布式数据库操作都可以是潜在的候选操作,可作为尽力而为操作进行运行并归类为尽力而为操作。下文将进一步介绍用于不同尽力而为操作的算法的示例实施例。
根据另一示例实施例,所述优化器基于使用和/或不使用DFD网络交换机110的代价估计选择1108所述最优查询计划。对使用和不使用DFD网络交换机110的查询计划代价以及尽力而为操作的代价进行估计后保存在优化器708的计划选择搜索空间中。使用有效的搜索算法,所述优化器708选择1108最有效的查询计划,并决定是否包括尽力而为操作。所述优化器根据其选择的最优查询计划生成尽力而为操作的计划算子。确定所述最优查询计划后,优化器将所述尽力而为操作转换1110为单个尽力而为算子,例如尽力而为聚合、尽力而为哈希等。以下详细介绍了尽力而为操作和算子的详细信息。
根据另一示例实施例,图12的流程图中所示的过程1200由所述分布式数据库中的执行器710执行,以协调或指导所述DFD网络交换机110中的数据库操作。执行器710识别1210所述查询计划中的尽力而为算子,并执行相应的处理逻辑。根据一示例实施例,所述执行器710根据调度策略同时执行多个尽力而为算子,以提高系统利用率。如图12所示,在一实施例中,所述执行器710为尽力而为操作准备1210适当格式的数据。每个数据消息使用所述操作和数据库功能定义的规则ID进行标记1220,所述规则ID可以由所述DFD网络交换机110识别)识别,还标记必要的控制信息(例如,相应的计划算子信息、消息序列ID)。所述执行器710通过涉及DFD网络交换机110和数据节点的连接进行数据交换的调度1230。所述执行器710为数据交换建立1236虚拟连接,并在数据消息可用时调度所述数据消息的发送。所述执行器710处理从DFD网络交换机110和数据节点接收的用于尽力而为操作的数据。在接收到1240所述数据消息后,所述执行器710处理1240所述数据,如果所述DFD网络交换机110未完全完成,则执行所述尽力而为操作。在一实施例中,当接收到尽力而为算子消息时,如果1260所述算子消息是来自DFD网络交换机110的聚合消息,则对所述原始数据消息的ID进行编码,以便所述执行器710可以识别1270在发生传输错误时丢失的数据消息。
因此,如上所述,所公开的实施例提供了更丰富和完整的网络交换机基础设施和分布式数据库的增强功能,而且所述DFD网络交换机110不需要在数据节点上进行硬件更改,而在交换机上进行硬件自定义仅是进一步提高性能的可选方案。
DFD网络交换机上的尽力而为处理
此外,如下文所述,提供了示例实施例说明以下各类的逻辑:尽力而为聚合、尽力而为排序和尽力而为哈希联接,这些是性能关键型分布式数据库操作的三个主要类别。这些操作是分布式数据库中的主要性能关键型操作。
图13是尽力而为聚合算法的处理逻辑1300的示例实施例的流程图。在这里,聚合处理是上述指定MPP聚合操作(例如区分、求和、最小值/最大值或其它操作)中的任何一种的抽象。这些操作共用相同的尽力而为操作处理流程。
聚合处理的第一步是确定1310是否有足够的资源来执行所有期望的聚合,例如,通过检查内存、缓存和计算功率是否满足执行所期望的尽力而为聚合的要求。如果有足够的资源,则执行1320所述聚合。如果所述数据中的一部分或全部本可以聚合但没有足够的资源可用,则进行转发1330。如果有更多流数据到达并寻求聚合1340,则所述过程返回到在1310处检查是否有足够的资源。如果没有更多的流数据要聚合,则确定聚合结果1360的可用性1360。如果可用,则转发1370所述聚合结果;如果不可用,则不转发上述结果。所述聚合操作在1380处完成。
在分布式数据库中进行排序在某些情况下是资源密集型计算,因此DFD网络交换机110可能无法完成对通过所述交换机传输的所有数据进行排序的整个过程。因此,在图14的流程图中所示的尽力而为排序过程1400的一示例实施例中,所述尽力而为排序不会一次性处理所有数据,而是会尝试将所述数据分成连续几个轮次的“小批量”进行处理。根据一实施例,在每个轮次期间,仅处理其处理容量内的数据(这里称为“小批量处理”),然后将中间结果传输到所述下一目标DFD网络交换机110、协调节点或数据节点。过程1400从确定1410执行期望排序的资源是否充足开始。如果资源不足,则转发1460数据。如果资源充足,所述过程将确定1420是否达到小批量限值。根据一实施例,小批量的大小是小批量可由DFD网络交换机110保持和处理所述数据的上限或阈值。如果所述过程未达到所述限值,则处理1450所述批量;如果已达到所述限值,则转发1430所述小批量结果,并形成1440新的小批量,然后进行处理1450。
如果1470更多的流数据已准备进行处理,则所述过程将返回到步骤1410。如果没有,所述过程确定是否1480有小批量结果。如果有,则转发1490所述结果;如果没有,则所述过程完成1496。因此,该过程在所述DFD网络交换机的资源限制范围内,在逻辑上将所述流数据划分为小的处理簇。根据一示例实施例,可以利用尽力而为排序的分布式数据库操作包括但不限于排序、分组和/或排列。这些排序操作中的每一个操作都可以合并各种不同的排序算法,例如哈希排序、快速排序、竞赛排序等。这些详细的排序算法是成熟的,对于本领域的技术人员来说也是显而易见的。
当分布式数据库中包含哈希联接时,如图15的数据流图所示,其中,例如网络交换机1502可以部署为数据节点节点(n–1)、节点n、节点1、节点2、节点3和节点i之间的交换网络,并在第一传统操作模式下运行,所述常用的过程1500之一是将所述哈希联接的内部表广播1504到所有涉及所述哈希联接的数据节点中(针对节点i进行标记仅是为了清楚说明)。在此过程中,每个数据节点N(n–1,2,3,i)广播各自的内部表的本地数据,并从所有其它数据节点N接收1506(针对节点i进行标记仅是为了清楚说明)所述内部表数据以构建完整的哈希表。然后,所述本地外部表数据通过探测所述哈希表加入所述重建的内部表。例如,对于图15所示的分布式数据库系统中的哈希联接,将来自每个数据节点(例如,节点1)的相同本地内部表数据广播(n–1)到所有其它(n–1)数据节点。然后,在从所有其它(n–1)数据节点接收所有内部表数据后,每个数据节点在内部表数据上构建相同的哈希表,这意味着在整个集群中重复N次构建相同的哈希表过程。整个过程浪费了大量的网络带宽和计算容量。
另一方面,根据图16所示的示例实施例数据流过程1600,使用DFD网络交换机110可以部署在所述交换网络中并在第二操作模式下运行,尽力而为哈希联接,来自每个数据节点(节点n和节点(n–1)、节点1、节点2、节点3和节点i)的广播内部表数据1602在所述DFD网络交换机110中累积并处理。在路由数据消息时,所述DFD网络交换机110根据各自的DFD网络交换机110的资源容量约束构建所述哈希表。然后,将所述构建的哈希表1604(包含完整或部分内部表数据以及后者的未处理数据)在数据消息中发送到下一目标DFD网络交换机110或数据节点N。如果所述下一目标是DFD网络交换机110,则所述DFD网络交换机110继续基于从上游DFD网络交换机110接收的部分哈希表构建哈希表。所述过程会重复执行,直到完全或部分构建的哈希表到达所述目标数据节点。DFD网络交换机110可以从上游DFD网络交换机110接收重复的哈希表数据,所述示例性尽力而为处理算法通过如下文示例性伪代码所示的哈希表合并处理来处理此类场景。
哈希表合并处理的伪代码示例
Figure GDA0003726464240000111
Figure GDA0003726464240000121
因此,在上述示例实施例中,每个数据节点不是向/从所有其它(n–1)数据节点发送/接收所述内部表数据,在最佳情况下,每个数据节点可以将其数据交换减少到仅一个DFD网络交换机110,而无需在本地构建哈希表,这样可以节省每个数据节点的大量网络带宽和计算容量。
图17是示出了根据示例实施例的用于执行方法的电路的框图。特别地,在一示例实施例中,图17所示的计算设备用于实施上述数据节点、所述主控主机102、所述网段主机104、所述DFD网络交换机110、所述数据库功能定义规则API 302、所述数据库功能规则库304、所述数据库功能处理逻辑单元306、所述网络交换机核心逻辑单元308和/或所述交换结构硬件310。但是,并非图17示出的所有组件都需要在所有各种实施例中使用。例如,数据库系统100和DFD网络交换机110可以各自使用图17中所示组件的不同子集或其它组件。
计算机1700形式的一示例计算设备可以包括处理单元1702、存储器1703、可移动存储器1710和不可移动存储器1712。虽然示例计算设备被图示和描述为计算机1700,但是计算设备在不同的实施例中可以是不同的形式。例如,计算设备可以是智能手机、平板电脑、智能手表或其它包括与图17所示和所述的相同或相似元件的计算设备。智能手机、平板电脑和智能手表等设备通常统称为移动设备或用户设备。此外,虽然各种数据存储元件被图示为所述计算机1700的一部分,但是所述存储器还可以或者可选地包括通过网络例如互联网可访问的基于云的存储器,或者基于互联网或服务器的存储器。
存储器1703可包括易失性存储器1714和非易失性存储器1708。计算机1700可以包括或者可以访问计算环境,该计算环境包括各种计算机可读介质,例如易失性存储器1714和非易失性存储器1708、可移动存储器1710和不可移动存储器1712。计算机存储器包括随机存取存储器(random access memory,简称RAM)、只读存储器(read-only memory,简称ROM)、可擦除可编程只读存储器(erasable programmable read only memory,简称EPROM)或电可擦除可编程只读存储器(electrically erasable programmable read-onlymemory,简称EEPROM)、闪存或其它存储器技术、只读光盘(compact disc read-onlymemory,简称CD ROM)、数字多功能光盘(digital versatile disc,简称DVD)或其它光盘存储器、盒式磁带、磁带、磁盘存储器或其它磁存储设备,或者任何其它能够存储计算机可读指令的介质。
计算机1700可以包括或访问包括输入接口1706、输出接口1704和通信接口1716的计算环境。输出接口1704可以包括可以用作输入设备的显示设备,例如触摸屏。所述输入接口1706可以包括以下一种或多种:触摸屏、触摸板、鼠标、键盘、相机、一个或多个设备专用按钮、集成在所述计算机1700内或通过有线或无线数据连接耦合到所述计算机1700内的一个或多个传感器,以及其它输入设备。所述计算机可以使用通信连接在联网环境中工作,以连接到一个或多个远程计算机,如数据库服务器。所述远程计算机可以包括个人计算机(personal computer,简称PC)、服务器、路由器、网络PC、对端设备或其它公共DFD网络交换机等。所述通信连接可以包括局域网(local area network,简称LAN)、广域网(wide areanetwork,简称WAN)、蜂窝、Wi-Fi、蓝牙或其它网络。根据一实施例,计算机1700的各种组件与系统总线连接。
存储在计算机可读介质上的计算机可读指令可由所述计算机1700的处理单元1702执行,例如程序1718。在一些实施例中,所述程序1718包括软件,当由所述处理单元1702执行时,根据本文包括的实施例中的任一实施例执行网络交换机操作。硬盘驱动器、CD-ROM和RAM是产品的一些示例,所述产品包括如存储设备的非瞬时性计算机可读介质。术语“计算机可读介质”和“存储设备”不包括载波,因为载波过于短暂。存储器也可包括联网存储器,例如存储区域网络(storage area network,简称SAN)。
在示例实施例中,所述计算机1700包括数据库功能模块,对所述网络交换机接收的数据消息中包含的查询数据执行预定义的数据库功能,所述执行生成结果数据,其中,在第一操作模式下对所述查询数据执行所述预定义的数据库功能到完全完成状态,生成完整的结果数据和未跳过的查询数据,以及在第二操作模式下对所述查询数据执行所述预定义的数据库功能到部分完成状态,生成部分完成的结果数据和跳过的查询数据;交换机功能模块,执行一个或多个网络交换机功能将所述完整的结果数据路由到一个或多个目标节点,和/或将所述部分完整的结果数据和跳过的查询数据路由到一个或多个目标节点。在一些实施例中,所述计算机1700可以包括其它或额外的模块来执行上述实施例中描述的步骤的任意一个或其组合。此外,如所述附图中的任意图所示或所述权利要求中任一项所述,所述方法中的附加或替代实施例或方面中的任意实施例或方面也预期包括类似的模块。
因此,如上所述,本文所述的实施例提供了分布式数据库系统中交换机的有利交换机和网络,以及用于分布式数据库的创新基础设施,所述分布式数据库包括位于传统协调节点和数据节点旁边的特殊DFD网络交换机110。在一示例性实施例中,DFD网络交换机110不像传统网络交换机那样只路由和转发数据消息,而且还完成以下操作:1)通过一组API将要执行的数据库功能定义为规则;2)动态维护库中支持的数据库功能规则;3)对匹配预定义规则的数据消息执行所述数据库功能;和/或4)将中间结果转发到目标节点或下一交换机。
此外,分布式数据库基础设施的示例实施例包括以下组件,例如使用所述组件可以利用这些数据节点:1)能够感知DFD网络交换机的优化器,所述优化器识别DFD网络交换机110并识别DFD网络交换机110要处理的可行预定义数据库功能,在有或没有尽力而为操作的情况下估计查询计划中的操作代价,并最终选择能够利用DFD网络交换机110的优势实现最佳性能的最优查询计划;和/或2)能够合并DFD网络交换机的执行器,所述执行器通过特别处理涉及DFD网络交换机110的尽力而为算子(例如,尽力而为聚合、支持DFD网络交换机的数据交换)来调度和执行尽力而为操作,同时通过考虑DFD网络交换机110上的不同系统资源限制来调度和执行其它可行网络功能。因此,通过在分布式数据库中引入DFD网络交换机110,所述能够感知DFD网络交换机的优化器在制定最优查询计划时具有更多选择,其中,所述分布式数据库的能够合并网络节点的执行器可以包含所述数据库功能中的一部分数据库功能。因此,在许多场景中,分布式数据库的总体性能都可以得到改善。
此外,本文还介绍了分布式数据库基础设施的示例实施例,所述基础设施包括数据库功能定义(database function–defined,简称DFD)的交换机,所述交换机包括处理逻辑和算法,用于执行三个主要的尽力而为性能关键分布式数据库操作:聚合、排序和哈希连接。分布式数据库的运行利用了这些数据节点,这样,未处理或部分处理的数据可以由下游数据节点以尽力而为的方式继续处理,最终由目标协调器或数据节点进行处理,数据处理量大大减少。因此,利用分布式数据库的尽力而为操作的示例实施例,分布式数据库基础设施中的DFD网络交换机110可优化网络流量、减少数据传输和带宽需求,并节省协调器和数据节点上的计算容量。因此,可以提高总体分布式数据库系统性能。
虽然上文详细描述了几个实施例但是可能进行其它修改。例如为了获得期望的结果,附图中描绘的逻辑流不需要按照所示的特定顺序或者先后顺序。可以提供其它步骤或者从所描述的流程中去除步骤,所描述的系统中可以添加或移除其它组件。其它实施例可以在所附权利要求书的保护范围内。

Claims (13)

1.一种在网络交换机上执行的方法,其特征在于,包括:
接收携带有操作标识信息和规则标识信息的数据消息;所述操作标识信息用于标识根据查询计划确定的所述网络交换机所要执行的操作,所述查询计划由协调节点基于使用和不使用所述网络交换机上的数据库功能的代价估计确定;若所述操作被确定为在第二操作模式下执行,则所述数据消息还标记有根据所述查询计划生成的计划算子信息;
在规则库中定位到所述规则标识信息对应的规则,所述规则库存储所述数据库功能的规则,所述规则指示所述数据库功能对应的查询数据格式、输出数据格式以及内部处理逻辑;
使用一个或多个处理器,对所述网络交换机接收的所述数据消息中包含的查询数据执行所述数据库功能,所述执行生成结果数据,其中,在第一操作模式下对所述查询数据执行所述数据库功能到完全完成状态,生成完整的结果数据和未跳过的查询数据,或者在所述第二操作模式下对所述查询数据执行所述数据库功能到部分完成状态,生成部分完成的结果数据和跳过的查询数据;在所述第一操作模式下或在所述第二操作模式下执行所述数据库功能至少部分地基于可用于执行所述数据库功能的资源来确定,所述资源包括内存、时间或处理器带宽中的一个或多个;
执行一个或多个网络交换机功能将所述完整的结果数据路由到一个或多个目标节点,或将所述部分完成的结果数据和跳过的查询数据路由到一个或多个目标节点;其中,多个网络交换机按层次结构排列,并且所述部分完成的结果数据在第二网络交换机中进一步处理,所述第二网络交换机从第一网络交换机接收所述部分完成的结果数据。
2.根据权利要求1所述的方法,其特征在于,所述数据库功能包括聚合功能、缓存功能、哈希功能、合并功能或排序功能。
3.根据权利要求1或2所述的方法,其特征在于,所述查询数据从一个或多个数据存储源中检索得到,所述检索到的数据携带在所述数据消息中。
4.根据权利要求1或2所述的方法,其特征在于,所述数据库功能基于所述规则执行。
5.根据权利要求1或2所述的方法,其特征在于,所述网络交换机功能还包括分类或流量控制功能。
6.根据权利要求1或2所述的方法,其特征在于,还包括:将所述结果数据包含在数据消息中,并将所述数据消息排队等待路由到所述一个或多个目标节点。
7.一种网络交换机,其特征在于,包括:
非瞬时性存储器,包括指令;
一个或多个处理器,与所述存储器通信,其中所述一个或多个处理器执行所述指令以进行下述操作:
接收携带有操作标识信息和规则标识信息的数据消息;所述操作标识信息用于标识根据查询计划确定的所述网络交换机所要执行的操作,所述查询计划由协调节点基于使用和不使用所述网络交换机上的数据库功能的代价估计确定;若所述操作被确定为在第二操作模式下执行,则所述数据消息还标记有根据所述查询计划生成的计划算子信息;
在规则库中定位到所述规则标识信息对应的规则,所述规则库存储所述数据库功能的规则,所述规则指示所述数据库功能对应的查询数据格式、输出数据格式以及内部处理逻辑;
对到达所述网络交换机的所述数据消息中携带的数据执行所述数据库功能,所述执行生成处理后的结果数据,其中在第一操作模式下执行所述数据库功能以生成完整状态,所述完整状态包括完整的处理后的结果数据,或者在所述第二操作模式下在尽力而为的基础上执行所述数据库功能以生成部分执行的部分完成状态,所述部分完成状态包括不完整的处理后的结果数据;在所述第一操作模式下或在所述第二操作模式下执行所述数据库功能至少部分地基于可用于执行所述数据库功能的资源来确定,所述资源包括内存、时间或处理器带宽中的一个或多个;
执行一个或多个网络交换机功能以将所述处理后的结果数据和/或所述数据消息中携带的数据路由到一个或多个目标节点,其中,如果完成状态为所述部分完成状态,则将所述不完整的处理后的结果数据和任何未处理的数据转发到所述一个或多个目标节点;多个网络交换机按层次结构排列,并且所述不完整的处理后的结果数据在第二网络交换机中进一步处理,所述第二网络交换机从第一网络交换机接收所述不完整的处理后的结果数据。
8.根据权利要求7所述的网络交换机,其特征在于,还包括数据库服务器,所述数据库服务器用于处理需要从一个或多个数据存储源检索数据的数据库查询,所述检索到的数据携带在所述数据消息中。
9.根据权利要求7或8所述的网络交换机,其特征在于,数据库功能处理逻辑单元的尽力而为基础至少部分取决于所述数据库功能处理逻辑单元的处理能力。
10.根据权利要求7或8所述的网络交换机,其特征在于,还包括数据存储器,所述数据存储器用于存储所述数据库功能的规则以执行所述数据库功能。
11.根据权利要求7或8所述的网络交换机,其特征在于,在执行所述数据库功能后,将所述处理后的结果数据包含在排队等待转发到所述一个或多个目标节点的一个或多个数据消息中。
12.根据权利要求7或8所述的网络交换机,其特征在于,所述数据消息还包括指定至少一个数据库功能的指令,以对所述数据消息中携带的数据执行所述数据库功能。
13.一种非瞬时性计算机可读介质,存储有计算机指令,其特征在于,所述计算机指令在由一个或多个处理器执行时实现权利要求1至6任一项所述方法的步骤。
CN201880007173.2A 2017-01-17 2018-01-16 在网络交换机上执行数据库功能的方法 Active CN110226159B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/408,130 2017-01-17
US15/408,130 US11080274B2 (en) 2017-01-17 2017-01-17 Best-efforts database functions
PCT/CN2018/072911 WO2018133782A1 (en) 2017-01-17 2018-01-16 Best-efforts database functions

Publications (2)

Publication Number Publication Date
CN110226159A CN110226159A (zh) 2019-09-10
CN110226159B true CN110226159B (zh) 2022-10-11

Family

ID=62840912

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880007173.2A Active CN110226159B (zh) 2017-01-17 2018-01-16 在网络交换机上执行数据库功能的方法

Country Status (4)

Country Link
US (1) US11080274B2 (zh)
EP (1) EP3559833B1 (zh)
CN (1) CN110226159B (zh)
WO (1) WO2018133782A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10805241B2 (en) 2017-01-17 2020-10-13 Futurewei Technologies, Inc. Database functions-defined network switch and database system
US11423014B2 (en) * 2019-08-26 2022-08-23 Hewlett Packard Enterprise Development Lp Method and system for database enhancement in a switch
CN111209305B (zh) * 2019-11-19 2023-07-18 华为云计算技术有限公司 查询数据的方法、数据节点、分布式数据库、计算设备
US11720522B2 (en) * 2020-06-12 2023-08-08 Oracle International Corporation Efficient usage of one-sided RDMA for linear probing
CN111817938B (zh) * 2020-07-15 2022-04-01 上汽通用五菱汽车股份有限公司 一种汽车can通讯矩阵编制的方法、系统及存储介质

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9810841D0 (en) * 1998-05-21 1998-07-22 3Com Technologies Ltd Organisation of data bases in network switches for packet-based data communication networks
US7346075B1 (en) 2000-02-25 2008-03-18 International Business Machines Corporation Portable networking interface method and apparatus for distributed switching system
US7099444B1 (en) 2003-04-16 2006-08-29 At&T Corp. Database service for telemarketers to screen and block selected telecommunication messages
US8966018B2 (en) 2006-05-19 2015-02-24 Trapeze Networks, Inc. Automated network device configuration and network deployment
US8416779B2 (en) 2006-06-08 2013-04-09 Samsung Electronics Co., Ltd. Stored transmission packet intended for use in new link-adaptaton mechanism, and apparatus and method for transmitting and receiving transmission packet using the same
US20080189251A1 (en) * 2006-08-25 2008-08-07 Jeremy Branscome Processing elements of a hardware accelerated reconfigurable processor for accelerating database operations and queries
US8335780B2 (en) * 2008-03-11 2012-12-18 James Madison Kelley Scalable high speed relational processor for databases and networks
US8990433B2 (en) 2009-07-01 2015-03-24 Riverbed Technology, Inc. Defining network traffic processing flows between virtual machines
CN101635741B (zh) 2009-08-27 2012-09-19 中国科学院计算技术研究所 分布式网络中查询资源的方法及其系统
US8887163B2 (en) 2010-06-25 2014-11-11 Ebay Inc. Task scheduling based on dependencies and resources
US9525647B2 (en) 2010-07-06 2016-12-20 Nicira, Inc. Network control apparatus and method for creating and modifying logical switching elements
EP2659395A2 (en) * 2010-12-28 2013-11-06 Citrix Systems, Inc. Systems and methods for database proxy request switching
US8756217B2 (en) * 2011-07-12 2014-06-17 Facebook, Inc. Speculative switch database
US10650452B2 (en) * 2012-03-27 2020-05-12 Ip Reservoir, Llc Offload processing of data packets
US9990393B2 (en) * 2012-03-27 2018-06-05 Ip Reservoir, Llc Intelligent feed switch
US9239864B2 (en) * 2012-04-17 2016-01-19 Cisco Technology, Inc. Distributing and processing streams over one or more networks
US8989192B2 (en) 2012-08-15 2015-03-24 Futurewei Technologies, Inc. Method and system for creating software defined ordered service patterns in a communications network
IN2013CH05044A (zh) * 2013-11-08 2015-05-29 Huawei Technologies India Pvt Ltd
US9276959B2 (en) 2013-11-11 2016-03-01 Amazon Technologies, Inc. Client-configurable security options for data streams
US20150180942A1 (en) 2013-12-20 2015-06-25 Sap Ag Message-oriented middleware
US9705986B2 (en) 2014-06-18 2017-07-11 Alfresco Software, Inc. Elastic scalability of a content transformation cluster
US20160013990A1 (en) 2014-07-09 2016-01-14 Cisco Technology, Inc. Network traffic management using heat maps with actual and planned /estimated metrics
CN104065521B (zh) 2014-07-18 2017-09-29 国家电网公司 一种电力网络设备日志和配置文件的采集、分析和发布系统及其方法
US9923970B2 (en) 2014-08-22 2018-03-20 Nexenta Systems, Inc. Multicast collaborative erasure encoding and distributed parity protection
CN104320442B (zh) 2014-10-10 2019-05-07 浙江天正思维信息技术有限公司 应用系统表现层集成技术平台系统及方法
US10430472B2 (en) * 2015-02-26 2019-10-01 Cavium, Llc Apparatus and method for collecting responses to a plurality of parallel lookup queries from a flow of packets at a network switch
US20160357800A1 (en) * 2015-06-04 2016-12-08 Mediatek Inc. Network switch and data base updating method
CN106162639B (zh) 2015-11-25 2019-04-12 北京邮电大学 基于Floodlight的SDN无线网络管理平台及认证方法
WO2017117345A1 (en) 2015-12-30 2017-07-06 Convida Wireless, Llc Semantics based content specification of iot data
CN105681191B (zh) 2016-02-25 2019-04-30 烽火通信科技股份有限公司 基于路由器虚拟化的sdn平台及实现方法
US10122788B2 (en) 2016-03-29 2018-11-06 Amazon Technologies, Inc. Managed function execution for processing data streams in real time
US20180025052A1 (en) * 2016-07-21 2018-01-25 Cisco Technology, Inc. Infrastructure aware query optimization
US10805241B2 (en) * 2017-01-17 2020-10-13 Futurewei Technologies, Inc. Database functions-defined network switch and database system

Also Published As

Publication number Publication date
EP3559833A1 (en) 2019-10-30
WO2018133782A1 (en) 2018-07-26
EP3559833A4 (en) 2020-01-15
US20180203895A1 (en) 2018-07-19
US11080274B2 (en) 2021-08-03
EP3559833B1 (en) 2023-08-30
CN110226159A (zh) 2019-09-10

Similar Documents

Publication Publication Date Title
CN110226159B (zh) 在网络交换机上执行数据库功能的方法
CN110169019B (zh) 数据库功能定义的网络交换机和数据库系统
US9313134B2 (en) Leveraging hardware accelerators for scalable distributed stream processing in a network environment
US9596295B2 (en) Computing connected components in large graphs
WO2020034646A1 (zh) 一种资源调度方法及装置
WO2018000993A1 (zh) 一种分布式存储的方法和系统
US10129181B2 (en) Controlling the reactive caching of wildcard rules for packet processing, such as flow processing in software-defined networks
CN107113241B (zh) 路由确定方法、网络配置方法以及相关装置
EP3183848B1 (en) Optimization framework for multi-tenant data centers
JP2015509232A (ja) クラウドにおけるメッセージングのための方法および装置
US20220358108A1 (en) Historical graph database
EP3178215B1 (en) Routing requests with varied protocols to the same endpoint within a cluster
CN112579319A (zh) 一种基于LRU Cache优化的服务调用方法及装置
US11108854B2 (en) Peer-to-peer network for internet of things resource allocation operation
US20210135976A1 (en) Utilizing segment routing data and network data to determine optimized network plans and to implement an optimized network plan
US10447585B2 (en) Programmable and low latency switch fabric for scale-out router
US10826819B2 (en) System and method for data transmission in distributed computing environments
CN111143427A (zh) 基于在网计算的分布式信息检索方法、系统与装置
CN107046503B (zh) 一种报文传输方法、系统及其装置
WO2017157189A1 (en) Data streaming broadcasts in massively parallel processing databases
CN115022340A (zh) 一种运行联盟链网络的方法
CN113965471A (zh) 基于RoCEv2协议的网络构建方法及系统
CN113934767A (zh) 一种数据处理的方法及装置、计算机设备和存储介质
WO2023207278A1 (zh) 一种报文处理方法及装置
JPWO2012102102A1 (ja) 情報処理装置、情報処理システム、情報処理方法および情報処理プログラム

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