CN106537347B - 用于分发和处理流的系统和方法 - Google Patents

用于分发和处理流的系统和方法 Download PDF

Info

Publication number
CN106537347B
CN106537347B CN201580040262.3A CN201580040262A CN106537347B CN 106537347 B CN106537347 B CN 106537347B CN 201580040262 A CN201580040262 A CN 201580040262A CN 106537347 B CN106537347 B CN 106537347B
Authority
CN
China
Prior art keywords
record
type
node
signature
fields
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
CN201580040262.3A
Other languages
English (en)
Other versions
CN106537347A (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.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
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 Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN106537347A publication Critical patent/CN106537347A/zh
Application granted granted Critical
Publication of CN106537347B publication Critical patent/CN106537347B/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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • 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/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

在实施例中,一种方法包括:从第一源计算机接收包括一个或多个第一字段的第一记录;响应于确定第一记录是第一类型并且第一节点与第一类型相关联,向第一节点发送第一记录以被处理;从第二源计算机接收包括一个或多个第一字段和一个或多个第二字段的第二记录;响应于确定第二记录是第二类型并且第二节点与第二类型相关联,向第二节点发送第二记录以被处理;响应于确定第二类型是第一类型的第一子类型,将第二记录发送到第一节点以被处理,而不暂停和重新配置第一节点。

Description

用于分发和处理流的系统和方法
技术领域
本公开涉及用于管理包括与分析学相关的网络管理数据库的计算机网络的计算机和计算机实现的技术。本公开更具体地涉及用于处理网络管理数据的连续查询而不暂停和重新配置当前所执行的查询的技术。
背景技术
可以追求本节中描述的方法,但不一定是先前已经构想或追求的方法。因此,除非本文另有指示,否则本部分中描述的方法不是本申请中的权利要求的现有技术,并且不因包括在本部分中而被承认为现有技术。
数据通信网络可以包括一个或多个计算节点。每个节点可以接收和处理根据特定模式的无限的流数据。模式可以在数据流中定义内容和/或内容的格式。每个节点可以根据模式将结果发送到一个或多个下游节点、持久性存储设备和/或一些其他接收设备。
在现代数据驱动系统中,数据流的模式或格式可以随意改变。例如,网络数据流的模式可以包括网络上每个关键任务设备的频繁状态报告,该频繁状态报告包括设备的互联网协议地址和时间戳,并且模式可以改变为包括每个设备上的功耗、CPU使用和可用存储器。
数据流模式的改变可能导致节点停止。然而,某些情况会要求节点保持处理,在这种情况下,则不允许暂停或重新配置该节点以利用模式改变。
附图说明
在附图中:
图1示出了示例实施例中的一个或多个类型的多个记录。
图2示出了在示例实施例中用于处理来自多个源的不同类型和子类型的流输入数据而不暂停一个或多个节点的系统。
图3示出了在一个示例实施例中用于处理多个记录类型的流程。
图4示出了可以在其上实现实施例的计算机系统。
虽然出于示出清楚示例的目的,每个附图示出了特定实施例,但是其他实施例可以省略、添加、重新排序和/或修改附图中所示的任何元件。出于示出清楚示例的目的,可以参考一个或多个其他附图来描述一个或多个附图,但是在其他实施例中不要求使用在一个或多个其他附图中示出的特定布置。
具体实施方式
描述了用于在一个或多个网络上分发和处理独立数据流的技术。在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对本公开的透彻理解。然而,对本领域技术人员显而易见的是,本公开可以在没有这些具体细节的情况下实践。在其他实例中,以框图形式示出了公知的结构和设备,以避免不必要地模糊本公开。
本文根据以下概述描述了实施例:
1.0概览
2.0结构和功能概览
2.1子类型、超类型、子集和超集
2.1.1子类型、超类型、子集和超集
2.1.2子类型到超类型的转换实例
2.2示例系统拓扑
2.2.1路由模块
2.2.2节点
2.2.3源
2.2.4记录存储
3.0流程概览
3.1接收连续查询
3.2基于连续查询生成、实例化和/或初始化节点
3.3确定子类型
3.4处理记录
3.5转换记录而不暂停节点
3.6处理被转换的记录而不暂停节点
3.7处理新的、后定义的类型的记录,而不暂停节点
4.0实现机制-硬件概览
5.0扩展和替代
1.0概览
在实施例中,一种计算机系统包括:第一节点计算机,其包括被配置为基于第一操作处理一个或多个第一类型记录的第一处理器和第一存储器;第二节点计算机,其包括被配置为基于第二操作处理一个或多个第二类型记录的第二处理器和第二存储器;路由计算机,其包括被配置为执行以下操作的处理器、存储器和路由模块:从第一源计算机接收包括一个或多个第一字段的第一记录;响应于确定第一记录是第一类型并且第一节点计算机与第一类型相关联,向第一节点计算机发送第一记录以被处理;从第二源计算机接收包括一个或多个第一字段和一个或多个第二字段的第二记录;响应于确定第二记录是第二类型并且第二节点计算机与第二类型相关联,向第二节点计算机发送第二记录以被处理;响应于确定第二类型是第一类型的第一子类型,将第二记录发送到第一节点计算机以被处理,而不暂停和重新配置第一节点计算机。
在实施例中,一种方法包括:从第一源计算机接收包括一个或多个第一字段的第一记录;响应于确定第一记录是第一类型并且第一节点与第一类型相关联,向第一节点发送第一记录以被处理;从第二源计算机接收包括一个或多个第一字段和一个或多个第二字段的第二记录;响应于确定第二记录是第二类型并且第二节点计算机与第二类型相关联,向第二节点发送第二记录以被处理;响应于确定第二类型是第一类型的第一子类型,将第二记录发送到第一节点以被处理,而不暂停和重新配置第一节点计算机。
在实施例中,该方法包括:响应于确定第一记录是第一类型并且第一节点与第一类型相关联,用第一记录向第一节点发送第一签名;响应于确定第二记录是第二类型并且第二节点与第二类型相关联,用第二记录向第一节点发送第二签名;响应于确定第二类型是第一类型的第一子类型,用第二记录向第一节点发送第一签名。
在实施例中,该方法包括:根据一个或多个第一索引来组织第一记录中的一个或多个第一字段;根据一个或多个第一索引来组织第二记录中的一个或多个第一字段;根据一个或多个第二索引来组织第二记录中的一个或多个第二字段,其中在一个或多个第一索引中的每个索引引用在由一个或多个第二索引中的每个索引引用的存储器地址之前的存储器地址。
在实施例中,该方法包括:从第三源计算机接收包括一个或多个第一字段、一个或多个第二字段以及一个或多个第三字段的第三记录;响应于确定第三记录是第三类型并且第三节点与第三类型相关联,向第三节点发送第三记录以被处理;响应于确定第三类型是第二类型的第二子类型,向第二节点发送第三记录以被处理,而不暂停和重新配置第二节点;响应于确定第二类型是第一类型的第一子类型,将第三记录发送到第一节点以被处理,而不暂停和重新配置第一节点。
2.0结构和功能概览
数据通信网络可以包括一个或多个计算节点。每个节点可以接收和处理根据特定模式的无限流数据。模式可以在数据流中定义内容和/或内容的格式。每个节点可以根据模式将结果发送到一个或多个下游节点、持久性存储设备和/或一些其他接收设备。
暂停节点可能导致许多问题。暂停可以包括停止节点和/或使节点停止处理一个或多个输入数据流。例如,节点可以处理时间关键型数据(例如,联网、电力或火箭遥测数据)。如果节点被暂停,则下游节点或设备可能无法正确地执行其功能,或者可能因为缺少被暂停的节点接收的数据中导出误导数据。例如,下游节点或设备可以确定网络已中断或火箭已失去联系,然而,未由被暂停的节点处理的数据可能指示网络与一个或多个其他网络具有良好的连接,或者火箭正在任务参数内执行。
暂停节点可能导致专用于该节点的大量储备资源或数据丢失。例如,节点可以处理连续递送大量数据的数据流。如果节点被暂停,则大量的数据可能开始积累,其可能需要被存储在大型持久性数据存储设备中。即使未处理的数据存储在大型持久性数据存储设备中,数据仍然可能丢失。例如,如果节点脱机时间过长,则数据存储设备的容量会被填满。因此,可能不对新数据进行存储,或者可能删除较旧的未处理数据来为新接收的数据腾出空间。此外,如果接收到的数据的带宽大于持久性存储设备的带宽,则在易失性缓冲中等待被写入持久性存储设备时,一些数据可能丢失或重写。
暂停节点可能导致一个或多个数据源失效。例如,如果因为接收节点被暂停,数据源接收到异常错误,则该数据源可能退出。因此,即使被暂停的节点恢复处理,数据源可能已经终止。
在现代数据驱动系统中,数据流的模式或格式可以随意改变。例如,网络数据流的模式可以包括网络上每个关键任务设备的频繁状态报告,该频繁状态报告包括设备的互联网协议地址和时间戳,并且模式可以改变为包括每个设备上的功耗、CPU使用和可用存储器。
响应于模式的改变,可以暂停、重新配置和恢复节点。继续前面的示例,如果管理该节点的数据使用者希望处理和/或使用数据流中的新数据(每个设备上的功耗、CPU使用和可用存储器),则管理员可以暂停节点、重新配置节点以使用新数据,然后恢复节点。在该节点离线时发送的数据可能会丢失,或者有可能被存储在持久性存储设备中(在该节点重新上线时)。
节点恢复处理后,节点可能不会立即开始处理最新的数据。继续前面的示例,当被重新配置的节点恢复时,节点可以首先处理存储在持久性存储设备中的数据,同时新接收的数据可以继续存储在持久性存储设备中或丢失。例如,如果持久性存储设备的带宽不足以支持该节点请求的读取和来自数据流的写入,则数据流中的数据可能会丢失,而节点处理来自持久性存储设备的数据。
如上所述,数据流模式的改变可能导致节点被暂停,继而可能导致许多问题,并且可能容易出错。此外,一些情形会要求节点保持处理,在这种情况下,则不允许暂停或重新配置节点以利用模式改变。因此,优雅和高效地支持模式改变而不停机是非常有价值的。
本文讨论一个或多个系统和方法以处理符合改变模式的输入数据流而不暂停和/或重新配置运行的节点。暂停节点可以指停止节点处理和/或执行基于第一类型记录的一个或多个连续查询。连续查询可以包括一个或多个连续的查询、子查询、在连续查询中定义的操作、和/或在连续查询中定义的子操作。重新配置节点可以指暂停节点和/或使得节点来执行和/或处理基于第二不同类型的记录的一个或多个新的连续查询,其中,第二类型记录是第一类型记录的子类型。附加地或可选地,重新配置节点可以指使得节点执行和/或处理一个或多个新的连续查询,其中新的连续查询执行一个或多个第一连续查询的功能的超集。
数据流可以包括随时间发送的一个或多个记录。可以根据模式来组织数据流中的记录。根据第一模式组织的记录可以被称为“第一类型”或“第一类型记录”。根据第二模式组织的记录可以被称为“第二类型”或“第二类型记录”。
本文讨论了针对第一节点的一种或多种系统和方法,被配置为处理第一类型记录,并且还处理第二类型记录,而不暂停和/或重新配置第一节点。例如,第二类型记录可以被转换为第一类型记录并由第一节点处理,而不暂停和/或重新配置第一节点。因此,本文讨论一个或多个系统和方法以将第二类型记录转换为第一类型记录,并且如同该第二记录原本作为第一类型记录被接收一样对该第二类型记录进行处理。
2.1记录和类型
记录可以包括一个或多个字段。记录还可以包括明确的签名。“空”记录不包括明确的签名。空记录可以但不必包括隐含签名。签名可以包括将该记录标识为特定类型记录的一个或多个值和/或数据结构。本文所讨论的一个或多个系统和/或方法可以将签名附加到记录后面和/或前面,使得该记录不再是空记录。
图1示出了示例实施例中的一个或多个类型的多个记录。在图1中,记录110是示例第一类型记录,并且包括签名112和字段114A。签名112可以将记录110标识为第一类型记录。字段114A可以包括一个或多个值、键值对、值和/或键值对的列表、分层数据结构、指针和/或任何其他数据结构。
记录120是示例第二类型记录,并且包括签名122、字段114B和字段124A。签名122可以将记录120标识为第二类型记录。记录120中的字段114B具有与记录110中的字段114A相同的格式和/或数据结构,但是值可以不同。字段124A可以包括不包括在字段114B中的一个或多个不同的和/或附加的值、键值对、值和/或键值对的列表、分层数据结构、指针和/或任何其他数据结构。
在图1所示的示例记录中,每个记录包括“明确的”签名,其中,该签名包括值和/或数据结构。例如,记录110包括签名112,并且记录120包括签名122。然而,在实施例中,签名可以由记录中的一个或多个字段的一个或多个名称、值和/或数据结构隐含。例如,包括名为“地址”的字段的任何记录可以被确定为第一类型的实例,并且包括名为“距离”的字段的任何记录可以被确定为第二类型的实例。包括字段名称“地址”和字段名称“距离”两者的记录可以被确定为第一类型和第二类型的实例。
2.1.1子类型、超类型、子集和超集
如果第二类型记录中的字段包括第一类型记录中的所需字段的超集,则第二类型记录在本文中可以被称为第一类型记录的“子类型”。第一类型在本文中可以被称为第二类型的“超类型”和/或“子集”。出于示出清楚示例的目的,假设字段114A中的一个或多个字段是第一类型记录所需的,并且字段114B和字段124A中的一个或多个字段是第二类型记录的任何实例所需的。在当前示例中,作为第二类型的实例的记录还包括作为第一类型的实例的必需字段。因此,第二类型是第一类型的“子类型”或“超集”;并且,第一类型是第二类型的“超类型”或“子集”。
如果字段由处理第一类型记录的一个或多个节点使用,则该字段可以是必需字段。附加地或可选地,如果字段被指定为模式中所需的,则该字段可以是必需字段。例如,定义第一类型记录的第一模式可以包括必需字段的名称的列表。附加地或可选地,第一模式可以将第一数据结构中的一个或多个字段标识为必需的,并且将第二数据结构中的一个或多个字段标识为可选的。
记录可以具有不止一个子类型和/或超类型。例如,记录130是第三类型记录的示例。记录130包括签名132、字段114C、字段124B和字段134。签名132可以将记录130标识为第三类型记录和/或可以由一个或多个第三节点处理的记录。记录130中的字段114C具有与记录110中的字段114A相同的格式和/或数据结构,但是值可以不同。记录130中的字段124B具有与记录120中的字段124A相同的格式和/或数据结构,但是值可以不同。在图1所示的实施例中,第三类型记录是第一类型记录的子类型,因为第三类型记录具有第一类型中的一个或多个必需字段(记录110中的字段114A和记录130中的字段114C)。第三类型的记录是第二类型的记录的子类型,因为第三类型的记录具有第二类型中的一个或多个必需字段(记录120中的字段124A和记录130中的字段124B)。
图1中每个记录的签名和字段被示出为在存储器中连续。然而,每个记录的签名和/或字段不必是连续的。例如,记录120中的签名122、字段114B和字段124A可以但不必在存储器中连续存储。此外,字段114A和/或字段114B中的每个字段可以但不必在存储器中连续存储。
2.1.2子类型转换为超类型的实例
作为另一类型的子类型的记录可以通过改变记录中的签名、字段和/或数据结构而被转换为超类型。例如,记录121是记录120的副本,其中记录121是第二类型记录,并被转换为超类型:第一类型。记录121包括签名112、字段114B和字段124A。正如在记录110中一样,记录121中的签名112可以包括一个或多个值和/或数据结构,其将记录121标识为第一类型和/或要由与签名112和/或第一类型相关联的一个或多个第一节点处理的记录。然而,一个或多个第一节点可以忽略记录121中的字段124A。
不在超类型中的一个或多个字段可以存储在较高的存储器地址空间中。例如,图1中,内存地址从左到右增长。因此,在记录120中,引用字段114B的第一索引小于引用字段124A的第二索引。处理第一类型记录的第一节点可以使用相同的索引来引用记录110中的字段114A和记录121中的字段114B,因为字段124A被分配了较高的存储器地址。因此,第一节点可以如同记录121原本是第一类型记录一样处理记录121。
子类型和超类型之间的共同字段可以以相同的顺序存储。例如,记录130中的字段114C和字段124B与记录120中的字段114B和字段124A具有相同的顺序。处理第二类型记录的节点可以使用与记录130中的字段114C和字段124B相同的索引来引用记录120中的字段114B和字段124A。此外,处理第一类型记录的节点可以使用相同的索引来引用记录110中的字段114A、记录120中的字段114B、记录121中的字段114B和记录130中的字段114C。
2.2示例多节点系统拓扑
图2示出了在示例实施例中用于处理来自多个源的不同类型和子类型的流输入数据而不暂停一个或多个节点的系统。如图2所示,系统200包括跨多个互联网络分布的节点计算机集群210、路由计算机220、记录存储设备224、源计算机240、源计算机241、源计算机250和客户端计算机290。节点集群210包括跨一个或多个互联网络分布并可以执行本文讨论的一种或多种方法的源节点计算机242、查询节点计算机244、源节点计算机252、查询节点计算机254和节点计算机212。
计算机可以是一个或多个软件模块、计算机、计算机组件、计算设备、数据库、数据存储设备、路由器、交换机和/或网络互联基础设施的其他元件。除非明确说明为“单个”计算机,否则计算机可以是一个或多个计算机。
可以在单个计算机上执行不止一个节点。例如,节点计算机212包括查询节点246和查询节点256,其中,查询节点246和查询节点256基于操作系统216在节点计算机212上被执行,并且至少部分地驻留在存储器设备214中。
虽然以上列出的一个或多个组件可以被示为在彼此独立、远离的计算机上运行,但以上列出的组件中的一个或多个可以是同一计算机的一部分和/或在同一计算机上执行。例如,路由模块222、记录存储设备224、源计算机250、源节点计算机252、查询节点计算机254和/或其中包括的任何设备和/或模块可以在同一单个计算机、局域网、和/或广域网上执行。
2.2.1路由模块
路由计算机220包括路由模块222。路由模块222可以从一个或多个客户端计算机接收一个或多个请求和/或查询,生成一个或多个节点,从一个或多个源、节点、模块和/或计算机接收一个或多个记录,和/或将一个或多个记录发送到一个或多个其他源、节点、模块和/或计算机。附加地或可选地,路由模块222可以将记录存储在记录存储设备224中。附加地或可选地,路由模块222可将记录和/或结果发送到客户端计算机290和/或任何其它模块、节点和/或计算机。
模块可以是在计算机上执行的软件,和/或包括逻辑和/或耦接到计算机的硬件。模块可以包括指令和/或逻辑,其在被执行时使得本文所讨论的方法中的一个或多个被执行。
路由模块可以接收和/或执行一个或多个连续查询。连续查询是针对数据的查询,包括针对数据库的查询,其定义了对被标识为一个或多个特定类型的流输入数据执行的一个或多个功能。连续查询可以由查询语言(例如,结构化查询语言或连续查询语言)定义。连续查询可以作为数据库查询或数据定义语言命令被发出,或者作为数据库查询或数据定义语言命令的一部分被发出。由连续查询定义的一个或多个功能可以是数据库特定功能、联网功能、分析功能、多媒体功能和/或任何其他流数据功能。例如,连续查询可以指定在网络管理应用中汇总、聚合或过滤网络分析数据。连续查询可以定义一个或多个数据流源、模式、类型、子类型和/或超类型。连续查询可以定义分配给一个或多个节点的一个或多个操作。连续查询可以指示一个或多个节点等待数据到达、处理数据、然后输出导出的、处理后的数据。本文讨论的特征和过程可以用于各种目的,例如流分析数据、调试和诊断、从故障恢复以及存储和处理先前接收的流数据。
路由模块222可以基于一个或多个连续查询生成一种或多种类型的节点,以执行一种或多种类型的记录。如果节点处理第一类型记录,则第一节点可以是“第一类型节点”。类似地,如果节点处理第二类型记录,则第二节点可以是“第二类型节点”。响应于接收到定义了从源计算机240接收的第一类型记录的连续查询,路由模块222可以在节点计算机212上生成、实例化和/或初始化源节点计算机242、查询节点计算机244和查询节点246。
路由模块222可以编配以哪种顺序将哪些记录发送到哪些节点。例如,路由模块222可以按照以下顺序将在第一连续查询中定义的第一类型记录与以下节点相关联:源节点计算机242、查询节点计算机244和查询节点246。当第一类型记录被接收,路由模块222可以将该记录路由到源节点计算机242。至少部分地基于路由模块222,源节点计算机242可以将记录和/或从记录导出的数据发送到查询节点计算机244。至少部分地基于路由模块222,查询节点计算机244可以将记录和/或从记录导出的数据发送到查询节点246。至少部分地基于路由模块222,查询节点246可以将记录和/或从记录导出的数据发送到客户端计算机290、记录存储设备224和/或由连续查询定义的任何其它计算机和/或模块。因此,路由模块222可以包括用于存储一个或多个连续查询、记录类型、签名和/或节点之间的关联的一个或多个表、数据库和/或数据结构。
路由模块222可以设法将记录从子类型转换到超类型,并且利用与超类型相关联的节点来处理“向上转换”的记录。例如,路由模块222可以接收定义了第二类型并且指示第二类型是第一类型的子类型的连续查询。作为响应,路由模块222可以按照以下顺序生成、实例化和/或初始化以下节点来处理第二类型记录:源节点计算机252、查询节点计算机254和查询节点256。响应于接收到第二类型记录,路由模块222可以将第二类型记录转换为第一类型记录,和/或按照以下顺序将被向上转换的记录发送到与第一类型相关联的以下节点:源节点计算机242、查询节点计算机244和查询节点246。附加地或可选地,基于路由模块222,节点可以向上转换记录,和/或按特定顺序将被向上转换的记录发送到一个或多个节点。
通常,当接收到具有更新模式的记录时,先前处理记录的每个节点可以被暂停、重新配置以处理新数据,并且然后被恢复。如本文所讨论的,暂停一个或多个节点可能导致许多问题。相比之下,路由模块222是非常规的,其实例化新节点来处理子类型或记录中的新数据,将子类型记录转换成超类型记录,并且将被向上转换的记录路由到已经运行的节点来处理子类型记录和超类型记录之间的共同数据,而不暂停已经运行的节点。因此,出于本文讨论的这些和许多其它原因,本文所讨论的非常规方法和/或系统(例如,涉及路由模块222的方法和系统)改进了(一个或多个)计算机和/或(一个或多个)计算机系统的功能。
2.2.2节点
节点可以是模块、计算机、计算机组件、计算设备、数据库、数据存储设备、路由器、交换机和/或网络互联基础设施的其他元件。节点可以由电路、一个或多个软件指令、查询和/或连续查询定义。节点可以包括逻辑和/或指令,其在被执行时执行本文讨论的一个或多个方法。
每个节点可以被配置为执行一个或多个不同于另一个节点的任务、处理和/或操作。例如,源节点(例如,源节点计算机242)可以接收、格式化、入队、出队和/或发送记录到一个或多个节点、路由模块和/或存储设备。源节点计算机242可以专用于处理第一类型记录。源节点计算机252可以执行与源节点计算机242相似的功能,但是可以专用于处理第二类型记录。
查询节点计算机244可以被配置为消除不满足一个或多个标准的一个或多个第一类型记录,并且将满足一个或多个标准的记录发送到查询节点246。查询节点246可以对从查询节点计算机244接收的第一类型记录执行一个或多个操作,例如,加和、排序和/或一个或多个其他操作。
查询节点计算机254可以对第二类型记录和/或从第二类型记录导出的数据执行一个或多个操作,该一个或多个操作不同于查询节点计算机244处理同一记录的向上转换版本和/或从同一记录的向上转换版本导出的数据的操作。查询节点256可以对第二类型记录和/或从第二类型记录导出的数据执行一个或多个操作,该一个或多个操作不同于查询节点246处理同一记录的向上转换版本和/或从同一记录的向上转换版本导出的数据的操作。
从一个或多个其他节点接收一个或多个记录的节点可以被称为“查询节点”。例如,源节点计算机242可以是源节点,并且查询节点计算机244和查询节点246可以各自是查询节点。然而,在实施例中,源节点可以执行查询节点可以执行的一个或多个操作,和/或反之亦然。例如,源节点计算机242可以从源节点计算机252接收记录。还例如,源节点计算机242可以接收和处理第一类型记录,并且不必将记录和/或从记录导出的数据发送到下游节点。
节点可以将结果返回给路由模块222、客户端计算机290和/或另一模块和/或计算机。例如,查询节点246可以接收指示一个或多个计算机的CPU使用的一个或多个记录。查询节点246可以确定每个计算机的CPU使用是否大于特定阈值。如果是,则查询节点246可以向路由模块222和/或客户端计算机290发送指示哪些计算机的CPU使用大于特定阈值的消息。
节点可以添加、移除和/或改变记录中的数据。例如,查询节点246可以将数据从后面和/或前面附加到每个记录,该数据指示包括该数据的记录是否满足一个或多个标准。查询节点246可以将每个被修改的记录发送到路由模块222、记录存储设备224、客户端计算机290和/或另一个节点和/或计算机。又例如,源节点计算机242可以从源节点计算机252接收记录和/或记录的副本。源节点计算机252可以已经将与第二类型相关联的签名附加到记录前面。源节点计算机242可以基于路由模块222确定第二类型作为子类型与第一类型相关联,确定该签名与第二类型相关联,和/或将该签名替换为与第一类型相关联的签名。
节点可以将记录、被修改的记录和/或从记录导出的数据发送到另一节点和/或计算机。例如,源节点计算机242可以将记录发送到查询节点计算机244和/或路由模块222用于进一步处理。又例如,路由模块222可以从源节点计算机252接收记录。路由模块222可以修改记录,和/或将记录发送到源节点计算机242。
在图2中,节点可以直接将记录发送和/或流式传输到另一节点和/或计算机。例如,源节点计算机242可以是硬连线的和/或硬编码的,以将处理完的记录发送到一个或多个节点(例如,查询节点计算机244)。又例如,源节点计算机242可以向路由模块222查询节点的地址和/或标识符,其中,该节点是源节点计算机242应该至少部分地基于处理完的记录中的签名和/或本文讨论的任何其他要素来将处理完的记录发送到的节点。在此示例中,路由模块222可以包括将处理完的记录的签名与查询节点计算机244的地址相关联的关系数据库。因此,路由模块22可以将查询节点计算机244的地址返回到源节点242,并且源节点242可以将处理完的记录发送到查询节点计算机244。附加地或可选地,节点可以将数据发送和/或流式传输到路由模块222和/或记录存储设备224。路由模块222和/或记录存储设备224可以将记录推送到一个或多个节点。附加地或可选地,节点可以轮询来自路由模块222和/或记录存储设备224的数据。例如,查询节点计算机244可以向路由模块222和/或记录存储设备224查询源节点计算机242处理完的和/或存储在记录存储设备224中的记录。
2.2.3源
源计算机可以是将一个或多个特定类型的记录流式传输到一个或多个源节点的一个或多个计算机。例如,源计算机240可以是第一网络上的第一代路由器,源计算机241可以是第二网络上的第一代路由器,并且源计算机250可以是第三网络上的第二代路由器。源计算机240和源计算机241可以各自向源节点计算机242发送多个第一类型记录。源计算机250可以向源节点计算机252发送多个第二类型记录。
在图1中,每个源计算机将记录直接流式传输到源节点。附加地或可选地,源计算机可以将数据流式传输到路由模块222和/或记录存储设备224。路由模块222和/或记录存储设备224可以将记录推送到每个源节点。附加地或可选地,每个源节点可以轮询来自路由模块222和/或记录存储设备224的数据。
2.2.4记录存储设备
记录存储设备224可以接收、存储和/或发送一个或多个记录。例如,源节点计算机242可以从源计算机240接收多个记录。源节点计算机242可以请求和/或处理记录。源节点计算机242可以将记录和/或从记录导出的数据发送到记录存储设备224以进行存储。当查询节点计算机244准备好处理记录时,查询节点计算机244可以随时间从记录存储设备224请求和/或接收记录。附加地或可选地,路由模块222可以请求记录存储设备224中的一个或多个记录以及将一个或多个记录发送到节点和/或计算机。附加地或可选地,路由模块222可以存储从一个或多个节点和/或计算机发送到路由模块222的一个或多个记录和/或数据。
3.0流程概览
本文所讨论的系统、方法和/或数据结构可以用于接收和处理具有动态和/或演进模式的记录,而不暂停和/或重新配置已经在执行的节点。图3示出了在一个示例实施例中用于处理多个记录类型的流程。出于示出清楚示例的目的,假设网络管理员正在使用客户端计算机290来分析和监控三个网络之间的网络连接。第一网络通过作为第一代路由器的源计算机240与一个或多个网络通信地耦接;第二网络通过也作为第一代路由器的源计算机241与一个或多个网络通信地耦接;并且第三网络通过作为第二代路由器的源计算机250与一个或多个网络通信地耦接。从第一代路由器发送的记录是第一类型记录,从第二代路由器发送的记录是第二类型记录,并且第二类型是第一类型的子类型。因此,每个第二类型记录可以包括“BGP下一跳”字段,而第一类型记录不需要。
3.1接收连续查询
在步骤305中,路由模块将第一签名与第一类型相关联,将第二签名与第二类型相关联。例如,网络管理员可以通过客户端计算机290向路由模块222发送两个连续查询。第一连续查询可以将第一类型记录的第一签名定义为值签名112,并且第二连续查询可以将第二类型记录的第二签名定义为值签名122。因此,路由模块222可以更新和/或存储路由模块222、路由计算机220、数据库和/或与路由模块222耦接的任何其他计算机中的数据,其中,路由模块222将签名112与第一类型记录相关联,将签名122与第二类型记录相关联。
3.2基于连续查询生成、实例化和/或初始化节点
在步骤310中,路由模块将第一类型与第一节点相关联,并且将第二类型与第二节点相关联。例如,第一连续查询可以定义要对每个第一类型记录执行的一个或多个操作。路由模块222可以分析一个或多个操作并生成、实例化和/或初始化源节点计算机242(以接收一个或多个第一类型记录)、查询节点计算机244(以执行在第一连续查询中定义的第一操作)以及查询节点246(以执行在第一连续查询中定义的子操作)。类似地,第二连续查询可以定义要对每个第二类型记录执行的一个或多个操作。路由模块222可以分析一个或多个操作并生成、实例化和/或初始化源节点计算机252(以接收一个或多个第二类型记录)、查询节点计算机254(以执行在第二连续查询中定义的第一操作)以及查询节点256(以执行在第二连续查询中定义的子操作)。
3.3确定子类型
在步骤315中,路由模块将第二类型记录关联为第一类型记录的子类型。例如,第二连续查询可以包括明确指示第二类型记录是第一类型的子类型的数据。作为响应,路由模块222可以将第二签名(签名122)与第一签名(签名112)相关联,其指示具有第二签名的记录是第一类型的子类型的实例。附加地或可选地,路由模块222可以分析预期要由针对第二连续查询被初始化的节点读取和/或写入的(一个或多个)字段,并且可以确定那些字段是预期要由针对第一连续查询被初始化的节点读取和/或写入的字段的超集。因此,路由模块222可以更新和/或存储路由模块222、路由计算机220、数据库和/或与路由模块222耦接的任何其他计算机中的数据,其指示第二类型是第一类型的子类型。
3.4处理记录
在步骤320中,第一节点和第二节点分别接收第一记录和第二记录。例如,源计算机240可以向源节点计算机242发送第一记录,其可以是空记录和/或第一类型记录。源计算机250可以向源节点计算机252发送第二记录,其可以是空记录和/或第二类型记录。
附加地或可选地,源计算机240和源计算机250可以将第一记录和第二记录发送到路由模块222。路由模块222可以将第一记录发送到源节点计算机242,将第二记录发送到源节点计算机252。
附加地或可选地,路由模块222可将记录存储在记录存储设备224中。源节点计算机242可以从路由模块222请求与第一类型相关联的记录。作为响应,路由模块222可以将第一记录发送到源节点计算机242。类似地,源节点计算机252可以从路由模块222请求与第二类型相关联的记录。作为响应,路由模块222可以将第二记录发送到源节点计算机252。源节点计算机242和源节点计算机252可以基于以下各项来轮询记录:一个或多个连续查询、已完成对一个或多个先前接收的记录的处理、已经过去的时间量、可用的中央处理单元周期、可用存储器和/或本文所讨论的和/或与执行源节点计算机242、源节点计算机252、路由模块222和/或记录存储设备224的一个或多个计算机相关的任何其他因素。
在步骤325中,第一源节点确定第一记录是第一类型,第二源节点确定第二记录是第二类型。例如,源节点计算机242可以基于第一记录的源、格式、模式和/或任何其他明确和/或隐含的属性来确定第一记录是第一类型。源节点计算机252可以基于第二记录的源、格式、模式和/或任何其他明确和/或隐含属性来确定第二记录是第二类型。明确属性可以是包括在记录中的任何数据和/或数据结构,例如一个或多个字段名称。隐含属性可以是从记录中推断的任何数据,例如,从其接收记录的源计算机的地址、从其发送记录的源计算机的构造和/或型号、和/或接收到记录的时间。
附加地或可选地,路由模块222可以通过使用本文所讨论的因素中的一个或多个来确定第一记录是第一类型和/或第二记录是第二类型。在实施例中,路由模块222可以在接收到记录时确定每个记录的类型。
在步骤330中,第一源节点将第一签名与第一记录相关联,并将第二签名与第二记录相关联。出于示出清楚的示例的目的,假设第一记录是记录110,第二记录是记录120;然而,记录110不必包括签名112,并且记录120不必包括签名122。在接收记录110之后,源节点计算机242可以将第一签名(签名112)从前面附加到记录110,使得签名112成为记录中的第一个数据。在接收记录120之后,源节点计算机252可以将第二签名(签名122)从前面附加到记录120,使得签名122成为记录120中的第一个数据。
附加地或可选地,路由模块222可以通过将第一签名从前面附加到第一记录并将第二签名从前面附加到第二记录来将第一签名与第一记录相关联,将第二签名与第二记录相关联。路由模块222将每个记录存储在记录存储设备224中。由路由模块222存储的每个记录可以包括明确签名。
在步骤335中,第一源节点将第一记录发送到第一查询节点,第二源节点将第二记录发送到第二查询节点。例如,源节点计算机242可以将记录110发送到查询节点计算机244,并且源节点计算机252可以将记录120发送到查询节点计算机254。查询节点计算机244可以处理记录110,并且查询节点计算机254可以处理记录120。
3.5转换记录而不暂停节点
在步骤340中,源节点可以确定它们各自接收到的(一个或多个)记录是否属于另一类型的子类型。如果是,则控制可以转到步骤345。否则,控制可以转到步骤390。例如,源节点计算机242可以基于下述内容中的一个或多个来确定记录110不是子类型的实例:签名112不与作为子类型的另一签名相关联;记录110不是另一类型的记录的超集;和/或本文所讨论的任何其它(一个或多个)因素。因此,源节点计算机242可以进行到步骤390。
附加地或可选地,源节点计算机242可以将记录110发送到路由模块222。路由模块222可以基于本文所讨论的方法中的一个或多个来确定记录110是否是另一类型的记录的子类型的实例。如果是,则路由模块222可以转到步骤345。否则,路由模块222可以转到步骤390。
作为步骤340的另一示例,源节点计算机252可以基于本文所讨论的因素中的一个或多个来确定记录120是超类型(第一类型)的实例,并进行到步骤345。附加地或可选地,源节点计算机252可以将记录120发送到路由模块222。路由模块222可基于本文所讨论的因素中的一个或多个来确定记录120是第一类型的实例,并进行到步骤345。
在步骤345中,第一源节点和/或路由模块可以将记录与超类型的签名相关联。例如,源节点计算机242可以从源节点计算机252和/或路由模块222接收第二记录的副本(记录121)。记录121可以,但不必须是空记录。因此,记录121可以,但不必须包括签名122。源节点计算机242和/或路由模块222可以将签名112附加到记录121前面,和/或从记录121移除签名122,如图1所示。
3.6处理被转换的记录而不暂停节点
在步骤350中,第一源节点可以将具有超类型的签名的记录发送到与超类型的签名相关联的节点。例如,源节点计算机242和/或路由模块222可以将记录121发送到与第一类型相关联的第一查询节点:查询节点计算机244。然后控制可以返回到步骤340。例如,如果记录120和/或记录121是第三类型的子类型,则可以重复该过程。否则,控制可以进行到步骤390。在当前示例中,记录121不是另一类型的子类型,因此源节点计算机242和/或路由模块222可以进行到步骤390。
在步骤390中,控制可以终止、等待新记录、和/或轮询新记录。例如,源节点计算机242和/或路由模块222可以终止、等待一个或多个新记录、和/或查询和/或轮询一个或多个新记录。
3.7处理新的、后定义的类型的记录,而不暂停节点
在前述示例中,作为第二类型并从第二代路由器(源计算机250)接收的记录既由被配置为处理第二类型记录的多个节点(节点252-256)处理,还由被配置为处理第一类型记录的多个节点(节点242-246)处理。因此,源节点计算机252、查询节点计算机254和查询节点256可以处理第二类型记录中的附加数据(“BGP下一跳”字段),源节点计算机242、查询节点计算机244和查询节点246仍然可以如同处理第一类型记录一样处理每个第二类型记录,而不被暂停或重新配置。
在上述示例中,在接收到任何类型的任何记录之前接收到第一和第二连续查询。然而,可以在第一连续查询和/或第一类型记录被接收和/或开始由任何节点处理之后接收第二连续查询和/或第二类型记录。类似地,可以在节点242-246开始处理第一类型记录之后生成、实例化和/或初始化节点252-256。
如果第三代路由器开始将第三类型记录流式传输到图2所示的系统中,并且第三类型记录是第二类型记录的子类型,则路由模块222可以生成、实例化和/或初始化一个或多个新节点以处理包括在第三类型记录中的附加数据。路由模块222还可以通过使用上述方法中的一个或多个来使得每个第三类型记录被转换为第二类型记录,并由节点252-256处理,而不暂停和/或重新配置节点252-256。附加地或可选地,路由模块222还可以通过使用上述方法中的一个或多个来使得每个第三类型记录被转换为第一类型记录,并由节点242-246处理,而不暂停和/或重新配置节点242-246。
通过使用以上讨论的方法中的一个或多个,如果第一节点根据第一连续查询处理数据流中的第一类型记录,并且数据流中的记录的模式被更新为包括新字段,则路由模块可以将数据流中的记录(现在是第二类型,并且是第一类型的子类型)发送到第二(新)节点。第二节点可以根据第二(新)连续查询开始处理每个第二类型记录中的新字段中的数据。路由模块还可以将每个记录向上转换为第一类型记录,并将每个被向上转换的记录发送到仍执行第一连续查询的第一节点。因此,第一节点可以继续处理第一类型记录和新的第二类型记录,而不被暂停和/或重新配置。此外,每个第二类型记录可以由第一节点和第二节点同时处理。
4.0实现机制-硬件概览
根据一个实施例,本文描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行该技术,或者可以包括被永久编程以执行该技术的数字电子设备(例如,一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)),或者可以包括被编程为根据固件、存储器、其他存储设备或组合中的程序指令来执行该技术的一个或多个通用硬件处理器。这样的专用计算设备还可以将定制的硬连线逻辑、ASIC或FPGA与定制的程序相组合以实现该技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、联网设备或结合了硬连线和/或程序逻辑以实现该技术的任何其他设备。
例如,图4是示出可以在其上实现本公开的实施例的计算机系统400的框图。计算机系统400包括用于传递信息的总线402或其他通信机制,以及用于处理信息并与总线402耦接的硬件处理器404。例如,硬件处理器404可以是通用微处理器。
计算机系统400还包括耦接到总线402的主存储器406(例如,随机存取存储器(RAM)或其他动态存储设备),用于存储要由处理器404执行的信息和指令。主存储器406也可以用于在执行要由处理器404执行的指令期间存储临时变量或其他中间信息。这种指令当被存储在处理器404可访问的非暂态存储介质中时,使计算机系统400呈现为被定制成执行指令中指定操作的专用机器。
计算机系统400还包括耦接到总线402的只读存储器(ROM)408或其他静态存储设备,用于存储针对处理器404的静态信息和指令。存储设备410(例如,磁盘或光盘)被提供并耦接到总线402,用于存储信息和指令。
计算机系统400可以经由总线402耦接到显示器412(例如,阴极射线管(CRT)),用于向计算机用户显示信息。包括字母数字键和其他键并耦接到总线402的输入设备414,用于向处理器404传递信息和命令选择。另一种类型的用户输入设备是光标控制416(例如,鼠标,轨迹球或光标方向键),用于向处理器404传递方向信息和命令选择传递并且用于控制显示器412上的光标移动。该输入设备通常在两个轴(即,第一轴(例如x)和第二轴(例如y))中具有两个自由度,其允许设备指定平面中的位置。
计算机系统400可以通过使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现本文描述的技术,其中,定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑与计算机系统结合使得计算机系统400成为,或将计算机系统400编程为专用机器。根据一个实施例,响应于处理器404执行包括在主存储器406中的一个或多个指令的一个或多个序列,计算机系统400执行本文中的技术。这种指令可以从另一存储介质(例如,存储设备410)读取到主存储器406中。包括主存储器406中的指令序列的执行使得处理器404执行本文描述的流程步骤。在替代实施例中,硬连线电路可以代替软件指令或与软件指令相组合使用。
本文所使用的术语“存储介质”是指对使得机器以具体方式操作的数据和/或指令进行存储的任何非暂态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘(例如,存储设备410)。易失性介质包括动态存储器(例如,主存储器406)。存储介质的常见形式包括例如软盘、可折叠磁盘、硬盘、固态驱动器、磁带或任何其它磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、具有孔图案的任何物理介质、RAM、PROM、以及EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒。
存储介质不同于传输介质,但可以与传输介质结合使用。传输介质参与在存储介质之间传输信息。例如,传输介质包括同轴电缆、铜线和光纤,包括组成总线402的导线。传输介质还可以采用声波或光波的形式,例如,在无线电波和红外数据通信期间生成的这些声波或光波。
各种形式的介质可以涉及将一个或多个指令的一个或多个序列载送到处理器404以供执行。例如,指令最初可以被承载在远程计算机的磁盘或固态驱动器上。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统400本地的调制解调器可以接收电话线上的数据,并使用红外发射器将数据转换成红外信号。红外检测器可以接收红外信号中承载的数据,并且适当的电路可以将数据放置在总线402上。总线402将数据载送到主存储器406,处理器404从主存储器406获取并执行指令。由主存储器406接收的指令可以可选地在处理器404执行之前或之后被存储在存储设备410上。
计算机系统400还包括耦接到总线402的通信接口418。通信接口418还通过与连接到本地网络422的网络链路420耦接来提供双向数据通信。例如,通信接口418可以是用于向对应类型的电话线提供数据通信连接的综合业务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器或调制解调器。作为另一示例,通信接口418可以是用向可兼容的局域网(LAN)提供数据通信连接的局域网卡。还可以实现无线链路。在任何这种实施方案中,通信接口418对承载了表示各种信息类型的数字数据流的电信号、电磁信号或光信号进行发送和接收。
网络链路420通常通过一个或多个网络向其他数据设备提供数据通信。例如,网络链路420可以通过本地网络422向主机计算机424或者向由互联网服务提供商(ISP)426操作的数据设备提供连接。ISP 426通过现在通常被称为“互联网”的全球分组数据通信网络428依次提供数据通信服务。本地网络422和互联网428两者都使用承载了数字数据流的电信号、电磁信号或光信号。通过在网络链路420上的各种网络和信号的信号以及通过通信接口418的信号(其载送去往和来自计算机系统400的数字数据)是载波传输信息的示例性形式。
计算机系统400可以通过(一个或多个)网络、网络链路420和通信接口418发送消息和接收包括程序代码的数据。在互联网示例中,服务器430可以通过互联网428、ISP 426、本地网络422和通信接口418发送所请求的应用程序代码。
接收到的代码可以在其被接收时由处理器404执行,和/或存储在存储设备410或其他非易失性存储器中用于稍后执行时。
5.0扩展和替代
在前述说明书中,已参考可以随实施方案变化的许多具体细节来描述本公开的实施例。因此,本公开内容的唯一且排他的指示以及申请人旨在作为本公开的是本申请的一组权利要求,权利要求以特定形式给出,并包括任何后续的修正。本文对权利要求中包括的术语明确阐述的任何定义应当规定权利要求中所使用的这些术语的含义。因此,没有在权利要求中明确记载的限制、元件、性质、特征、优点或属性不应以任何方式限制权利要求的范围。相应地,说明书和附图被认为是说明性的而非限制性的。

