CN110169019A - 数据库功能定义的网络交换机和数据库系统 - Google Patents
数据库功能定义的网络交换机和数据库系统 Download PDFInfo
- Publication number
- CN110169019A CN110169019A CN201880006228.8A CN201880006228A CN110169019A CN 110169019 A CN110169019 A CN 110169019A CN 201880006228 A CN201880006228 A CN 201880006228A CN 110169019 A CN110169019 A CN 110169019A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- network switch
- function
- network
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/356—Switches specially adapted for specific applications for storage area networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供了一种计算机实现的方法和系统。所述方法包括执行网络交换机中的应用编程接口(application programming interface,简称API)以定义一个或多个数据库功能中的至少一个;使用一个或多个处理器对所述交换机处接收的数据消息中包含的数据的至少一部分执行所述一个或多个数据库功能,以生成结果数据;以及将所述结果数据路由到一个或多个目标节点。数据库功能定义的网络交换机包括网络交换机和一个或多个处理器,用于对所述交换机处接收的数据消息中包含的查询数据执行预定义的数据库功能,以生成结果数据,其中,在第一操作模式下对所述查询数据执行所述预定义的数据库功能到完全完成状态,生成完整的结果数据和未跳过的查询数据,或者对所述查询数据执行所述预定义的数据库功能到部分完成状态,生成部分完成的结果数据和跳过的查询数据。
Description
相关申请
本申请涉及2017年1月17日递交的发明名称为“数据库功能定义的网络交换机和数据库系统”的第15/408,206号美国专利申请案。
技术领域
本发明涉及分布式数据库,尤其涉及用于在分布式数据库系统的节点之间路由数据的网络交换机和相关方法。
背景技术
现代分布式数据库,例如大规模并行处理(massively parallel processing,简称MPP)数据库,可能会部署成百上千个数据节点(data node,简称DN)。分布式数据库中的数据节点通过网络互连,所述网络包括每个节点上的网络接口卡(network interfacecard,简称NIC)、连接节点和其它交换机的网络交换机以及将所述网络与诸如互联网等其它网络连接的路由器。当处理所述数据库系统接收的查询时,数据节点通常需要交换数据消息来执行数据库操作(例如,连接、聚合和哈希等)。这些数据消息可以是例如表行数据、某些列数据、分组的中间聚合结果、某些表行子集的最大值或最小值或者哈希联接的中间结果。
数据消息通过所述网络中的交换机进行路由,以传送到目标数据节点。数据节点可以向所述网络中的部分或所有其它数据节点发送数据消息,以完成查询的操作。由于传统网络交换机不知道其转发的数据消息的内容,因此它可能会转发重复的或不必要的数据消息,从而导致在所述目标数据节点上浪费紧张且高度需求的网络带宽和计算容量。
发明内容
一种由网络交换机执行的计算机实现方法,包括执行所述网络交换机中的应用编程接口(application programming interface,简称API)以定义一个或多个数据库功能中的至少一个;使用一个或多个处理器对所述交换机处接收的数据消息中包含的数据的至少一部分执行所述一个或多个数据库功能,以生成结果数据;以及将所述结果数据路由到一个或多个目标节点。
网络交换机包括包含指令的非瞬时性存储器以及与所述存储器通信的一个或多个处理器,其中所述一个或多个处理器执行所述指令以进行以下操作:执行应用编程接口(application programming interface,简称API)定义一个或多个数据库功能;对到达网络节点的数据消息中携带的数据执行所述一个或多个数据库功能,所述执行会生成处理后的结果数据;以及执行一个或多个网络交换机功能来将所述处理后的结果数据和/或所述数据消息中携带的所述数据路由到一个或多个目标节点。
数据库系统包括数据库服务器,用于处理需要从一个或多个数据存储源检索数据的数据库查询,所述检索到的数据携带在数据消息中;多个网络节点,连接所述一个或多个数据存储源和所述数据库服务器,所述网络节点中的至少一个包括:数据库功能处理逻辑单元,对到达网络节点的数据消息中携带的数据执行预定义的数据库功能,所述执行会生成处理后的结果数据;网络交换机逻辑单元,耦合到所述数据库功能处理逻辑并执行一个或多个网络交换机功能来将所述处理后的结果数据和/或所述数据消息中携带的所述数据路由到一个或多个目标节点;以及应用编程接口(application programming interface,简称API),与所述网络交换机逻辑单元通信,其中所述API在所述交换机中执行并定义所述一个或多个功能。
一种方法包括处理需要从一个或多个数据存储源检索数据的数据库查询,所述检索到的数据携带在数据消息中;对到达网络节点的数据消息中携带的数据执行预定义的数据库功能,所述执行会生成处理后的结果数据;执行一个或多个网络交换机功能来将所述处理后的结果数据和/或所述数据消息中携带的所述数据路由到一个或多个目标节点;使用应用编程接口(application programming interface,简称API)定义所述数据库功能中的一个或多个。
现描述各种示例从而以简化的形式引入概念的选择,这些概念将在以下具体实施方式中进行进一步的描述。本发明内容的目的不在于识别权利要求书保护的主题的关键或必要特征,也不在于限制权利要求书保护的主题的范围。
在示例1中,提供了一种由网络交换机执行的计算机实现方法,所述方法包括执行所述网络交换机中的应用编程接口(application programming interface,简称API)以定义一个或多个数据库功能中的至少一个;使用一个或多个处理器对所述交换机处接收的数据消息中包含的数据的至少一部分执行所述一个或多个数据库功能,以生成结果数据;以及将所述结构数据路由到一个或多个目标节点。
在示例2中,提供了根据示例1的方法,所述方法包括在存储设备中存储用于执行所述数据库功能的至少一条数据库功能规则。
在示例3中,提供了根据示例1或2的方法,其中,所述路由由网络交换机逻辑单元执行,所述网络交换机逻辑单元执行路由、分类或流量控制功能中的至少一个。
在示例4中,提供了根据示例1至3的方法,所述方法还包括将所述结果数据包含在排队等待转发到所述一个或多个目标节点的一个或多个数据消息中。
在示例5中,提供了根据示例1至4的方法,其中,所述一个或多个目标节点中的目标节点包括目标数据库节点或网络交换节点。
在示例6中,还提供了根据示例1至5的方法,其中,所述数据库功能选自聚合功能、缓存功能、哈希功能、联合/合并功能或排序/排列功能。
在示例7中,提供了一种网络交换机,包括包含指令的非瞬时性存储器以及与所述存储器通信的一个或多个处理器,其中所述一个或多个处理器执行所述指令以进行以下操作:执行应用编程接口(application programming interface,简称API)定义一个或多个数据库功能;对到达网络节点的数据消息中携带的数据执行所述一个或多个数据库功能,所述执行会生成处理后的结果数据;以及执行一个或多个网络交换机功能来将所述处理后的结果数据和/或所述数据消息中携带的所述数据路由到一个或多个目标节点。
在示例8中,提供了根据示例7的网络交换机,还包括数据存储器,用于存储至少一条数据库功能规则以执行所述数据库功能。
在示例9中,提供了根据示例7或8的网络交换机,其中,执行所述一个或多个网络交换机功能会执行路由、分类或流量控制功能。
在示例10中,提供了根据示例7至9的网络交换机,其中,所述处理后的结果数据包含在排队等待转发到所述一个或多个目标节点的一个或多个数据消息中。
在示例11中,提供了根据示例7至10的网络交换机,其中,所述一个或多个目标节点中的目标节点包括目标数据库节点或网络交换节点。
在示例12中,还提供了根据示例7至11的网络交换机,其中,所述数据库功能选自聚合功能、缓存功能、联合/合并功能或排序/排列功能。
在示例13中,提供了一种数据库系统,所述数据库系统包括数据库服务器,用于处理需要从一个或多个数据存储源检索数据的数据库查询,所述检索到的数据携带在数据消息中;多个网络节点,连接所述一个或多个数据存储源和所述数据库服务器,所述网络节点中的至少一个包括:数据库功能处理逻辑单元,对到达网络节点的数据消息中携带的数据执行预定义的数据库功能,所述执行会生成处理后的结果数据;网络交换机逻辑单元,耦合到所述数据库功能处理逻辑并执行一个或多个网络交换机功能来将所述处理后的结果数据和/或所述数据消息中携带的所述数据路由到一个或多个目标节点;以及应用编程接口(application programming interface,简称API),与所述网络交换机逻辑单元通信,其中所述API在所述交换机中执行并定义所述一个或多个功能。
在示例14中,提供了根据示例13的数据库系统,所述数据库系统还包括数据存储器,用于存储至少一条数据库功能规则以执行所述数据库功能。
在示例15中,提供了根据示例13或14的数据库系统,其中,所述网络交换机逻辑单元执行路由、分类或流量控制功能中的一个或多个。
在示例16中,提供了根据示例13至15的数据库系统,还包括所述处理后的结果数据包含在排队等待转发到所述一个或多个目标节点的一个或多个数据消息中。
在示例17中,提供了根据示例13至16的数据库系统,其中,所述目标节点选自数据库服务器或网络交换机节点。
在示例18中,提供了一种方法,包括处理需要从一个或多个数据存储源检索数据的数据库查询,所述检索到的数据携带在数据消息中;对到达网络节点的数据消息中携带的数据执行预定义的数据库功能,所述执行会生成处理后的结果数据;执行一个或多个网络交换机功能来将所述处理后的结果数据和/或所述数据消息中携带的所述数据路由到一个或多个目标节点;以及使用应用编程接口(application programming interface,简称API)定义所述数据库功能中的一个或多个。
在示例19中,提供了根据示例18的方法,还包括存储库,用于存储用于定义所述预定义数据库功能的数据库功能规则。
在示例20中,提供了根据示例18或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包括一个单独的物理服务器,其具有自己的操作系统(operatingsystem,简称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由所述交换机110在所述网络中进行路由,以传送到目标数据节点0至N。根据一实施例,数据消息202封装在网络数据包中,包含例如表行数据、列数据、分组的中间聚合结果、某些表行子集的最大或最小值或哈希联接的中间结果,如下所述。
在图2示例中,DFD网络交换机110在第一操作模式下运行时,将数据消息202从节点0、2、3、4、6、N路由到数据节点1,而不使用其数据库功能的能力,从而完成数据库查询的操作。例如,数据节点1可能需要数据库功能的数据,即从所有其它数据节点检索不同的值204。对于此功能,所述数据节点中的每个节点将不同值的单独中间结果通过所述交换机包含的数据消息202发送到节点1。在此第一操作模式中,这些不同值的传送对所述交换机是“透明”的,换句话说,所述交换机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携带规则标识或识别规则的信息,以便所述交换机110在接收408到封装数据消息的网络数据包时能够在其规则存储库304中定位到410所识别的规则。
一旦所述交换机110在规则存储库304中定位到410所述适用的规则,所述数据消息202将由所述数据库功能处理逻辑单元306处理411,以使用所述适用的规则或多条规则执行所述预定义的数据库功能412。所述功能逻辑单元306的执行由交换结构硬件310完成。在执行所述功能后,将结果数据消息202组合并排队414等待所述交换机的核心逻辑单元308转发416到所述目标数据节点(或下一数据节点),例如交换机110。
所述交换机110中的核心逻辑单元308执行网络交换机的常见功能,例如路由、分类、流量控制等。此单元308用作网络交换机的基本组件,并由传统网络交换机和所述DFD网络交换机110的架构共享。
交换结构硬件310包括传统网络交换机使用的通用硬件,例如处理器、存储器,在一示例实施例中,交换结构硬件310还集成了专用硬件,例如但不限于协处理器、现场可编程门阵列(field programmable gate array,简称FPGA)和/或专用集成电路(applicationspecific 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可以是数据网段主机104、106和108等数据源,又如结合图1所讨论。在此示例实施例中,还提供了在分布式数据库系统上运行的优化器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,所述优化器708和所述执行器710在分布式数据库系统上运行,以利用DFD网络交换机110中的数据库功能。如上所述,根据一实施例,如图7所示,协调节点702包含或利用优化器708和执行器710,数据节点704仅包含或利用执行器710。如上所述,数据库功能或操作在所述DFD网络交换机110中定义。此类数据库功能包括但不限于:(i)聚合数据节点的中间结果,(ii)缓冲数据和构建哈希表,(iii)对某些数据进行排序和排列,以及(iv)联合或合并中间结果。
根据图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中的预先定义的数据库功能定义规则处理1004所述数据消息(请参阅图3)。将将结果数据消息转发1006到所述数据消息902的路由路径上的下游交换机906。在从上游交换机904接收所述数据消息202时,所述下游交换机906使用与所述数据消息902关联的预定义数据库功能定义规则再次处理1008所述数据消息,然后将新的结果数据消息转发1010到其在所述数据消息的路由路径上的下游交换机906。所述过程将继续到所述数据消息到达1010所述目标908。因此,图9和过程1000的实施例所示的情况是多台DFD网络交换机110,其中所述数据库功能在所述数据消息902的路由路径上的每台交换机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接收数据消息中包含的流查询数据,并且仅对指定或期望时间范围内且其容量内的查询数据执行操作/功能,并将所述部分处理结果连同所述“跳过”的未处理查询数据转发到所述下一目标节点。
根据一实施例,跳过的数据绕过用于执行数据库功能的交换机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调度1230通过涉及DFD网络交换机110和数据节点的连接进行的数据交换。所述执行器710为数据交换建立1236虚拟连接,并在数据消息可用时调度所述数据消息的传送。所述执行器710处理从DFD网络交换机110和数据节点接收的用于尽力而为操作的数据。在接收到1240所述数据消息后,所述执行器710处理1240所述数据,如果所述DFD网络交换机110未完全完成,则执行所述尽力而为操作。在一实施例中,当接收到尽力而为算子消息时,如果1260所述算子消息是来自DFD网络交换机110的聚合消息,则对所述原始数据消息的ID进行编码,以便所述执行器710可以识别1270在发生传输错误时丢失的数据消息。
因此,如上所述,所公开的实施例提供了更丰富和完整的网络交换机基础设施和分布式数据库的增强功能,而且所述DFD网络交换机110不需要在数据节点上进行硬件更改,而在交换机上进行硬件自定义仅是进一步提高所述性能的可选方案。
DFD网络交换机上的尽力而为处理:
此外,如下文所述,提供了示例实施例说明以下各类的逻辑:尽力而为聚合、尽力而为排序和尽力而为哈希联接,这些是性能关键型分布式数据库操作的三个主要类别。这些操作是分布式数据库中的主要性能关键型操作。
图13显示了尽力而为聚合算法的处理逻辑1300的示例实施例的流程图。在这里,聚合处理是诸如DISTINCT、SUM、MIN/MAX或其它操作等如上所述指定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的数据流图所示,哈希联接是常用的过程1500之一,其中,例如网络交换机1502可以部署为节点n-1、节点n、节点1、节点2、节点3和节点i这些数据节点之间的交换网络,并在第一传统操作模式下运行,将所述哈希联接的内部表广播1504到所有涉及所述哈希联接的数据节点中(针对节点i进行标记仅是为了清楚说明)。在此过程中,每个数据节点N(n-1、2、3、i)广播自己的所述内部表的本地数据,并从所有其它数据节点N接收1506(针对节点i进行标记仅是为了清楚说明)所述内部表数据以构建完整的哈希表。然后,本地外部表数据通过探测所述哈希表加入所述重建的内部表。例如,对于图15所示的分布式数据库系统中的哈希联接,将来自每个数据节点(例如,节点1)的相同本地内部表数据广播(n-1)到所有其它(n-1)数据节点。然后,在从所有其它(n-1)数据节点接收所有内部表数据后,每个数据节点在内部表数据上构建相同的哈希表,这意味着在所述整个集群中重复N次构建相同的哈希表过程。整个过程浪费了大量的网络带宽和计算容量。
另一方面,根据图16所示的示例实施例数据流过程1600,使用DFD网络交换机110可以部署在所述交换网络1601中并在第二操作模式下运行,尽力而为哈希联接,来自每个数据节点的广播内表数据1602、节点n和节点(n-1)、节点1、节点2、节点3和节点i在所述DFD网络交换机110中累积并处理。在路由数据消息时,所述DFD网络交换机110根据所述各自网络交换机110的资源容量限制构建所述哈希表。然后,将所述构建的哈希表1604(包含完整或部分内部表数据以及后者的未处理数据)在数据消息中发送到所述下一目标DFD网络交换机110或数据节点N。这里,如果所述下一目标是DFD网络交换机110,则所述DFD网络交换机110继续基于从上游DFD网络交换机110接收的部分哈希表构建哈希表。所述过程会重复执行,直到完全或部分构建的哈希表到达所述目标数据节点。在这里,DFD网络交换机110可以从上游DFD网络交换机110接收重复的哈希表数据,所述示例性尽力而为处理算法通过如下文示例性伪代码所示的哈希表合并处理来处理此类场景。
哈希表合并处理的伪代码示例
因此,在上述示例实施例中,每个数据节点不是向所有其它(n-1)数据节点发送所述内部表数据或从所有其它(n-1)数据节点接收所述内部表数据,在最佳情况下,而是可以将其数据交换减少到仅一个DFD网络交换机110,而无需在本地构建哈希表,这样可以节省每个数据节点的大量网络带宽和计算容量。
图17是示出了根据示例实施例的用于执行方法的电路的框图。特别地,在一示例实施例中,图17所示的计算设备用于实施上述数据节点、所述主控主机102、所述网段主机104、所述DFD网络交换机110、所述DFD规则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的各种组件通过系统总线1720连接。
存储在计算机可读介质上的计算机可读指令可由所述计算机1700的处理单元1702执行,例如程序1718。在一些实施例中,所述程序1718包括软件,当由所述处理单元1702执行所述软件时,根据本文包括的实施例中的任一实施例执行网络交换机操作。硬盘驱动器、CD-ROM和RAM是产品的一些示例,所述产品包括如存储设备的非瞬时性计算机可读介质。术语“计算机可读介质”和“存储设备”不包括载波,因为载波被认为过于短暂。存储器也可包括联网存储器,例如存储区域网络(storage area network,简称SAN)。
在一示例实施例中,所述计算机1700包括应用编程接口(applicationprogramming interface,简称API)模块,执行所述网络交换机中的API以定义一个或多个数据库功能中的至少一个;数据库功能模块,对所述交换机处接收的数据消息中包含的数据的至少一部分执行所述一个或多个数据库功能,以生成结果数据;路由模块,将所述结果数据路由到一个或多个目标节点。在一些实施例中,所述计算机1700可以包括其它或额外的模块来执行上述实施例中描述的步骤的任意一个或其组合。此外,如所述附图中的任意图所示或所述权利要求中任一项所述,所述方法中的附加或替代实施例或方面中的任意实施例或方面也预期包括类似的模块。
在一示例实施例中,所述计算机1700包括应用编程接口(applicationprogramming interface,简称API)模块,使用应用编程接口(application programminginterface,简称API)定义一个或多个数据库功能;检索模块,处理需要从一个或多个数据存储源检索数据的数据库查询,所述检索到的数据携带在数据消息中;执行模块,对到达网络节点的数据消息中携带的数据执行预定义的数据库功能,所述执行会生成处理后的结果数据;路由模块,执行一个或多个网络交换机功能来将所述处理后的结果数据和/或所述数据消息中携带的所述数据路由到一个或多个目标节点。在一些实施例中,所述计算机1700可以包括其它或额外的模块来执行上述实施例中描述的步骤的任意一个或其组合。此外,如所述附图中的任意图所示或所述权利要求中任一项所述,所述方法中的附加或替代实施例或方面中的任意实施例或方面也预期包括类似的模块。
因此,如上所述,本文所述的实施例提供了分布式数据库系统中交换机的有利交换机和网络,以及用于分布式数据库的创新基础设施,所述分布式数据库包括位于传统协调节点和数据节点旁边的特殊DFD网络交换机110。在一示例性实施例中,DFD网络交换机110不像传统网络交换机那样只路由和转发数据消息,而且还完成以下操作:i)通过一组API将要执行的数据库功能定义为规则;ii)动态维护存储库中支持的数据库功能规则;iii)对匹配预定义规则的数据消息执行所述数据库功能;和/或iv)将中间结果转发到目标节点或下一交换机。
此外,分布式数据库基础设施的示例实施例包括以下组件,通过以下组件可以利用这些数据节点:i)DFD网络交换机感知优化器,识别DFD网络交换机110并识别DFD网络交换机110要处理的可行预定义数据库功能,在有或无尽力而为操作的情况下估计查询计划中的操作代价,并最终选择能够利用DFD网络交换机110的优势实现最佳性能的最优查询计划;和/或ii)DFD网络交换机合并执行器,所述执行器通过涉及DFD网络交换机110的尽力而为算子特别处理,如尽力而为聚合、DFD网络交换机启用的数据交换,来调度和执行尽力而为操作,同时通过考虑DFD网络交换机110上的不同系统资源限制来调度和执行其它可行网络功能。因此,通过在分布式数据库中引入DFD网络交换机110,所述DFD网络交换机感知优化器在制定最优查询计划时具有更多选择,其中,所述分布式数据库的网络节点合并执行器可以包含所述数据库功能中的一部分数据库功能。因此,在许多场景中,分布式数据库的总体性能都可以得到改善。
此外,本文还介绍了分布式数据库基础设施的示例实施例,所述基础设施包括数据库功能定义(database function-defined,简称DFD)的交换机,其包括处理逻辑和算法,用于执行三个主要的尽力而为性能关键分布式数据库操作:聚合、排序和哈希联接。分布式数据库的运行利用了这些数据节点,这样,未处理或部分处理的数据可以由所述下游数据节点以尽力而为的方式持续处理,最终由所述目标协调器或数据节点进行处理,数据处理量大大减少。因此,利用分布式数据库的尽力而为操作的示例实施例,分布式数据库基础设施中的DFD网络交换机110可优化网络流量、减少数据传输和带宽需求,并节省协调器和数据节点上的计算容量。因此,可以提高分布式数据库系统总体性能。
虽然上文详细描述了几个实施例但是可能进行其它修改。例如为了获得期望的结果附图中描绘的逻辑流不需要按照所示的特定顺序或者先后顺序。可以提供其它步骤或者从所描述的流程中去除步骤,所描述的系统中可以添加或移除其它组件。其它实施例可以在所附权利要求书的范围内。
Claims (20)
1.一种由网络交换机执行的计算机实现方法,其特征在于,包括:
执行所述网络交换机中的应用编程接口(application programming interface,简称API)以定义一个或多个数据库功能中的至少一个;
使用一个或多个处理器对所述交换机处接收的数据消息中包含的数据的至少一部分执行所述一个或多个数据库功能,以生成结果数据;以及
将所述结果数据路由到一个或多个目标节点。
2.根据权利要求1所述的方法,其特征在于,包括在存储设备中存储用于执行所述数据库功能的至少一条数据库功能规则。
3.根据权利要求1至2中任一项所述的方法,其特征在于,所述路由由网络交换机逻辑单元执行,所述网络交换机逻辑单元执行路由、分类或流量控制功能中的至少一个。
4.根据权利要求1至3中任一项所述的方法,其特征在于,还包括将所述结果数据包含在排队等待转发到所述一个或多个目标节点的一个或多个数据消息中。
5.根据权利要求4所述的方法,其特征在于,所述一个或多个目标节点中的目标节点包括目标数据库节点或网络交换节点。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述数据库功能选自聚合功能、缓存功能、哈希功能、联合/合并功能或排序/排列功能。
7.一种网络交换机,其特征在于,包括:
非瞬时性存储器,包括指令;以及
与所述存储器通信的一个或多个处理器,其中所述一个或多个处理器执行所述指令以用于:执行应用编程接口(application programming interface,简称API)定义一个或多个数据库功能;
对到达网络节点的数据消息中携带的数据执行所述一个或多个数据库功能,所述执行生成处理后的结果数据;以及
执行一个或多个网络交换机功能来将所述处理后的结果数据和/或所述数据消息中携带的所述数据路由到一个或多个目标节点。
8.根据权利要求7所述的网络交换机,其特征在于,还包括数据存储器,所述数据存储器用于存储至少一条数据库功能规则以执行所述数据库功能。
9.根据权利要求7至8中任一项所述的网络交换机,其特征在于,执行所述一个或多个网络交换机功能会执行路由、分类或流量控制功能。
10.根据权利要求7至9中任一项所述的网络交换机,其特征在于,所述处理后的结果数据包含在排队等待转发到所述一个或多个目标节点的一个或多个数据消息中。
11.根据权利要求10所述的网络交换机,其特征在于,所述一个或多个目标节点中的目标节点包括目标数据库节点或网络交换节点。
12.根据权利要求7至11中任一项所述的网络交换机,其特征在于,所述数据库功能选自聚合功能、缓存功能、联合/合并功能或排序/排列功能。
13.一种数据库系统,其特征在于,包括:
数据库服务器,用于处理需要从一个或多个数据存储源检索数据的数据库查询,所述检索到的数据携带在数据消息中;
多个网络节点,连接所述一个或多个数据存储源和所述数据库服务器,所述网络节点中的至少一个包括:
数据库功能处理逻辑单元,对到达网络节点的数据消息中携带的数据执行预定义的数据库功能,所述执行生成处理后的结果数据;
网络交换机逻辑单元,耦合到所述数据库功能处理逻辑并执行一个或多个网络交换机功能来将所述处理后的结果数据和/或所述数据消息中携带的所述数据路由到一个或多个目标节点;以及
应用编程接口(application programming interface,简称API),与所述网络交换机逻辑单元通信,其中所述API在所述交换机中执行并定义所述一个或多个功能。
14.根据权利要求13所述的数据库系统,其特征在于,还包括数据存储器,用于存储至少一条数据库功能规则以执行所述数据库功能。
15.根据权利要求13至14中任一项所述的数据库系统,其特征在于,所述网络交换机逻辑单元执行路由、分类或流量控制功能中的一个或多个。
16.根据权利要求13至15中任一项所述的数据库系统,其特征在于,还包括所述处理后的结果数据包含在排队等待转发到所述一个或多个目标节点的一个或多个数据消息中。
17.根据权利要求16所述的数据库系统,其特征在于,所述目标节点选自数据库服务器或网络交换机节点。
18.一种方法,其特征在于,包括:
使用应用编程接口(application programming interface,简称API)定义一个或多个数据库功能;
处理需要从一个或多个数据存储源检索数据的数据库查询,所述检索到的数据携带在数据消息中;
对到达网络节点的数据消息中携带的数据执行预定义的数据库功能,所述执行生成处理后的结果数据;
执行一个或多个网络交换机功能来将所述处理后的结果数据和/或所述数据消息中携带的所述数据路由到一个或多个目标节点。
19.根据权利要求18所述的方法,其特征在于,还包括存储库,用于存储用于定义所述预定义数据库功能的数据库功能规则。
20.根据权利要求19所述的方法,其特征在于,还包括向所述数据消息添加至少一个指令,所述指令指定对所述数据消息中携带的所述数据执行的所述数据库功能。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/408,206 US10805241B2 (en) | 2017-01-17 | 2017-01-17 | Database functions-defined network switch and database system |
US15/408,206 | 2017-01-17 | ||
PCT/CN2018/072910 WO2018133781A1 (en) | 2017-01-17 | 2018-01-16 | Database functions-defined network switch and database system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110169019A true CN110169019A (zh) | 2019-08-23 |
CN110169019B CN110169019B (zh) | 2021-01-12 |
Family
ID=62841549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880006228.8A Active CN110169019B (zh) | 2017-01-17 | 2018-01-16 | 数据库功能定义的网络交换机和数据库系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10805241B2 (zh) |
EP (1) | EP3560148B1 (zh) |
CN (1) | CN110169019B (zh) |
WO (1) | WO2018133781A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11080274B2 (en) * | 2017-01-17 | 2021-08-03 | Futurewei Technologies, Inc. | Best-efforts database functions |
US11042356B2 (en) | 2019-02-28 | 2021-06-22 | International Business Machines Corporation | Tournament tree rollback for payload write exception |
CN110147378B (zh) * | 2019-04-02 | 2024-05-31 | 平安科技(深圳)有限公司 | 数据核对方法、装置、计算机设备及存储介质 |
US11100109B2 (en) * | 2019-05-03 | 2021-08-24 | Microsoft Technology Licensing, Llc | Querying data in a distributed storage system |
US11036733B2 (en) * | 2019-08-20 | 2021-06-15 | Ant Financial (Hang Zhou) Network Technology Co., Ltd. | Method, apparatus, system, server, and storage medium for connecting tables stored at distributed database |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070286196A1 (en) * | 2006-06-08 | 2007-12-13 | Samsung Electronics Co., Ltd. | Stored transmission packet intended for use in new link-adaptation mechanism, and apparatus and method for transmitting and receiving transmission packet using the same |
CN104320442A (zh) * | 2014-10-10 | 2015-01-28 | 浙江天正思维信息技术有限公司 | 应用系统表现层集成技术平台及其形成的集成模式及方法 |
US20150135255A1 (en) * | 2013-11-11 | 2015-05-14 | Amazon Technologies, Inc. | Client-configurable security options for data streams |
CN105681191A (zh) * | 2016-02-25 | 2016-06-15 | 武汉烽火网络有限责任公司 | 基于路由器虚拟化的sdn平台及实现方法 |
CN106162639A (zh) * | 2015-11-25 | 2016-11-23 | 北京邮电大学 | 基于Floodlight的SDN无线网络管理平台及认证方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US8990433B2 (en) | 2009-07-01 | 2015-03-24 | Riverbed Technology, Inc. | Defining network traffic processing flows between virtual machines |
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 |
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 |
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 |
US9923970B2 (en) | 2014-08-22 | 2018-03-20 | Nexenta Systems, Inc. | Multicast collaborative erasure encoding and distributed parity protection |
CN108476236B (zh) * | 2015-12-30 | 2021-08-03 | 康维达无线有限责任公司 | 物联网数据的基于语义的内容规范 |
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 |
US11080274B2 (en) | 2017-01-17 | 2021-08-03 | Futurewei Technologies, Inc. | Best-efforts database functions |
-
2017
- 2017-01-17 US US15/408,206 patent/US10805241B2/en active Active
-
2018
- 2018-01-16 EP EP18741749.8A patent/EP3560148B1/en active Active
- 2018-01-16 CN CN201880006228.8A patent/CN110169019B/zh active Active
- 2018-01-16 WO PCT/CN2018/072910 patent/WO2018133781A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070286196A1 (en) * | 2006-06-08 | 2007-12-13 | Samsung Electronics Co., Ltd. | Stored transmission packet intended for use in new link-adaptation mechanism, and apparatus and method for transmitting and receiving transmission packet using the same |
US20150135255A1 (en) * | 2013-11-11 | 2015-05-14 | Amazon Technologies, Inc. | Client-configurable security options for data streams |
CN104320442A (zh) * | 2014-10-10 | 2015-01-28 | 浙江天正思维信息技术有限公司 | 应用系统表现层集成技术平台及其形成的集成模式及方法 |
CN106162639A (zh) * | 2015-11-25 | 2016-11-23 | 北京邮电大学 | 基于Floodlight的SDN无线网络管理平台及认证方法 |
CN105681191A (zh) * | 2016-02-25 | 2016-06-15 | 武汉烽火网络有限责任公司 | 基于路由器虚拟化的sdn平台及实现方法 |
Non-Patent Citations (1)
Title |
---|
SOHEIL HASSAS YEGANEH,YASHAR GANJALI: ""Kandoo: A Framework for Efficient and Scalable Offloading of Control Applications"", 《PROCESSING OF THE FIRST WORKSHOP ON HOT TOPICS IN SOFTWARE DEFINED NETWORKS》 * |
Also Published As
Publication number | Publication date |
---|---|
EP3560148B1 (en) | 2021-09-22 |
US10805241B2 (en) | 2020-10-13 |
EP3560148A4 (en) | 2019-11-13 |
US20180205672A1 (en) | 2018-07-19 |
WO2018133781A1 (en) | 2018-07-26 |
CN110169019B (zh) | 2021-01-12 |
EP3560148A1 (en) | 2019-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110169019A (zh) | 数据库功能定义的网络交换机和数据库系统 | |
CN110226159A (zh) | 尽力而为数据库功能 | |
CN104954270B (zh) | 在联网系统中使用的方法和装置以及计算机可读介质 | |
CN107169083A (zh) | 公安卡口海量车辆数据存储与检索方法及装置、电子设备 | |
CN106161610A (zh) | 一种分布式存储的方法和系统 | |
Petcu | A class of algorithms for distributed constraint optimization | |
CN107005480A (zh) | 用于sdt与nfv和sdn相互配合的系统和方法 | |
CN102075402A (zh) | 虚拟网络映射处理方法和系统 | |
US10671607B2 (en) | Pipeline dependent tree query optimizer and scheduler | |
CN103138981A (zh) | 一种社交网络分析方法和装置 | |
WO2019090874A1 (zh) | 一种用于货物取送的单车调度方法 | |
CN109413202B (zh) | 区块链交易信息的排序系统及方法 | |
CN108111335A (zh) | 一种调度和链接虚拟网络功能的方法及系统 | |
CN107807983A (zh) | 一种支持大规模动态图数据查询的并行处理框架及设计方法 | |
CN104951442B (zh) | 一种确定结果向量的方法和装置 | |
CN106104503B (zh) | 使用统一api对用于转发的服务器和架构编程以用于细粒度网络优化 | |
CN102546380B (zh) | 修改的基于树的多播路由方案 | |
Ekárt et al. | Genetic programming with transfer learning for urban traffic modelling and prediction | |
CN109661671A (zh) | 使用边界位图对图像分类的改善 | |
CN106384292A (zh) | 社交网络用户关系采集系统及方法 | |
CN106815324A (zh) | 一种基于云计算对象存储快速检索系统 | |
Roig et al. | Formal algebraic specification of an IoT/fog data centre for fat Tree or leaf and spine architectures | |
CN110224847A (zh) | 基于社交网络的社团划分方法、装置、存储介质及设备 | |
Dangi et al. | Feature selection based machine learning models for 5G network slicing approximation | |
CN106202303B (zh) | 一种Chord路由表压缩方法及优化文件查找方法 |
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 |