Claims (20)

1.一种计算机系统,包括:
存储器;
耦接到所述存储器的处理器;
耦接到所述处理器和所述存储器的处理器逻辑,被配置为:
从第一源计算机接收包括一个或多个第一字段的第一记录;
响应于确定所述第一记录是第一类型,向第一节点计算机发送所述第一记录,该第一节点计算机处理所述第一类型的记录但在处理第二类型的记录时被暂停;
其中,所述第一类型的记录根据第一模式被组织,并且所述第二类型的记录根据与所述第一模式不同的第二模式被组织;
从第二源计算机接收包括所述一个或多个第一字段和一个或多个第二字段的第二记录;
响应于确定所述第二记录是所述第二类型,向第二节点计算机发送所述第二记录,该第二节点计算机处理所述第二类型的记录;
在向所述第一节点计算机发送所述第一记录和向所述第二节点计算机发送所述第二记录之后,确定所述第二类型是否是所述第一类型的第一子类型,而不暂停和重新配置所述第一节点计算机;
响应于确定所述第二类型是所述第一类型的所述第一子类型,将所述第二记录发送到所述第一节点计算机以被处理,而不暂停和重新配置所述第一节点计算机。
2.如权利要求1所述的计算机系统,其中所述处理器逻辑被配置为:
响应于确定所述第一记录是所述第一类型并且所述第一节点计算机与所述第一类型相关联,用所述第一记录向所述第一节点计算机发送第一签名;
响应于确定所述第二记录是所述第二类型并且所述第二节点计算机与所述第二类型相关联,用所述第二记录向所述第一节点计算机发送第二签名;
响应于确定所述第二类型是所述第一类型的所述第一子类型,用所述第二记录向所述第一节点计算机发送所述第一签名。
3.如权利要求1所述的计算机系统,其中所述处理器逻辑被配置为:
根据一个或多个第一索引来组织所述第一记录中的所述一个或多个第一字段;
根据所述一个或多个第一索引来组织所述第二记录中的所述一个或多个第一字段;
根据一个或多个第二索引来组织所述第二记录中的所述一个或多个第二字段,其中在所述一个或多个第一索引中的每个索引引用在由所述一个或多个第二索引中的每个索引引用的存储器地址之前的存储器地址。
4.如权利要求1所述的计算机系统,包括第三节点计算机,所述第三节点计算机包括第三处理器和第三存储器,并被配置为基于第三操作处理一个或多个第三类型的记录,其中所述处理器逻辑被配置为:
从第三源计算机接收包括所述一个或多个第一字段、所述一个或多个第二字段以及一个或多个第三字段的第三记录;
响应于确定所述第三记录是第三类型并且所述第三节点计算机与所述第三类型相关联,向所述第三节点计算机发送所述第三记录以被处理;
响应于确定所述第三类型是所述第二类型的第二子类型,向所述第二节点计算机发送所述第三记录以被处理,而不暂停和重新配置所述第二节点计算机;
响应于确定所述第二类型是所述第一类型的所述第一子类型,将所述第三记录发送到所述第一节点计算机以被处理,而不暂停和重新配置所述第二节点计算机。
5.如权利要求1所述的计算机系统,其中所述处理器逻辑被配置为:
基于包括在所述第一记录中的所述一个或多个第一字段来确定所述第一记录是否为所述第一类型;
基于包括在所述第二记录中的所述一个或多个第一字段和所述一个或多个第二字段来确定所述第二记录是否为所述第二类型;
基于包括在所述第二记录中的所述一个或多个第一字段中的每个字段来确定所述第二类型是否为所述第一类型的所述第一子类型。
6.如权利要求1所述的计算机系统,其中所述处理器逻辑被配置为:
将第一签名与所述第一类型相关联;
将第二签名与所述第二类型相关联;
将所述第二签名与所述第一签名相关联作为所述第一子类型;
基于所述一个或多个第一字段中的一个或多个第一字段名称来确定所述第一记录具有所述第一签名,其中,所述一个或多个第一字段包括在所述第一记录中;
基于所述第一签名来确定所述第一记录是否为所述第一类型;
基于所述一个或多个第一字段中和所述一个或多个第二字段中的一个或多个第二字段名称来确定所述第二记录具有所述第二签名,其中,所述一个或多个第一字段和所述一个或多个第二字段包括在第二记录中;
基于所述第二签名来确定所述第二记录是否为所述第二类型;
基于所述第二签名与所述第一签名相关联来确定所述第二类型是否为所述第一类型的所述第一子类型;
响应于确定所述第二类型是所述第一类型的所述第一子类型,用所述第二记录将所述第一签名发送到所述第一节点计算机。
7.如权利要求1所述的计算机系统,其中所述处理器逻辑被配置为:
将第一签名与所述第一类型相关联;
将第二签名与所述第二类型相关联;
将所述第二签名与所述第一签名相关联作为所述第一子类型;
基于所述一个或多个第一字段中的一个或多个第一数据结构来确定所述第一记录具有所述第一签名,其中,所述一个或多个第一字段包括在所述第一记录中;
基于所述第一签名来确定所述第一记录是否为所述第一类型;
基于所述一个或多个第一字段中和所述一个或多个第二字段中的一个或多个第二数据结构来确定所述第二记录具有所述第二签名,其中,所述一个或多个第一字段和所述一个或多个第二字段包括在所述第二记录中;
基于所述第二签名来确定所述第二记录是否为所述第二类型;
基于所述第二签名与所述第一签名相关联来确定所述第二类型是否为所述第一类型的所述第一子类型;
响应于确定所述第二类型是所述第一类型的所述第一子类型,用所述第二记录将所述第一签名发送到所述第一节点计算机。
8.如权利要求1所述的计算机系统,其中所述处理器逻辑被配置为:
基于是否从第一源接收到所述第一记录来确定所述第一记录是否为所述第一类型;
基于是否从第二源接收到所述第二记录来确定所述第二记录是否为所述第二类型。
9.如权利要求1所述的计算机系统,其中:
所述第一节点计算机包括被配置为基于第一操作处理一个或多个第一类型的记录的第一处理器和第一存储器;
所述第二节点计算机包括被配置为基于第二操作处理一个或多个第二类型的记录的第二处理器和第二存储器;
所述处理器逻辑被配置为:
确定所述第二节点计算机已处理完所述第二记录;
在确定所述第二节点计算机已处理完所述第二记录之后,将所述第二记录发送到所述第一节点计算机。
10.如权利要求9所述的计算机系统,其中所述处理器逻辑被配置为:
以特定顺序将所述第二记录发送到与所述第二节点计算机相关联的一个或多个子节点;
确定所述一个或多个子节点中的每个子节点已经以所述特定顺序处理完所述第二记录;
在确定所述一个或多个子节点中的每个子节点已经以所述特定顺序处理所述第二记录之后,确定所述第二节点计算机处理完所述第二记录。
11.一种用于分发数据的方法,包括:
从第一源计算机接收包括一个或多个第一字段的第一记录;
响应于确定所述第一记录是第一类型,向在第一计算机上执行的第一节点发送所述第一记录,该第一节点处理所述第一类型的记录,但在处理第二类型的记录时被暂停;
其中,所述第一类型的记录根据第一模式被组织,并且所述第二类型的记录根据与所述第一模式不同的第二模式被组织;
从第二源计算机接收包括所述一个或多个第一字段和一个或多个第二字段的第二记录;
响应于确定所述第二记录是所述第二类型,向在第二计算机上执行的第二节点发送所述第二记录,该第二节点处理所述第二类型的记录;
在向所述第一节点发送所述第一记录和向所述第二节点发送所述第二记录之后,确定所述第二类型是否是所述第一类型的第一子类型,而不暂停和重新配置所述第一节点;
响应于确定所述第二类型是所述第一类型的所述第一子类型,将所述第二记录发送到所述第一节点以被处理,而不暂停和重新配置所述第一节点;
其中,所述方法由一个或多个计算设备执行。
12.如权利要求11所述的方法,包括:
响应于确定所述第一记录是所述第一类型并且所述第一节点与所述第一类型相关联,用所述第一记录向所述第一节点发送第一签名;
响应于确定所述第二记录是所述第二类型并且所述第二节点与所述第二类型相关联,用所述第二记录向所述第一节点发送第二签名;
响应于确定所述第二类型是所述第一类型的所述第一子类型,用所述第二记录向所述第一节点发送所述第一签名。
13.如权利要求11所述的方法,包括:
根据一个或多个第一索引来组织所述第一记录中的所述一个或多个第一字段;
根据所述一个或多个第一索引来组织所述第二记录中的所述一个或多个第一字段;
根据一个或多个第二索引来组织所述第二记录中的所述一个或多个第二字段,其中在所述一个或多个第一索引中的每个索引引用在由所述一个或多个第二索引中的每个索引引用的存储器地址之前的存储器地址。
14.如权利要求11所述的方法,包括:
从第三源计算机接收包括所述一个或多个第一字段、所述一个或多个第二字段以及一个或多个第三字段的第三记录;
响应于确定所述第三记录是第三类型并且第三节点与所述第三类型相关联,向在第三计算机上执行的所述第三节点发送所述第三记录以被处理;
响应于确定所述第三类型是所述第二类型的第二子类型,向所述第二节点发送所述第三记录以被处理,而不暂停和重新配置所述第二节点;
响应于确定所述第二类型是所述第一类型的所述第一子类型,向所述第一节点发送所述第三记录以被处理,而不暂停和重新配置所述第一节点。
15.根据权利要求11所述的方法,包括:
基于包括在所述第一记录中的所述一个或多个第一字段来确定所述第一记录是否为所述第一类型;
基于包括在所述第二记录中的所述一个或多个第一字段和所述一个或多个第二字段来确定所述第二记录是否为所述第二类型;
基于包括在所述第二记录中的所述一个或多个第一字段中的每个字段来确定所述第二类型是否为所述第一类型的所述第一子类型。
16.根据权利要求11所述的方法,包括:
将第一签名与所述第一类型相关联;
将第二签名与所述第二类型相关联;
将所述第二签名与所述第一签名相关联作为所述第一子类型;
基于所述一个或多个第一字段中的一个或多个第一字段名称来确定所述第一记录具有所述第一签名,其中,所述一个或多个第一字段包括在所述第一记录中;
基于所述第一签名来确定所述第一记录是否为所述第一类型;
基于所述一个或多个第一字段中和所述一个或多个第二字段中的一个或多个第二字段名称来确定所述第二记录具有所述第二签名,其中,所述一个或多个第一字段和所述一个或多个第二字段包括在第二记录中;
基于所述第二签名来确定所述第二记录是否为所述第二类型;
基于所述第二签名与所述第一签名相关联来确定所述第二类型是否为所述第一类型的所述第一子类型;
响应于确定所述第二类型是所述第一类型的所述第一子类型,用所述第二记录向所述第一节点发送所述第一签名。
17.根据权利要求11所述的方法,包括:
将第一签名与所述第一类型相关联;
将第二签名与所述第二类型相关联;
将所述第二签名与所述第一签名相关联作为所述第一子类型;
基于所述一个或多个第一字段中的一个或多个第一数据结构来确定所述第一记录具有所述第一签名,其中,所述一个或多个第一字段包括在所述第一记录中;
基于所述第一签名来确定所述第一记录是否为所述第一类型;
基于所述一个或多个第一字段中和所述一个或多个第二字段中的一个或多个第二数据结构来确定所述第二记录具有所述第二签名,其中,所述一个或多个第一字段和所述一个或多个第二字段包括在所述第二记录中;
基于所述第二签名来确定所述第二记录是否为所述第二类型;
基于所述第二签名与所述第一签名相关联来确定所述第二类型是否为所述第一类型的所述第一子类型;
响应于确定所述第二类型是所述第一类型的所述第一子类型,用所述第二记录向所述第一节点发送所述第一签名。
18.根据权利要求11所述的方法,包括:
基于是否从第一源接收到所述第一记录来确定所述第一记录是否为所述第一类型;
基于是否从第二源接收到所述第二记录来确定所述第二记录是否为所述第二类型。
19.如权利要求11所述的方法,包括:
确定所述第二节点已处理完所述第二记录;
其中,在确定所述第二节点已处理完所述第二记录之后,执行将所述第二记录发送到所述第一节点。
20.如权利要求19所述的方法,包括:
以特定顺序将所述第二记录发送到与所述第二节点相关联的一个或多个子节点;
其中,确定所述第二节点已处理完所述第二记录包括确定所述一个或多个子节点中的每个子节点已经以所述特定顺序处理完所述第二记录。
CN201580040262.3A 2014-07-25 2015-07-16 用于分发和处理流的系统和方法 Active CN106537347B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/341,676 US9959301B2 (en) 2014-07-25 2014-07-25 Distributing and processing streams over one or more networks for on-the-fly schema evolution
US14/341,676 2014-07-25
PCT/US2015/040734 WO2016014333A1 (en) 2014-07-25 2015-07-16 Distributing and processing streams over one or more networks for on-the-fly schema evolution

Publications (2)

Publication Number Publication Date
CN106537347A CN106537347A (zh) 2017-03-22
CN106537347B true CN106537347B (zh) 2020-01-17

Family

ID=53836200

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580040262.3A Active CN106537347B (zh) 2014-07-25 2015-07-16 用于分发和处理流的系统和方法

Country Status (4)

Country Link
US (2) US9959301B2 (zh)
EP (2) EP3172682B1 (zh)
CN (1) CN106537347B (zh)
WO (1) WO2016014333A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9910896B2 (en) 2013-03-15 2018-03-06 Cisco Technology, Inc. Suspending and resuming continuous queries over data streams
US9959301B2 (en) 2014-07-25 2018-05-01 Cisco Technology, Inc. Distributing and processing streams over one or more networks for on-the-fly schema evolution
US9438676B2 (en) 2014-07-25 2016-09-06 Cisco Technology, Inc. Speculative data processing of streaming data
US10423209B2 (en) 2017-02-13 2019-09-24 Apple Inc. Systems and methods for coherent power management
US10970284B2 (en) * 2017-05-12 2021-04-06 Oracle International Corporation Dynamic self-reconfiguration of nodes in a processing pipeline
CN108710658B (zh) * 2018-05-11 2021-12-03 创新先进技术有限公司 一种数据记录的存储方法及装置
US20230259498A1 (en) * 2022-02-14 2023-08-17 Netflix, Inc. Schema-driven distributed data processing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1437750A (zh) * 2001-03-08 2003-08-20 索尼公司 数据记录设备
CN102959514A (zh) * 2010-06-24 2013-03-06 阿尔卡特朗讯 在计算机网络中发送数据的方法、系统、服务器、设备、计算机程序和计算机程序产品
CN103069394A (zh) * 2010-08-25 2013-04-24 起元技术有限责任公司 评估数据流图的特征
CN103258041A (zh) * 2013-05-23 2013-08-21 广东电网公司电力科学研究院 基于通用数据访问接口的tc57视图构建方法和系统
US8554789B2 (en) * 2005-10-07 2013-10-08 Oracle International Corporation Managing cyclic constructs of XML schema in a rdbms

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418446B1 (en) * 1999-03-01 2002-07-09 International Business Machines Corporation Method for grouping of dynamic schema data using XML
US6529921B1 (en) * 1999-06-29 2003-03-04 Microsoft Corporation Dynamic synchronization of tables
US6397227B1 (en) 1999-07-06 2002-05-28 Compaq Computer Corporation Database management system and method for updating specified tuple fields upon transaction rollback
US6584581B1 (en) 1999-12-06 2003-06-24 Ab Initio Software Corporation Continuous flow checkpointing data processing
US6990477B2 (en) 2001-03-28 2006-01-24 International Business Machines Corporation Method, system, and program for implementing scrollable cursors in a distributed database system
US7603670B1 (en) 2002-03-28 2009-10-13 Symantec Operating Corporation Virtual machine transfer between computer systems
US7716473B1 (en) 2004-04-09 2010-05-11 Cisco Technology, Inc. Methods and apparatus providing a reference monitor simulator
US7281018B1 (en) * 2004-05-26 2007-10-09 Microsoft Corporation Form template data source change
US7383253B1 (en) 2004-12-17 2008-06-03 Coral 8, Inc. Publish and subscribe capable continuous query processor for real-time data streams
US7818313B1 (en) 2005-07-18 2010-10-19 Sybase, Inc. Method for distributing processing of queries over a cluster of servers in a continuous processing system
US7756805B2 (en) 2006-03-29 2010-07-13 Alcatel-Lucent Usa Inc. Method for distributed tracking of approximate join size and related summaries
WO2007134407A1 (en) 2006-05-24 2007-11-29 National Ict Australia Limited Selectivity estimation
US7984043B1 (en) 2007-07-24 2011-07-19 Amazon Technologies, Inc. System and method for distributed query processing using configuration-independent query plans
US7979420B2 (en) 2007-10-16 2011-07-12 Oracle International Corporation Handling silent relations in a data stream management system
US7996388B2 (en) 2007-10-17 2011-08-09 Oracle International Corporation Adding new continuous queries to a data stream management system operating on existing queries
US8903802B2 (en) 2008-03-06 2014-12-02 Cisco Technology, Inc. Systems and methods for managing queries
JP4735697B2 (ja) 2008-09-29 2011-07-27 ソニー株式会社 電子機器、コンテンツ再生方法及びプログラム
US20100131745A1 (en) 2008-11-25 2010-05-27 Microsoft Corporation Exceptional events
US20110093500A1 (en) 2009-01-21 2011-04-21 Google Inc. Query Optimization
JP5149840B2 (ja) 2009-03-03 2013-02-20 株式会社日立製作所 ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置
US8601458B2 (en) 2009-05-14 2013-12-03 International Business Machines Corporation Profile-driven data stream processing
US8479216B2 (en) 2009-08-18 2013-07-02 International Business Machines Corporation Method for decentralized load distribution in an event-driven system using localized migration between physically connected nodes and load exchange protocol preventing simultaneous migration of plurality of tasks to or from a same node
US8688683B2 (en) 2009-11-30 2014-04-01 Business Objects Software Ltd. Query plan reformulation
JP4967014B2 (ja) 2009-12-16 2012-07-04 株式会社日立製作所 ストリームデータ処理装置及び方法
US8521871B2 (en) * 2010-01-04 2013-08-27 International Business Machines Corporation System and method for merging monitoring data streams from a server and a client of the server
US9003110B2 (en) 2010-01-13 2015-04-07 International Business Machines Corporation Dividing incoming data into multiple data streams and transforming the data for storage in a logical data object
US8484243B2 (en) 2010-05-05 2013-07-09 Cisco Technology, Inc. Order-independent stream query processing
US20110314019A1 (en) 2010-06-18 2011-12-22 Universidad Politecnica De Madrid Parallel processing of continuous queries on data streams
US8260803B2 (en) 2010-09-23 2012-09-04 Hewlett-Packard Development Company, L.P. System and method for data stream processing
US8260826B2 (en) 2010-09-23 2012-09-04 Hewlett-Packard Development Company, L.P. Data processing system and method
US9514159B2 (en) 2010-10-27 2016-12-06 International Business Machines Corporation Database insertions in a stream database environment
US9542448B2 (en) 2010-11-03 2017-01-10 Software Ag Systems and/or methods for tailoring event processing in accordance with boundary conditions
US9355148B2 (en) 2011-04-29 2016-05-31 Hewlett Packard Enterprise Development Lp Systems and methods for in-memory processing of events
US8745434B2 (en) 2011-05-16 2014-06-03 Microsoft Corporation Platform for continuous mobile-cloud services
US8726076B2 (en) 2011-05-27 2014-05-13 Microsoft Corporation Operator state checkpoint markers and rehydration
WO2013025553A2 (en) 2011-08-12 2013-02-21 Splunk Inc. Data volume management
US9462040B2 (en) * 2011-12-07 2016-10-04 Cisco Technology, Inc. Network-based dynamic data management
US9253058B2 (en) * 2012-02-01 2016-02-02 International Business Machines Corporation Deploying an executable with historical performance data
EP2823412A1 (en) 2012-03-08 2015-01-14 Telefonaktiebolaget L M Ericsson (PUBL) Data stream management systems
US9239864B2 (en) 2012-04-17 2016-01-19 Cisco Technology, Inc. Distributing and processing streams over one or more networks
US20140051415A1 (en) * 2012-08-16 2014-02-20 Ozgur Ekici Reducing data transfer latency caused by state transitions in mobile networks
US9369293B2 (en) * 2012-09-11 2016-06-14 Cisco Technology, Inc. Compressing singly linked lists sharing common nodes for multi-destination group expansion
US9910896B2 (en) 2013-03-15 2018-03-06 Cisco Technology, Inc. Suspending and resuming continuous queries over data streams
US9438676B2 (en) 2014-07-25 2016-09-06 Cisco Technology, Inc. Speculative data processing of streaming data
US9959301B2 (en) 2014-07-25 2018-05-01 Cisco Technology, Inc. Distributing and processing streams over one or more networks for on-the-fly schema evolution

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1437750A (zh) * 2001-03-08 2003-08-20 索尼公司 数据记录设备
US8554789B2 (en) * 2005-10-07 2013-10-08 Oracle International Corporation Managing cyclic constructs of XML schema in a rdbms
CN102959514A (zh) * 2010-06-24 2013-03-06 阿尔卡特朗讯 在计算机网络中发送数据的方法、系统、服务器、设备、计算机程序和计算机程序产品
CN103069394A (zh) * 2010-08-25 2013-04-24 起元技术有限责任公司 评估数据流图的特征
CN103258041A (zh) * 2013-05-23 2013-08-21 广东电网公司电力科学研究院 基于通用数据访问接口的tc57视图构建方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Stream Schema: Providing and Exploiting Static Metadata for Data Stream Processing;Peter M.Fischer等;《EDBT 2010,13th International Conference on Extending Database Technology》;20100326;第209页,第211页,第213-216页 *

Also Published As

Publication number Publication date
EP4231149A2 (en) 2023-08-23
US20180165313A1 (en) 2018-06-14
US20160026663A1 (en) 2016-01-28
US11210277B2 (en) 2021-12-28
EP4231149A3 (en) 2023-11-22
EP3172682B1 (en) 2023-07-12
EP3172682A1 (en) 2017-05-31
CN106537347A (zh) 2017-03-22
WO2016014333A1 (en) 2016-01-28
US9959301B2 (en) 2018-05-01

Similar Documents

Publication Publication Date Title
CN106537347B (zh) 用于分发和处理流的系统和方法
US11695830B1 (en) Multi-threaded processing of search responses
US10747569B2 (en) Systems and methods of discovering and traversing coexisting topologies
US9910896B2 (en) Suspending and resuming continuous queries over data streams
CN108431804B (zh) 将多个容器数据库分组为单个容器数据库集群的能力
US8386515B2 (en) Persistent querying in a federated database system
US20200065303A1 (en) Addressing memory limits for partition tracking among worker nodes
CN105959151B (zh) 一种高可用的流式处理系统及方法
US8730819B2 (en) Flexible network measurement
US7647595B2 (en) Efficient event notification in clustered computing environments
US20200044881A1 (en) Managing channels in an open data ecosystem
US11874875B2 (en) Graph processing system
US20180248977A1 (en) Selective distribution of messages in a publish-subscribe system
US20180052858A1 (en) Methods and procedures for timestamp-based indexing of items in real-time storage
WO2019062156A1 (zh) 存储过程的执行方法、装置及存储介质
US11223534B2 (en) Systems and methods for hub and spoke cross topology traversal
CN112486953A (zh) 数据迁移方法、装置、计算机设备及存储介质
CN111324655B (zh) 一种分布式仿真中基于差异数据萃取的数据订阅方法
CN114461490B (zh) 一种运维数据聚合系统
WO2024174258A1 (zh) 基于非易失内存的深度神经网络checkpoint优化系统以及方法
US20230315726A1 (en) Enriching metrics with application execution context
US20240275864A1 (en) Dynamic hashing framework for synchronization between network telemetry producers and consumers
US20230195510A1 (en) Parallel execution of stateful black box operators
Wu et al. SUNVE: Distributed Message Middleware towards Heterogeneous Database Synchronization
US20200050612A1 (en) Supporting additional query languages through distributed execution of query engines

Legal Events

Date Code Title Description
C06 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