CN114884971A - 用于跨网络节点同步所复制的对象的装置、系统和方法 - Google Patents

用于跨网络节点同步所复制的对象的装置、系统和方法 Download PDF

Info

Publication number
CN114884971A
CN114884971A CN202110322350.XA CN202110322350A CN114884971A CN 114884971 A CN114884971 A CN 114884971A CN 202110322350 A CN202110322350 A CN 202110322350A CN 114884971 A CN114884971 A CN 114884971A
Authority
CN
China
Prior art keywords
update message
status update
node
status
transmission
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.)
Pending
Application number
CN202110322350.XA
Other languages
English (en)
Inventor
S·赛思
A·库玛姆阿
M·纳姆巴尔拉
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.)
Juniper Networks Inc
Original Assignee
Juniper Networks 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 Juniper Networks Inc filed Critical Juniper Networks Inc
Publication of CN114884971A publication Critical patent/CN114884971A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)

Abstract

本公开的实施例涉及用于跨网络节点同步所复制的对象的装置、系统和方法。所公开的方法可以包括:(1)在网络内的主节点上检测对跨网络内的主节点和备用节点所复制的对象所进行的更改;(2)修改去往备用节点的状态更新消息以解释对主节点上的对象所进行的更改;(3)检查去往备用节点的状态更新消息的状态标志;(4)至少部分地基于状态更新消息的状态标志来确定状态更新消息准备好传输给备用节点;以及然后,响应于确定状态更新消息准备好传输,(5)将状态更新消息传输给备用节点以支持将更改复制到备用节点上的对象。还公开了各种其他装置、系统和方法。

Description

用于跨网络节点同步所复制的对象的装置、系统和方法
技术领域
本公开的实施例涉及用于在高度缩放的环境中跨网络节点同步所复制的对象的其他装置、系统和方法。
背景技术
网络通常包括以高可用性来提供服务和/或业务转发的网络节点。为了实现针对这种服务和/或业务转发的可用性,这些网络节点中的一些网络节点可能需要彼此包括、提供和/或共享一组所复制的对象。另外,这些网络节点中的一些网络节点可能需要相对于彼此更新和/或同步这种所复制的对象的状态。
在一些示例中,网络节点可以支持和/或提供具有某些参数的网络套接字(socket)的高可用性。在这种示例中,这些网络节点中的一个网络节点可以主动地支持网络套接字和/或改变网络套接字的参数中的一个或多个参数。在传统的同步技术中,该网络节点可以每秒为每个网络套接字生成100个参数更新。例如,该网络节点可以主动地支持30,000个边界网关协议(BGP)连接。在该示例中,这30,000个BGP连接中的每个BGP连接可以每秒引起100个传输控制协议(TCP)更新和/或使100个传输控制协议(TCP)更新成为必需。因此,在传统的同步技术中,该网络节点可以负责每秒生成和/或传输3,000,000个TCP更新。
遗憾的是,该网络节点可能需要非常迅速地为这3,000,000个TCP更新中的每个TCP更新分配内存并且随后释放内存,从而带来沉重的负担和/或负载。此外,当这些TCP更新中的许多TCP更新实际上由网络节点传输时,它们可能不再那么重要。例如,即使在携带对这种参数的早前更改的TCP更新已经被传输之前,网络节点也可以改变BGP连接的一个或多个参数。在该示例中,网络节点可以按时间顺序对这些TCP更新排队以进行传输,但是针对给定BGP连接的最后一个TCP更新可以携带最相关和/或最新的参数状态。因此,造成对网络节点带来的沉重负担和/或负载的TCP更新中的许多TCP更新都可能在传输时没那么重要,从而潜在地浪费了网络节点的计算资源和/或存储器资源。
因此,本公开标识并且解决对用于在高度缩放的环境中跨网络节点同步所复制的对象的其他装置、系统和方法的需要。
发明内容
如下面将更详细地描述的,本公开大体上涉及用于在高度缩放的环境中跨网络节点同步所复制的对象的装置、系统和方法。在一个示例中,一种用于实现这种任务的方法可以包括:(1)在网络内的主节点上检测对跨主节点和该网络内的备用节点所复制的对象所进行的更改;(2)修改去往备用节点的状态更新消息以解释对主节点上的对象所进行的更改;(3)检查去往备用节点的状态更新消息的状态标志;(4)至少部分地基于状态更新消息的状态标志来确定状态更新消息准备好传输给备用节点;以及然后,响应于确定状态更新消息准备好传输,(5)将状态更新消息传输给备用节点以支持将更改复制到备用节点上的对象。
类似地,一种实现上面所标识的方法的系统可以包括:物理处理器,被配置为执行被存储在网络内的网络节点上的存储器中的各种模块。在一个示例中,该系统可以包括和/或执行:(1)检测模块,检测对跨网络内的主节点和备用节点所复制的对象所进行的更改;(2)消息模块,修改去往备用节点的状态更新消息以解释对主节点上的对象所进行的更改;(3)检查模块:(A)检查去往备用节点的状态更新消息的状态标志;以及(B)至少部分地基于状态更新消息的状态标志来确定状态更新消息准备好传输给备用节点;以及(4)传输模块,将状态更新消息传输给备用节点以支持将更改复制到备用节点上的对象。
附加地或者备选地,一种实现上面所标识的方法的装置可以包括:至少一个存储设备,存储跨网络内的主节点和备用节点所复制的一组对象。该装置还可以包括:至少一个物理处理器,被通信地耦合到存储设备。在一个示例中,物理处理器:(1)在主节点上检测对跨主节点和网络内的备用节点所复制的对象中的一个对象所进行的更改;(2)修改去往备用节点的状态更新消息以解释对主节点上的对象中的该一个对象所进行的更改;(3)检查去往备用节点的状态更新消息的状态标志;(4)至少部分地基于状态更新消息的状态标志来确定状态更新消息准备好传输给备用节点;以及然后,(5)响应于确定状态更新消息准备好传输,将状态更新消息传输给备用节点以支持将更改复制到备用节点上的对象。
根据本文所描述的一般原理,可以将来自上述实施例中的任何实施例的特征彼此组合使用。在结合附图和权利要求书阅读以下详细描述之后,将更充分地理解这些以及其他实施例、特征和优点。
附图说明
附图图示了若干示例性实施例,并且是本说明书的一部分。连同以下描述,这些附图说明和解释了本公开的各种原理。
图1是用于在高度缩放的环境中跨网络节点同步所复制的对象的示例性系统的框图。
图2是用于在高度缩放的环境中跨网络节点同步所复制的对象的附加示例性系统的框图。
图3是用于在高度缩放的环境中跨网络节点同步所复制的对象的示例性实现的框图。
图4是对被复制到另一网络节点的对象进行更改的示例性网络节点的框图。
图5是实现用于向另一网络节点传输状态更新消息的队列的示例性网络节点的框图。
图6是用于在高度缩放的环境中跨网络节点同步所复制的对象的示例性方法的流程图。
图7是用于在高度缩放的环境中跨网络节点同步所复制的对象的示例性方法的流程图。
图8是能够结合本文所描述和/或所图示的实施例中的一个或多个实施例进行实现和/或被使用的示例性计算系统的框图。
贯穿附图,相同的附图标记和描述指示类似但不一定相同的元件。虽然本文所描述的示例性实施例易受各种修改和备选形式的影响,但是已经在附图中通过示例的方式示出了具体实施例,并且本文将详细地对其进行描述。然而,本文所描述的示例性实施例不旨在限于所公开的特定形式。相反,本公开涵盖落入所附权利要求书的范围内的所有修改、等效物和备选方案。
具体实施方式
本公开描述了用于在高度缩放的环境中跨网络节点同步所复制的对象的各种装置、系统和方法。如下面将更详细地解释的,本公开的实施例可以设置传输时间表,该传输时间表限制在特定时间段内在高度缩放的环境中的主节点和备用节点之间所交换的状态更新消息的数量。该传输时间表可以通过按照受控间隔传输状态更新消息来减少和/或减轻对主节点和/或备用节点带来的负担和/或负载。
为了在不丢失对所复制的对象的重要更新的情况下实现和/或适应该传输时间表,主节点和备用节点可以结合排队进行传输的状态更新消息来维持和/或保持状态标志。这些状态标志中的一个或多个状态标志可以指示:特定状态更新消息当前是否正在经历处理以便进行传输;特定状态更新消息当前是否正在队列中经历修改和/或更新;和/或特定的排队的状态更新消息是否包括过时的信息,该过时的信息表示对所复制的对象所进行的先前更改。然后,主节点和备用节点可以依赖和/或使用这些状态标志来进行与这种状态更新消息有关的某些决策。这些决策的示例包括但不限于:推迟对某些状态更新消息的传输;推迟对队列中的某些状态更新消息的修改;替代队列中的某些状态更新消息所包括的过时的信息;它们中的一个或多个的组合或者变化和/或任何其他合适的决策。
这些实施例可以使得主节点和备用节点能够实现优于传统的同步技术的各种优点和/或改进。例如,主节点和备用节点可以能够以减小的队列大小来操作和/或至少部分地由于减小的队列大小而使状态更新加速。在另一示例中,主节点和备用节点可以能够更快地和/或没有延迟地同步所复制的对象更新。在另一示例中,主节点和备用节点可以能够减小和/或减轻在传输和接收状态更新消息时所涉及的负担和/或负载。附加地或者备选地,主节点和备用节点可以能够减少实现对已更新的对象的同步所需要的内存量。
下面将参照图1至图5提供对用于在高度缩放的环境中跨网络节点同步所复制的对象的示例性装置、系统、组件和对应实现的详细描述。将结合图6和图7来提供对用于在高度缩放的环境中跨网络节点同步所复制的对象的计算机实现的方法的详细描述。附加地,将结合图8来提供对用于实施这些方法的示例性计算系统的详细描述。
图1示出了支持在高度缩放的环境中跨网络节点同步所复制的对象的示例性系统100。如在图1中所图示的,系统100可以包括用于执行一个或多个任务的一个或多个模块102。如下面将更详细地解释的,模块102可以包括检测模块104、消息模块106、检查模块108、传输模块110和/或复制模块112。虽然被图示为单独的元件,但是图1中的一个或多个模块102可以表示单个模块、应用和/或操作系统的部分。例如,检测模块104、消息模块106和/或检查模块108可以被包括在复制模块112中和/或表示复制模块112的一部分。备选地,检测模块104、消息模块106和/或检查模块108可以被包括在传输模块110中和/或表示传输模块110的一部分。
在某些实施例中,图1中的一个或多个模块102可以表示一个或多个软件应用或者程序,该一个或多个软件应用或者程序在由计算设备执行时使计算设备执行一个或多个任务。例如,并且如下面将更详细地描述的,一个或多个模块102可以表示被存储和配置为在一个或多个计算设备上运行的模块,该一个或多个计算设备诸如,在图2中所图示的设备(例如网络节点206、210(1)-201(N)和212(1)-212(N)和/或计算设备202和208)、在图3中所图示的设备(例如网络节点206和210(1))、在图4和图5中所图示的设备(例如网络节点206)和/或在图8中所图示的设备(例如计算系统800)。图1中的一个或多个模块102还可以表示被配置为执行一个或多个任务的一个或多个专用计算机的全部或者部分。
如在图1中所图示的,示例性系统100还可以包括一个或多个存储器设备,诸如存储器140。存储器140通常表示能够存储数据和/或计算机可读指令的任何类型或者形式的易失性或者非易失性存储设备或者介质。在一个示例中,存储器140可以存储、加载和/或维持一个或多个模块102。存储器140的示例包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器、硬盘驱动器(HDD)、固态驱动器(SSD)、光盘驱动器、高速缓冲存储器、它们中的一个或多个的变化或者组合和/或任何其他合适的存储存储器。
如在图1中所图示的,示例性系统100还可以包括一个或多个物理处理器,诸如物理处理器130。物理处理器130通常表示能够解译和/或执行计算机可读指令的任何类型或者形式的硬件实现的处理设备。在一个示例中,物理处理器130可以访问和/或修改被存储在存储器140中的一个或多个模块102。附加地或者备选地,物理处理器130可以执行一个或多个模块102以支持在高度缩放的环境中跨网络节点同步所复制的对象。物理处理器130的示例包括但不限于:中央处理单元(CPU)、微处理器、微控制器、实现软核处理器的现场可编程门阵列(FPGA)、专用集成电路(ASIC)、它们中的一个或多个的部分、它们中的一个或多个的变化或者组合和/或任何其他合适的物理处理器。
如在图1中所图示的,示例性系统100还可以包括一个或多个所复制的对象,诸如所复制的对象120。在一些示例中,所复制的对象120可以分别构成和/或表示跨多个计算设备所复制的、所存储的和/或所重现的任何类型或者形式的数据结构、数据部分和/或格式化数据单元。在这种示例中,所复制的对象120可以包括和/或表示分别已经跨一组计算设备而被复制的对象122(1)至122(N)。在一个示例中,对象122(1)至122(N)中的一个或多个可以包括和/或表示出于高可用性和/或备用目的而跨多个网络节点被复制的网络套接字(例如TCP套接字)。在该示例中,网络套接字可以用作和/或充当用于在网络上发送和/或接收通信的端点。
对象122(1)至122(N)的附加示例包括但不限于以下内容的数据表示和/或对以下内容的引用:物理设备或者接口(诸如“ifd”对象)、逻辑设备或者接口(诸如“ifl”对象)、下一跳和/或路由(诸如IPv4路由或者IPv6路由)、函数、变量、数据结构、原始类型、记录、路由表、转发表、缓冲区、主机高速缓存条目、存储器地址、网络地址、状态数据、参数、它们中的一个或多个的变化或者组合和/或任何其他合适的数据对象。
如在图1中所图示的,示例性系统100可以附加地包括一个或多个状态更新消息,诸如状态更新消息124。在一些示例中,状态更新消息124可以分别构成和/或表示支持更新在远程节点上所复制的一个或多个对象的状态的任何类型或者形式的消息、信号和/或通信。在这种示例中,状态更新消息124可以包括和/或表示由网络内的本地节点生成和/或传输的状态更新消息126(1)至126(N)。在一个示例中,一个或多个状态更新消息124可以包括和/或表示TCP消息或者更新。附加地或者备选地,一个或多个状态更新消息124可以包括和/或表示BGP消息或者更新。
一种用于在高度缩放的环境中跨网络节点同步所复制的对象的装置可以包括示例性系统100的全部或者部分。在一些示例中,图1中的系统可以按照各种方式而被实现。例如,示例性系统100的全部或者一部分可以表示图2中的示例性系统200的部分。如在图2中所示出的,系统200可以包括支持网络节点206、网络节点210(1)至210(N)、网络节点212(1)至212(N)、计算设备202和/或计算设备208之间的通信的网络204。
如在图2中所图示的,网络204可以包括和/或表示形成和/或建立通信路径和/或通信区段的各种网络设备和/或节点。例如,网络204可以包括网络节点206,该网络节点206沿着一条或多条活动的路径朝向计算设备208转发来自计算设备202的业务。在该示例中,活动的路径可以包括和/或表示网络节点210(1)至210(N),而另一活动的路径可以包括和/或表示网络节点212(1)至212(N)。
在一些实施例中,网络节点206、210(1)至210(N)和212(1)至212(N)中的一个或多个可以包括和/或表示存储器140的实例和/或物理处理器130的实例。附加地或者备选地,网络节点206、210(1)至210(N)和212(1)至212(N)中的一个或多个可以生成、传输和/或接收一个或多个状态更新消息124。
在某些实施例中,计算设备202和208中的一个或多个可以包括和/或表示存储器140的实例和/或物理处理器130的实例。附加地或者备选地,计算设备202和208中的一个或多个可以生成、传输和/或接收一个或多个状态更新消息124。
在一些示例中,并且如下面将更详细地描述的,一个或多个模块102可以使网络节点206:(1)检测对跨网络204内的网络节点206和网络节点210(1)所复制的对象122(1)所进行的更改;(2)修改去往备用节点的状态更新消息126(1)以解释(account for)对网络节点210(1)上的对象122(1)所进行的更改;(3)检查去往网络节点210(1)的状态更新消息126(1)的状态标志;(4)至少部分地基于状态更新消息126(1)的状态标志来确定状态更新消息126(1)准备好传输给网络节点210(1);以及然后,响应于确定状态更新消息126(1)准备好传输,(5)将状态更新消息126(1)传输给网络节点210(1)以支持将更改复制到网络节点210(1)上的对象122(1)。
计算设备202和208以及网络节点206、210(1)至210(N)和212(1)至212(N)通常可以分别表示能够读取计算机可执行指令和/或处理网络业务的任何类型或者形式的物理计算设备。在一个示例中,计算设备202和208和/或网络节点206、210(1)至210(N)以及212(1)至212(N)中的一个或多个可以包括和/或表示路由器(诸如中转标签交换路由器、标签边缘路由器、提供方边缘路由器、集线器路由器、分支路由器、自治系统边界路由器和/或区域边界路由器)。计算设备202和208和/或网络节点206、210(1)至210(N)以及212(1)至212(N)的附加示例包括但不限于:交换机、集线器、调制解调器、桥接器、中继器、网关(诸如宽带网络网关(BNG)、多路复用器、网络适配器、网络接口、线卡、收集器、客户端设备、膝上型电脑、平板电脑、台式电脑、服务器、蜂窝电话、个人数字助理(PDA)、多媒体播放器、嵌入式系统、可穿戴设备、游戏控制台、它们中的一个或多个的部分、它们中的一个或多个的变化或者组合、和/或任何其他合适的设备。
网络204通常表示能够支持通信和/或数据传递的任何介质和/或架构。在一个示例中,网络204可以包括计算设备202和208和/或网络节点206、210(1)至210(N)以及212(1)至212(N)中的任何一个或者全部,即使这些设备中的一些设备被图示为在图2中的网络204的外部。附加地或者备选地,网络204可以包括支持计算设备202和208和/或网络节点206、210(1)至210(N)以及212(1)至212(N)之间的通信的其他设备。网络204可以支持使用无线和/或有线连接的通信或者数据传递。网络204的示例包括但不限于:内联网、接入网、层2网络、层3网络、多协议标签交换(MPLS)网络、互联网协议(IP)网络、异构网络(例如层2、层3、IP和/或MPLS网络)、广域网(WAN)、局域网(LAN)、个人区域网络(PAN)、互联网、电力线通信(PLC)、蜂窝网络(例如全球移动通信系统(GSM)网络)、它们中的一个或多个的部分、它们中的一个或多个的变化或者组合、和/或任何其他合适的网络。
图7是用于在高度缩放的环境中跨网络节点同步所复制的对象的示例性计算机实现的方法700的流程图。在图7中所示出的步骤可以由任何合适的计算机可执行代码和/或计算系统执行,包括图1中的系统100、图2中的系统200、图3中的系统300、图8中的系统800和/或它们中的一个或多个的变化或者组合。附加地,在图7中所示出的步骤可以由图1中的系统100、图2中的系统200、图3中的系统300、图8中的系统800等中所包括的任何合适的节点、设备和/或组件执行。在一个示例中,在图7中所示出的步骤中的每个步骤可以表示其结构包括多个子步骤和/或由多个子步骤表示的算法,下面将更详细地提供该多个子步骤的示例。
如在图7中所图示的,在步骤710中,本文所描述的系统中的一个或多个系统可以检测对跨网络内的主节点和备用节点所复制的对象所进行的更改。例如,作为网络节点206的一部分,检测模块104可以检测对跨网络204内的网络节点206和网络节点210(1)所复制的对象122(1)所进行的更改。在该示例中,对象122(1)可以跨网络节点206和210(1)被复制。在一个示例中,网络节点206可以构成和/或表示主动地利用对象122(1)和/或负责支持对象122(1)的主节点。附加地或者备选地,网络节点210(1)可以构成和/或表示复制对象122(1)和/或负责对对象122(1)进行备用的备用节点。
在一个示例中,对象122(1)可以包括和/或表示出于高可用性和/或备用目的而跨多个网络节点206和210(1)所复制的网络套接字(例如TCP套接字)。在这种示例中,网络套接字可以用作和/或充当用于在网络204上发送和/或接收通信的端点。
在一些示例中,对对象122(1)所进行的更改可以包括和/或表示针对对象122(1)的已更新的参数。例如,对对象122(1)所进行的更改可以包括和/或表示一个或多个“snd.nxt”参数、“rcv.nxt”参数、窗口大小参数、“snd.una”参数、套接字缓冲区参数、对等“ACK”参数等的新状态。对对象122(1)所进行的更改的示例包括但不限于:对在通信会话中所涉及的一组计算设备之间所交换的数据的第一字节的序列号所进行的更改、对将在通信会话中所涉及的一组计算设备之间被交换的数据的下一字节的序列号所进行的更改、对涉及一组计算设备的通信会话的窗口大小所进行的更改、对涉及一组计算设备的通信会话的拥塞窗口所进行的更改、它们中的一个或多个的组合或者变化和/或任何其他合适的更改。
本文所描述的系统可以按照各种方式和/或在各种上下文中执行步骤710。在一些示例中,检测模块104可以针对对被复制到远程节点的任何对象所进行的更改监测网络节点206。例如,检测模块104可以针对指示对在网络节点206上所实现的网络套接字(例如TCP套接字)的一个或多个参数所进行的更改的任何事件而监测该网络套接字。在按照这种方式监测网络套接字时,检测模块104可以标识和/或检测指示对网络套接字所进行的更改的事件。
附加地或者备选地,检测模块104可以针对对被复制到远程节点的任何对象所进行的更改而监测在网络节点206上所实现的网络堆栈(例如开放系统互连(OSI)模型)。例如,检测模块104可以针对对所复制的对象120所进行的任何更改监测图4中的网络堆栈402。在按照这种方式监测网络堆栈402时,检测模块104可以标识和/或检测图4中遍历和/或穿过网络堆栈402的已更改的对象422。在该示例中,已更改的对象422可以包括和/或表示对一个所复制的对象120所进行的更新和/或修改。
返回到图7,在步骤720中,本文所描述的系统中的一个或多个系统可以修改去往备用节点的状态更新消息以解释对主节点上的对象所进行的更改。例如,作为图2中的网络节点206的一部分,消息模块106可以修改去往网络节点210(1)的状态更新消息126(1)以解释对网络节点206上的对象122(1)所进行的更改。在该示例中,状态更新消息126(1)可以支持更新网络节点210(1)上的对象122(1)的状态以反映网络节点206上的对象122(1)的已更改的状态。因此,状态更新消息126(1)可以使得网络节点206和210(1)能够相对于彼此同步对象122(1)的状态。
本文所描述的系统可以按照各种方式和/或在各种上下文中执行步骤720。在一些示例中,消息模块106可以将表示对网络节点206上的对象122(1)所进行的更改的信息插入到状态更新消息126(1)中。例如,检查模块108可以检验和/或检查状态更新消息126(1)的状态标志。在一个示例中,检查模块108可以至少部分地基于该状态标志来确定状态更新消息126(1)包括过时的信息,该过时的信息表示对网络节点206上的对象122(1)所进行的先前更改。该先前更改可能还未被反映到和/或被传播到如在网络节点206上所复制的对象122(1)。响应于确定状态更新消息126(1)包括这种过时的信息,消息模块106可以用表示对对象122(1)所进行的更改的已更新的信息来替代、取代和/或代替过时的信息。
在另一示例中,检查模块108可以至少部分地基于该状态标志来确定状态更新消息126(1)不包括表示对网络节点206上的对象122(1)所进行的先前更改的任何信息。响应于确定状态更新消息126(1)不包括任何这种信息,消息模块106可以将表示对网络节点206上的对象122(1)所进行的更改的信息插入到状态更新消息126(1)中。
返回到图7,在步骤730中,本文所描述的系统中的一个或多个系统可以检查去往备用节点的状态更新消息的状态标志。例如,作为图2中的网络节点206的一部分,检查模块108可以检查去往网络节点210(1)的状态更新消息126(1)的状态标志。在该示例中,状态标志可以包括和/或表示与状态更新消息126(1)相关联的元数据部分和/或报头部分。
本文所描述的系统可以按照各种方式和/或在各种上下文中执行步骤730。在一些示例中,检查模块108可以针对任何状态标记搜索状态更新消息126(1)。在这种示例中,检查模块108可以在搜索期间标识、定位和/或找到一个或多个状态标记。在一个实施例中,这种状态标志可以分别包括和/或表示与状态更新消息126(1)相关联的数据的任何部分(例如数据的某一位、数据的某一字节等)和/或数据结构。
在一个示例中,状态更新消息126(1)的“处理中(processing)”状态标志可以指示和/或预示状态更新消息126(1)当前是否正在经历处理以便进行传输和/或是否已经通过对应的通信信道被写入。在该示例中,如果对该“处理中”状态标志进行了设置,则网络节点206可以阻止和/或禁止传输对状态更新消息126(1)的任何后续更新。因此,网络节点206可以仅在该“处理中”状态标志被清除之后允许和/或支持对这种更新的传输。
在另一示例中,状态更新消息126(1)的“已更新(updated)”状态标志可以指示和/或预示状态更新消息126(1)在等待传输的同时当前是否正在对应的队列中经历任何种类的更新和/或修改。在该示例中,网络节点206可以在对该“已更新”状态标志进行了设置的同时阻止和/或禁止处理变得可用的对状态更新消息126(1)的任何后续更新。因此,网络节点206可以仅在该“已更新”状态标志被清除之后允许和/或支持对这种更新的处理。
在另一示例中,状态更新消息126(1)的“已排队(queued)”状态标志可以指示和/或预示状态更新消息126(1)是否具有被安排用于在对应的通信信道上传输的状态更新和/或是否包括过时的信息,该过时的信息表示对所复制的对象所进行的先前更改。在该示例中,网络节点206可以在对该“已排队”状态标志进行了设置的同时替代、取代和/或代替排队进行传输的特定过时的更新信息(如果对状态更新消息126(1)的任何后续更新变得可用)。备选地,如果该“已排队”状态标志被清除,则网络节点206可以简单地将当前状态更新信息插入到状态更新消息126(1)中。
返回到图7,在步骤740中,本文所描述的系统中的一个或多个系统可以至少部分地基于状态更新消息的状态标志来确定状态更新消息准备好传输给备用节点。例如,作为图2中的网络节点206的一部分,检查模块108可以至少部分地基于状态更新消息126(1)的状态标志来确定状态更新消息126(1)准备好传输给网络节点210(1)。在一个示例中,该状态标志可以构成和/或表示“处理中”状态标志,该“处理中”状态标志指示状态更新消息126(1)当前是否正在经历处理以便进行传输和/或是否已经通过对应的通信信道被写入。如果被清除,则该“处理中”状态标志可以指示状态更新消息126(1)在到达队列中的适当位置时准备好和/或可用于传输。如果被进行了设置,则该“处理中”状态标志可以指示状态更新消息126(1)在到达队列中的适当位置时还未准备好传输和/或还不可用于传输。
本文所描述的系统可以按照各种方式和/或在各种上下文中执行步骤740。在一些示例中,检查模块108可以将状态更新消息126(1)的“处理中”状态标志标识为和/或检测为当前被清除。在这种示例中,检查模块108可以至少部分地由于“处理中”状态标志当前被清除而确定状态更新消息126(1)准备好和/或可用于传输给网络节点210(1)。
在其他示例中,检查模块108可以将状态更新消息126(1)的“处理中”状态标志标识为和/或检测为当前被进行了设置。在这种示例中,检查模块108可以至少部分地由于“处理中”状态标志当前被进行了设置而确定状态更新消息126(1)还未准备好传输给网络节点210(1)和/或还不可用于传输给网络节点210(1)。因此,检查模块108可以引起和/或引导传输模块110和/或网络节点206推迟和/或暂停对状态更新消息126(1)的传输,直到“处理中”状态标志被清除为止。在一个示例中,在推迟对状态更新消息126(1)的传输之后,检查模块108可以随后至少部分地由于“处理中”状态标志已经被清除而确定状态更新消息126(1)现在准备好和/或可用于传输给网络节点210(1)。在该示例中,检查模块108可以向传输模块110和/或网络节点206通知和/或告知“处理中”状态标志已经被清除。
在一些示例中,检查模块108可以将状态更新消息126(1)的“已更新”状态标志标识为和/或检测为当前被清除。在这种示例中,检查模块108可以至少部分地由于“已更新”状态标志当前被清除而确定状态更新消息126(1)准备好和/或可用于在对应的队列中被修改。
在其他示例中,检查模块108可以将状态更新消息126(1)的“已更新”状态标志标识为和/或检测为当前被进行了设置。在这种示例中,检查模块108可以至少部分地由于“已更新”状态标志当前被进行了设置而确定状态更新消息126(1)还未准备好被修改和/或还不可用于被修改。因此,检查模块108可以引起和/或引导消息模块106、复制模块112和/或网络节点206推迟和/或暂停对状态更新消息126(1)的修改,直到“已更新”状态标志被清除为止。
在一个示例中,在推迟对状态更新消息126(1)的修改之后,检查模块108可以随后至少部分地由于“已更新”状态标志已经被清除而确定状态更新消息126(1)现在准备好和/或可用于被修改。在该示例中,检查模块108可以向消息模块106、复制模块112和/或网络节点206通知和/或告知“已更新”状态标志已经被清除。响应于该通知和/或信息,消息模块106、复制模块112和/或网络节点206可以发起对状态更新消息126(1)的修改(例如上面结合图7中的步骤720所描述的修改中的一个或多个修改)。
在一些示例中,检查模块108可以将状态更新消息126(1)的“已排队”状态标志标识为和/或检测为当前被清除。在这种示例中,检查模块108可以至少部分地由于“已排队”状态标志当前被清除而确定状态更新消息126(1)还不包括表示对网络节点206上的对象122(1)的先前更改和/或未决更改的任何信息。响应于该确定,检查模块108可以向消息模块106、复制模块112和/或网络节点206通知和/或告知“已排队”状态标志当前被清除。响应于该通知和/或信息,消息模块106、复制模块112和/或网络节点206可以将表示对对象122(1)所进行的更改的信息插入和/或添加到状态更新消息126(1)。
在其他示例中,检查模块108可以将状态更新消息126(1)的“已排队”状态标志标识为和/或检测为当前被进行了设置。在这种示例中,检查模块108可以至少部分地由于“已排队”状态标志当前被进行了设置而确定状态更新消息126(1)包括表示对网络节点206上的对象122(1)的先前更改和/或未决更改的一些信息。因此,鉴于对对象122(1)所进行的后续更新和/或更改,该信息可以被认为是过时的和/或陈旧的。响应于该确定,检查模块108可以向消息模块106、复制模块112和/或网络节点206通知和/或告知“已排队”状态标志当前被进行了设置。响应于该通知和/或信息,消息模块106、复制模块112和/或网络节点206可以用表示对状态更新消息126(1)中的对象122(1)所进行的后续更新和/或更改的新信息和/或已更新的信息来替代、取代和/或代替该过时的信息。
图5图示了在网络节点206上所实现的示例性队列500。如在图5中所图示的,队列500可以包括和/或加载有状态更新消息126(1)、126(2)、126(3)、126(4)和126(5)。在一个示例中,可以对图5中的状态更新消息126(1)至126(5)进行排队,使得状态更新消息126(2)是被安排好传输的下一消息,然后是该顺序中的状态更新消息126(3)、126(1)、126(4)和126(5)。在该示例中,在状态更新消息126(2)和126(3)之后排队等待传输的状态更新消息126(1)可以包括和/或表示状态标志322和/或对网络节点206上的对象122(1)的实例所进行的更改320。
在一个示例中,网络节点206可以用对状态更新消息126(1)中的对象122(1)所进行的较新的和/或最新的更改来替代、取代和/或代替对对象122(1)所进行的更改320。在该示例中,一旦状态标志322指示状态更新消息126(1)准备好和/或可用于传输,网络节点206就可以能够向网络节点210(1)传输状态更新消息126(1)。
返回到图7,在步骤750中,本文所描述的系统中的一个或多个系统可以将状态更新消息传输给备用节点以支持将更改复制到备用节点上的对象。例如,作为图2中的网络节点206的一部分,传输模块110可以将状态更新消息126(1)传输给网络节点210(1)以支持将更改复制到网络节点210(1)上的对象122(1)。在该示例中,传输模块110可以响应于确定状态更新消息126(1)准备好和/或可用于传输而发起对状态更新消息126(1)的传输。状态更新消息126(1)可以包括和/或携带网络节点210(1)更新对象122(1)所必需的信息和/或数据以反映对网络节点206所进行的更改。
本文所描述的系统可以按照各种方式和/或在各种上下文中执行步骤750。在一些示例中,传输模块110可以将状态更新消息126(1)发送、传输和/或转发给网络节点210(1)或者另一网络节点。例如,传输模块110可以引起和/或引导网络节点206将状态更新消息126(1)发送、传输和/或转发给网络节点210(1)或者另一网络节点。在接收到状态更新消息126(1)之后,网络节点210(1)可以能够至少部分地基于状态更新消息126(1)中所包括的信息和/或数据来复制和/或重现对网络节点206上的对象122(1)所进行的更改。
在一些示例中,传输模块110可以设置传输时间表,该传输时间表限制由网络节点206在特定时间段内传输的状态更新消息的数量。例如,传输时间表可以将网络节点206限制为每秒传输最多30,000个状态更新消息。在该示例中,该传输时间表可以引起和/或引导网络节点206每33微秒左右传输新的状态更新消息。在一个示例中,传输模块110可以延迟对状态更新消息126(1)的传输以符合传输时间表。然后,传输模块110可以确定对状态更新消息126(1)的传输已经被延迟足够的时间量以符合传输时间表。
图3图示了包括和/或表示网络节点206和210(1)的示例性系统300。如在图3中所图示的,网络节点206可以生成和/或传输状态更新消息126(1)。在一个示例中,状态更新消息126(1)可以包括和/或表示状态标志322和/或对网络节点206上的对象122(1)的实例所进行的更改320。在该示例中,一旦状态标志322指示状态更新消息126(1)准备好和/或可用于传输,网络节点206就可以将状态更新消息126(1)传输给网络节点210(1)。然后,网络节点210(1)可以至少部分地基于状态更新消息126(1)中所包括和/或所表示的更改320来更新和/或修改它的所复制的对象122(1)实例。
在一些示例中,发送器和接收器都可以能够如上面结合图1至图5以及图7所描述的那样使用和/或实现状态更新消息和/或状态标志。例如,网络节点210(1)可以从网络节点206接收状态更新消息126(1)。在该示例中,网络节点210(1)可以复制和/或再现状态更新消息126(1)中所包括的更改。
在一些示例中,作为网络节点210(1)的一部分,消息模块106可以修改去往网络节点206的附加状态更新消息。在这种示例中,附加状态更新消息可以旨在确认将更改复制到网络节点210(1)上的对象122(1)的实例。在一个示例中,作为网络节点210(1)的一部分,检查模块108可以至少部分地基于状态更新消息的附加状态标志来确定附加状态更新消息准备好传输给网络节点206。响应于该确定,传输模块110可以将附加状态更新消息传输给主节点以支持确认将更改复制到网络节点210(1)上的对象。
在一些示例中,检查模块108可以将附加状态更新消息的“处理中”状态标志标识为和/或检测为当前被清除。在这种示例中,检查模块108可以至少部分地由于“处理中”状态标志当前被清除而确定附加状态更新消息准备好和/或可用于传输给网络节点206。
在其他示例中,检查模块108可以将附加状态更新消息的“处理中”状态标志标识为和/或检测为当前被进行了设置。在这种示例中,检查模块108可以至少部分地由于“处理中”状态标志当前被进行了设置而确定附加状态更新消息还未准备好传输给网络节点206和/或还不可用于传输给网络节点206。因此,检查模块108可以引起和/或引导传输模块110和/或网络节点210(1)推迟和/或暂停对附加状态更新消息的传输,直到“处理中”状态标志被清除为止。在一个示例中,在推迟对附加状态更新消息的传输之后,检查模块108可以随后至少部分地由于“处理中”状态标志已经被清除而确定附加状态更新消息现在准备好和/或可用于传输给网络节点206。在该示例中,检查模块108可以向传输模块110和/或网络节点210(1)通知和/或告知“处理中”状态标志已经被清除。
在一些示例中,检查模块108可以将附加状态更新消息的“已更新”状态标志标识为和/或检测为当前被清除。在这种示例中,检查模块108可以至少部分地由于“已更新”状态标志当前被清除而确定附加状态更新消息准备好和/或可用于在对应的队列中被修改。
在其他示例中,检查模块108可以将附加状态更新消息的“已更新”状态标志标识为和/或检测为当前被进行了设置。在这种示例中,检查模块108可以至少部分地由于“已更新”状态标志当前被进行了设置而确定附加状态更新消息还未准备好被修改和/或还不可用于被修改。因此,检查模块108可以引起和/或引导消息模块106、复制模块112和/或网络节点210(1)推迟和/或暂停对附加状态更新消息的修改,直到“已更新”状态标志被清除为止。
在一个示例中,在推迟对附加状态更新消息的修改之后,检查模块108可以随后至少部分地由于“已更新”状态标志已经被清除而确定附加状态更新消息现在准备好和/或可用于被修改。在该示例中,检查模块108可以向消息模块106、复制模块112和/或网络节点210(1)通知和/或告知“已更新”状态标志已经被清除。响应于该通知和/或信息,消息模块106、复制模块112和/或网络节点206可以发起对附加状态更新消息的修改(例如上面结合图7中的步骤720所描述的修改中的一个或多个修改)。
在一些示例中,检查模块108可以将附加状态更新消息的“已排队”状态标志标识为和/或检测为当前被清除。在这种示例中,检查模块108可以至少部分地由于“已排队”状态标志当前被清除而确定附加状态更新消息还不包括表示对网络节点210(1)上的对象122(1)的先前更改和/或未决更改的任何信息。响应于该确定,检查模块108可以向消息模块106、复制模块112和/或网络节点210(1)通知和/或告知“已排队”状态标志当前被清除。响应于该通知和/或信息,消息模块106、复制模块112和/或网络节点210(1)可以将表示被复制到对象122(1)的更改的信息插入和/或添加到附加状态更新消息。
在其他示例中,检查模块108可以将附加状态更新消息的“已排队”状态标志标识为和/或检测为当前被进行了设置。在这种示例中,检查模块108可以至少部分地由于“已排队”状态标志当前被进行了设置,而确定附加状态更新消息已经包括表示对网络节点210(1)上的先前更改和/或未决更改的一些信息。因此,鉴于被复制到对象122(1)的后续更新和/或更改,该信息可以被认为是过时的和/或陈旧的。响应于该确定,检查模块108可以向消息模块106、复制模块112和/或网络节点210(1)通知和/或告知“已排队”状态标志当前被进行了设置。响应于该通知和/或信息,消息模块106、复制模块112和/或网络节点210(1)可以用表示被复制到附加状态更新消息中的对象122(1)的后续更新和/或更改的新信息和/或已更新的信息来替代、取代和/或代替该过时的信息。
图6是用于在高度缩放的环境中跨网络节点同步所复制的对象的附加示例性计算机实现的方法600的流程图。在图6中所示出的步骤可以由任何合适的计算机可执行代码和/或计算系统执行,包括图1中的系统100、图2中的系统200、图3中的系统300、图8中的系统800和/或它们中的一个或多个的变化或者组合。附加地,在图6中所示出的步骤可以由图1中的系统100、图2中的系统200、图3中的系统300、图8中的系统800等中所包括的任何合适的节点、设备和/或组件执行。在一个示例中,在图6中所示出的步骤中的每个步骤可以表示其结构包括多个子步骤和/或由多个子步骤表示的算法,下面将更详细地提供该多个子步骤的示例。
如在图6中所图示的,在步骤602中,本文所描述的系统中的一个或多个系统可以经由网络堆栈来接收已更改的对象。例如,作为网络节点206的一部分,检测模块104可以经由网络堆栈来检测和/或接收已更改的对象。在一示例中,已更改的对象可以包括和/或表示网络套接字(例如TCP套接字)的一个或多个已更新的参数。
在图6的步骤604中,本文所描述的系统中的一个或多个系统可以确定是否在与已更改的对象对应的状态更新消息中对“处理中”状态标志进行了设置。例如,作为网络节点206的一部分,检查模块108可以检查与已更改的对象对应的状态更新消息。在该示例中,检查模块108可以至少部分地基于检查来确定是否在状态更新消息中对“处理中”状态标志进行了设置。如果对“处理中”状态标志进行了设置,则检查模块108可以等待几微秒,然后根据图6中的步骤606来再次检查“处理中”状态标志。然而,如果“处理中”状态标志被清除和/或未被进行设置,则检查模块108可以使方法600前进到图6中的步骤608。
在图6的步骤608中,本文所描述的系统中的一个或多个系统可以确定是否在与已更改的对象对应的状态更新消息中对“已排队”状态标志进行了设置。例如,检查模块108可以至少部分地基于检查来确定是否在状态更新消息中对“已排队”状态标志进行了设置。如果对“已排队”状态标志进行了设置,则消息模块106和/或复制模块112可以根据图6中的步骤610来更新状态更新消息中的一个或多个对象参数以解决已更改的对象。然而,如果“处理中”状态标志被清除和/或未被进行设置,则消息模块106和/或复制模块112可以根据图6中的步骤612来更新状态更新消息中的一个或多个对象参数以解释已更改的对象,并且然后,将方法600前进到图6中的步骤614。
在图6的步骤614中,本文所描述的系统中的一个或多个系统可以确定是否在与已更改的对象对应的状态更新消息中对“已更新”状态标志进行了设置。例如,检查模块108可以至少部分地基于检查来确定是否在状态更新消息中对“已更新”状态标志进行了设置。如果对“已更新”状态标志进行了设置,则检查模块108可以等待几微秒,然后根据图6中的步骤616来再次检查“已更新”状态标志。然而,如果“已更新”状态标志被清除和/或未被进行设置,则传输模块110可以根据图6中的步骤618来将状态更新消息传输给包括和/或存储对象的所复制的副本的远程网络节点。然后,远程网络节点可以至少部分地基于状态更新消息来更新对象的所复制的副本以反映在网络节点206上所检测到的已更改的对象。
图8是能够结合本文所描述和/或所图示的实施例中的一个或多个实施例进行实现和/或被使用的示例性计算系统800的框图。在一些实施例中,计算系统800的全部或者一部分可以单独地或者与其他元件组合地执行结合图3所描述的步骤中的一个或多个步骤,和/或可以是用于单独地或者与其他元件组合地执行结合图3所描述的步骤中的一个或多个步骤的部件。计算系统800的全部或者一部分还可以执行本文所描述和/或所图示的任何其他步骤、方法或者过程和/或还可以是用于执行和/或实现本文所描述和/或所图示的任何其他步骤、方法或者过程的部件。
计算系统800广泛地表示任何类型或者形式的电负载,包括能够执行计算机可读指令的单处理器或者多处理器计算设备或者系统。计算系统800的示例包括但不限于:工作站、膝上型电脑、客户端侧终端、服务器、分布式计算系统、移动设备、网络交换机、网络路由器(例如骨干路由器、边缘路由器、核心路由器、移动服务路由器、宽带路由器等)、网络设备(例如网络安全设备、网络控制设备、网络定时设备、SSL VPN(安全套接字层虚拟专用网络)设备等)、网络控制器、网关(例如服务网关、移动分组网关、多路访问网关、安全网关等)、和/或任何其他类型或者形式的计算系统或者设备。
计算系统800可以被编程为、被配置为和/或以其他方式被设计为符合一个或多个联网协议。根据某些实施例,计算系统800可以被设计为与开放系统互连(OSI)参考模型的一层或多层的协议一起工作,诸如物理层协议、链路层协议、网络层协议、传输层协议、会话层协议、表示层协议和/或应用层协议。例如,计算系统800可以包括根据以下协议而配置的网络设备:通用串行总线(USB)协议、电气和电子工程师协会(IEEE)1394协议、以太网协议、T1协议、同步光联网(SONET)协议、同步数字分级体系(SDH)协议、集成服务数字网络(ISDN)协议、异步传输模式(ATM)协议、点对点协议(PPP)、以太网上的点对点协议(PPPoE)、ATM上的点对点协议(PPPoA)、蓝牙协议、IEEE 802.XX协议、帧中继协议、令牌环协议、生成树协议、和/或任何其他合适的协议。
计算系统800可以包括各种网络组件和/或计算组件。例如,计算系统800可以包括至少一个处理器814和系统存储器816。处理器814通常表示能够处理数据或者解译和执行指令的任何类型或者形式的处理单元。例如,处理器814可以表示专用集成电路(ASIC)、片上系统(例如网络处理器)、硬件加速器、通用处理器和/或任何其他合适的处理元件。
处理器814可以根据上面所讨论的联网协议中的一种或多种联网协议来处理数据。例如,处理器814可以执行或者实现协议栈的一部分,可以处理分组,可以执行存储器操作(例如对分组进行排队以用于稍后处理),可以执行终端用户应用和/或可以执行任何其他处理任务。
系统存储器816通常表示能够存储数据和/或其他计算机可读指令的任何类型或者形式的易失性或者非易失性存储设备或者介质。系统存储器816的示例包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器或者任何其他合适的存储器设备。虽然不是必需的,但是在某些实施例中,计算系统800可以包括易失性存储器单元(诸如,例如系统存储器816)和非易失性存储设备(诸如,例如主存储设备832,如下面所详细描述的)。系统存储器816可以被实现为网络设备中的共享存储器和/或分布式存储器。此外,系统存储器816可以存储在联网操作中所使用的分组和/或其他信息。
在某些实施例中,除了处理器814和系统存储器816之外,示例性计算系统800还可以包括一个或多个组件或者元件。例如,如在图8中所图示的,计算系统800可以包括存储器控制器818、输入/输出(I/O)控制器820和通信接口822,它们中的每一个都可以经由通信基础设施812被相互连接。通信基础设施812通常表示能够支持计算设备的一个或多个组件之间的通信的任何类型或者形式的基础设施。通信基础设施812的示例包括但不限于:通信总线(诸如串行ATA(SATA)、行业标准架构(ISA)、外围组件互连(PCI)、PCI Express(PCIe)和/或任何其他合适的总线)和网络。
存储器控制器818通常表示能够处理内存或者数据或者控制计算系统800的一个或多个组件之间的通信的任何类型或者形式的设备。例如,在某些实施例中,存储器控制器818可以经由通信基础设施812来控制处理器814、系统存储器816和I/O控制器820之间的通信。在一些实施例中,存储器控制器818可以包括直接存储器存取(DMA)单元,该直接存储器存取(DMA)单元可以向或者从链路适配器传递数据(例如分组)。
I/O控制器820通常表示能够协调和/或控制计算设备的输入功能和输出功能的任何类型或者形式的设备或者模块。例如,在某些实施例中,I/O控制器820可以控制或者支持在计算系统800的一个或多个元件(诸如处理器814、系统存储器816、通信接口822和存储接口830)之间传递数据。
通信接口822广泛地表示能够支持示例性计算系统800与一个或多个附加设备之间的通信的任何类型或者形式的通信设备或者适配器。例如,在某些实施例中,通信接口822可以支持计算系统800与包括附加计算系统的专用或者公用网络之间的通信。通信接口822的示例包括但不限于:链路适配器、有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)以及任何其他合适的接口。在至少一个实施例中,通信接口822可以经由至网络(诸如互联网)的直接链路来提供至远程服务器的直接连接。通信接口822还可以通过例如局域网(诸如以太网)、个人区域网络、广域网、专用网络(例如虚拟专用网络)、电话网络或者电缆网络、蜂窝电话连接、卫星数据连接或者任何其他合适的连接来间接地提供这种连接。
在某些实施例中,通信接口822还可以表示被配置为经由外部总线或者通信信道来支持计算系统800与一个或多个附加网络设备或者存储设备之间的通信的主机适配器。主机适配器的示例包括但不限于:小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、IEEE 1394主机适配器、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)和外部SATA(eSATA)主机适配器、光纤通道接口适配器、以太网适配器等。通信接口822还可以使得计算系统800能够参与分布式计算或者远程计算。例如,通信接口822可以从远程设备接收指令或者向远程设备发送指令以供执行。
如在图8中所图示的,示例性计算系统800还可以包括经由存储接口830被耦合到通信基础设施812的主存储设备832和/或备用存储设备834。存储设备832和834通常表示能够存储数据和/或其他计算机可读指令的任何类型或者形式的存储设备或者介质。例如,存储设备832和834可以表示磁盘驱动器(例如所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口830通常表示用于在存储设备832和834与计算系统800的其他组件之间传递数据的任何类型或者形式的接口或者设备。
在某些实施例中,存储设备832和834可以被配置为从被配置为存储计算机软件、数据或者其他计算机可读信息的可移除存储单元进行读取和/或向该可移除存储单元进行写入。合适的可移除存储单元的示例包括但不限于:软盘、磁带、光盘、闪速存储器设备等。存储设备832和834还可以包括用于允许计算机软件、数据或者其他计算机可读指令被加载到计算系统800中的其他类似的结构或者设备。例如,存储设备832和834可以被配置为读取和写入软件、数据或者其他计算机可读信息。存储设备832和834可以是计算系统800的一部分,或者可以是通过其他接口系统而访问的单独的设备。
许多其他设备或者子系统可以被连接到计算系统800。相反,在图8中所图示的组件和设备中的所有组件和设备不需要存在以实践本文所描述和/或所图示的实施例。上面所引用的设备和子系统还可以按照与在图8中所示出的那些方式不同的方式被互连。计算系统800还可以采用任何数量的软件配置、固件配置和/或硬件配置。例如,本文所公开的示例性实施例中的一个或多个示例性实施例可以被编码为计算机可读介质上的计算机程序(也被称为计算机软件、软件应用、计算机可读指令或者计算机控制逻辑)。术语“计算机可读介质”通常是指能够存储或者携带计算机可读指令的任何形式的设备、载体或者介质。计算机可读介质的示例包括但不限于:传输类型介质(诸如载波)和非瞬态类型介质(诸如磁存储介质(例如硬盘驱动器和软盘)、光学存储介质(例如压缩盘(CD)和数字视频盘(DVD))、电子存储介质(例如固态驱动器和闪存介质)以及其他分布系统)。
虽然前述公开内容使用特定框图、流程图和示例来阐述各种实施例,但是本文所描述和/或所图示的每个框图组件、流程图步骤、操作和/或组件可以使用广泛的硬件配置、软件配置或者固件配置(或者其任何组合)而单独地和/或共同地实现。附加地,其他组件中所包括的组件的任何公开内容都应该被认为在本质上是示例性的,因为许多其他架构可以被实现以实现相同的功能性。
在一些示例中,图1中的系统100的全部或者一部分可以表示云计算环境或者基于网络的环境的部分。云计算环境和基于网络的环境可以经由互联网来提供各种服务和应用。这些云计算服务和基于网络的服务(例如软件即服务、平台即服务、基础设施即服务等)可以通过web浏览器或者其他远程接口可访问。本文所描述的各种功能还可以提供网络切换能力、网关访问能力、网络安全功能、用于网络的内容缓存和递送服务、网络控制服务和/或任何其他联网功能性。
附加地,本文所描述的模块中的一个或多个模块可以将数据、物理设备和/或物理设备的表示从一种形式变换为另一种形式。附加地或者备选地,本文所叙述的模块中的一个或多个模块可以通过以下方式来将处理器、易失性存储器、非易失性存储器和/或物理计算设备的任何其他部分从一种形式变换为另一种形式:在计算设备上执行;在计算设备上存储数据和/或以其他方式与计算设备交互。
本文所描述和/或所图示的步骤的过程参数和顺序仅通过示例的方式而给出,并且可以根据需要被改变。例如,虽然可以按照特定顺序来示出或者讨论本文所图示和/或所描述的步骤,但是这些步骤不一定需要按照所图示的或者所讨论的顺序被执行。本文所描述和/或所图示的各种示例性方法还可以省略本文所描述的或者所图示的步骤中的一个或多个步骤或者包括除了所公开的那些步骤之外的附加步骤。
已经提供了前述描述以使本领域的其他技术人员能够最好地利用本文所公开的示例性实施例的各个方面。该示例性描述不旨在是详尽的或者限于所公开的任何精确形式。在不脱离本公开的精神和范围的情况下,许多修改和变化是可能的。本文所公开的实施例应该在所有方面都被认为是说明性的,而非限制性的。在确定本公开的范围时,应该参考所附权利要求书及其等效物。
除非另有说明,否则如在本说明书和权利要求书中所使用的术语“被连接到”和“被耦合到”(及其派生词)应该被解释为允许直接和间接(即,经由其他元件或者组件)连接。附加地,如在本说明书和权利要求书中所使用的术语“一”或者“一个”应被解释为是指“…中的至少一个”。最后,为了便于使用,如在本说明书和权利要求书中所使用的术语“包括(including)”和“具有”(及其派生词)可与词语“包括(comprising)”互换以及具有与词语“包括(comprising)”相同的含义。

Claims (15)

1.一种方法,包括:
在网络内的主节点上检测对跨所述网络内的所述主节点和备用节点所复制的对象所进行的更改;
修改去往所述备用节点的状态更新消息以解释对所述主节点上的所述对象所进行的所述更改;
检查去往所述备用节点的所述状态更新消息的状态标志;
至少部分地基于所述状态更新消息的所述状态标志来确定所述状态更新消息准备好传输给所述备用节点;以及
响应于确定所述状态更新消息准备好传输,将所述状态更新消息传输给所述备用节点以支持将所述更改复制到所述备用节点上的所述对象。
2.根据权利要求1所述的方法,还包括:
至少部分地基于所述状态更新消息的所述状态标志来确定所述状态更新消息还未准备好传输给所述备用节点;以及
推迟对所述状态更新消息的所述传输,直到所述状态标志指示所述状态更新消息准备好传输给所述备用节点为止。
3.根据权利要求2所述的方法,其中确定所述状态更新消息准备好传输包括:在推迟对所述状态更新消息的所述传输之后,确定所述状态更新消息准备好传输。
4.根据权利要求1所述的方法,还包括:
至少部分地基于所述状态更新消息的所述状态标志来确定所述状态更新消息还未准备好被修改;以及
推迟对所述状态更新消息的所述修改,直到所述状态标志指示所述状态更新消息准备好被修改为止。
5.根据权利要求4所述的方法,还包括:在推迟对所述状态更新消息的所述修改之后,确定所述状态更新消息准备好被修改;并且
其中修改所述状态更新消息包括:响应于确定所述状态更新消息准备好被修改而发起对所述状态更新消息的所述修改。
6.根据权利要求1所述的方法,还包括:
至少部分地基于所述状态更新消息的所述状态标志来确定所述状态更新消息包括过时的信息,所述过时的信息表示对所述主节点上的所述对象所进行的先前更改;以及
响应于确定所述状态更新消息包括所述过时的信息,针对所述状态更新消息用已更新的信息来替代所述过时的信息,所述已更新的信息表示对所述对象所进行的所述更改。
7.根据权利要求1所述的方法,还包括:
至少部分地基于所述状态更新消息的所述状态标志来确定所述状态更新消息不包括表示对所述主节点上的所述对象所进行的先前更改的任何信息;以及
响应于确定所述状态更新消息不包括表示对所述主节点上的所述对象所进行的先前更改的任何信息,将表示对所述主节点上的所述对象所进行的所述更改的信息插入到所述状态更新消息中。
8.根据权利要求1所述的方法,其中检测对所述对象所进行的所述更改包括:
针对指示对所述主节点上的网络套接字的一个或多个参数所进行的更改的事件监测所述网络套接字;以及
在监测所述网络套接字时,检测指示对所述网络套接字的所述一个或多个参数所进行的所述更改的事件。
9.根据权利要求1所述的方法,其中:
所述对象包括跨所述主节点和所述备用节点所复制的网络套接字;并且
对所述对象所进行的所述更改包括以下至少一项:
对在通信会话中所涉及的一组计算设备之间所交换的数据的第一字节的序列号所进行的更改;
对将在通信会话中所涉及的一组计算设备之间被交换的数据的下一字节的序列号所进行的更改;
对涉及一组计算设备的通信会话的窗口大小所进行的更改;以及
对涉及一组计算设备的通信会话的拥塞窗口所进行的更改。
10.根据权利要求1所述的方法,还包括:设置限制由所述主节点在特定时间段内传输的状态更新消息的数量的传输时间表;并且
其中确定所述状态更新消息准备好传输包括:
延迟对所述状态更新消息的所述传输;以及
确定对所述状态更新消息的所述传输已经被延迟足够的时间量以符合所述传输时间表。
11.根据权利要求1所述的方法,还包括:
在所述备用节点上接收由所述主节点传输的所述状态更新消息;
将所述更改复制到所述备用节点上的所述对象;
修改去往所述主节点的附加状态更新消息,以确认对所述更改到所述备用节点上的所述对象的所述复制;
检查去往所述主节点的所述附加状态更新消息的附加状态标志;
至少部分地基于所述状态更新消息的所述附加状态标志来确定所述附加状态更新消息准备好传输给所述主节点;以及
响应于确定所述附加状态更新消息准备好传输,将所述附加状态更新消息传输给所述主节点以支持确认所述更改到所述备用节点上的所述对象的所述复制。
12.根据权利要求11所述的方法,还包括:
至少部分地基于所述附加状态更新消息的所述状态标志来确定所述附加状态更新消息还未准备好传输给所述主节点;以及
推迟对所述附加状态更新消息的所述传输,直到所述附加状态标志指示所述附加状态更新消息准备好传输给所述主节点为止。
13.根据权利要求12所述的方法,其中确定所述附加状态更新消息准备好传输包括:在推迟对所述附加状态更新消息的所述传输之后,确定所述附加状态更新消息准备好传输。
14.一种系统,包括:
检测模块,被存储在网络内的主节点上的存储器中,检测对跨所述网络内的所述主节点和备用节点所复制的对象所进行的更改;
消息模块,被存储在所述主节点上的存储器中,修改去往所述备用节点的状态更新消息以解释对所述主节点上的所述对象所进行的所述更改;
检查模块,被存储在所述主节点上的存储器中:
检查去往所述备用节点的所述状态更新消息的状态标志;以及
至少部分地基于所述状态更新消息的所述状态标志来确定所述状态更新消息准备好传输给所述备用节点;以及
传输模块,被存储在所述主节点上的存储器中,将所述状态更新消息传输给所述备用节点以支持将所述更改复制到所述备用节点上的所述对象;以及
至少一个物理处理器,执行所述检测模块、所述消息模块、所述检查模块、和所述传输模块。
15.一种装置,包括:
至少一个存储设备,存储跨网络内的主节点和备用节点所复制的一组对象;以及
至少一个物理处理器,被通信地耦合到所述存储设备,其中所述物理处理器:
在所述主节点上检测对跨所述网络内的所述主节点和所述备用节点所复制的所述对象中的一个对象所进行的更改;
修改去往所述备用节点的状态更新消息以解释对所述主节点上的所述对象中的所述一个对象所进行的所述更改;
检查去往所述备用节点的所述状态更新消息的状态标志;
至少部分地基于所述状态更新消息的所述状态标志来确定所述状态更新消息准备好传输给所述备用节点;以及
响应于确定所述状态更新消息准备好传输,将所述状态更新消息传输给所述备用节点以支持将所述更改复制到所述备用节点上的所述对象中的所述一个对象。
CN202110322350.XA 2021-01-22 2021-03-25 用于跨网络节点同步所复制的对象的装置、系统和方法 Pending CN114884971A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/155,332 US11159617B1 (en) 2021-01-22 2021-01-22 Apparatus, system, and method for synchronizing replicated objects across network nodes in highly scaled environments
US17/155,332 2021-01-22

Publications (1)

Publication Number Publication Date
CN114884971A true CN114884971A (zh) 2022-08-09

Family

ID=75173089

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110322350.XA Pending CN114884971A (zh) 2021-01-22 2021-03-25 用于跨网络节点同步所复制的对象的装置、系统和方法

Country Status (3)

Country Link
US (1) US11159617B1 (zh)
EP (1) EP4033728A1 (zh)
CN (1) CN114884971A (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002015460A2 (en) * 2000-08-16 2002-02-21 Dynarc, Inc. Link auto-configuration protocol specification topology
WO2010048047A2 (en) * 2008-10-23 2010-04-29 Microsoft Corporation Quorum based transactionally consistent membership management in distributed storage systems
CN102265277A (zh) * 2011-06-01 2011-11-30 华为技术有限公司 数据存储系统的操作方法和装置
CN103210617A (zh) * 2010-11-12 2013-07-17 阿尔卡特朗讯公司 减少网络中的消息和计算开销
US20150379062A1 (en) * 2014-06-26 2015-12-31 Amazon Technologies, Inc. Multi-database log with multi-item transaction support
EP3270552A1 (en) * 2016-07-14 2018-01-17 Juniper Networks, Inc. Method, system, and apparatus for reducing the size of route updates
US20180205574A1 (en) * 2017-01-13 2018-07-19 Microsoft Technology Licensing, Llc Telecommunications network with data centre deployment
US20180262425A1 (en) * 2017-03-08 2018-09-13 Juniper Networks, Inc. Apparatus, system, and method for sharing labels across label-switched paths within networks
CN110045912A (zh) * 2018-01-16 2019-07-23 华为技术有限公司 数据处理方法和装置
US10567500B1 (en) * 2015-12-21 2020-02-18 Amazon Technologies, Inc. Continuous backup of data in a distributed data store
US10565227B1 (en) * 2016-08-31 2020-02-18 Amazon Technologies, Inc. Leadership lease protocol for data replication groups
CN111104247A (zh) * 2018-10-25 2020-05-05 伊姆西Ip控股有限责任公司 管理数据复制的方法、设备和计算机程序产品
WO2020224374A1 (zh) * 2019-05-05 2020-11-12 腾讯科技(深圳)有限公司 数据复制方法、装置、计算机设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0644242B2 (ja) * 1988-03-17 1994-06-08 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ・システムにおける問題解決方法
US6047289A (en) * 1997-11-07 2000-04-04 Novell, Inc. Method and apparatus for directed data propagation
JPH11249874A (ja) * 1998-02-27 1999-09-17 Toshiba Corp コンピュータシステム、同システムにおける同期処理方法および記録媒体
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US6785696B2 (en) * 2001-06-01 2004-08-31 Hewlett-Packard Development Company, L.P. System and method for replication of distributed databases that span multiple primary nodes
CA2366397A1 (en) * 2001-12-31 2003-06-30 Tropic Networks Inc. An interface for data transfer between integrated circuits
US7587422B2 (en) * 2003-04-24 2009-09-08 Neopath Networks, Inc. Transparent file replication using namespace replication
US7895501B2 (en) * 2007-02-06 2011-02-22 Vision Solutions, Inc. Method for auditing data integrity in a high availability database
US8019863B2 (en) * 2008-03-28 2011-09-13 Ianywhere Solutions, Inc. Synchronizing events between mobile devices and servers
US8363549B1 (en) * 2009-09-02 2013-01-29 Juniper Networks, Inc. Adaptively maintaining sequence numbers on high availability peers
US8510267B2 (en) * 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories
WO2015183301A1 (en) * 2014-05-30 2015-12-03 Hitachi Data Systems Corporation Metadata favored replication in active topologies
US11017048B2 (en) * 2018-12-21 2021-05-25 Box, Inc. Synchronized content replication

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002015460A2 (en) * 2000-08-16 2002-02-21 Dynarc, Inc. Link auto-configuration protocol specification topology
WO2010048047A2 (en) * 2008-10-23 2010-04-29 Microsoft Corporation Quorum based transactionally consistent membership management in distributed storage systems
CN103210617A (zh) * 2010-11-12 2013-07-17 阿尔卡特朗讯公司 减少网络中的消息和计算开销
CN102265277A (zh) * 2011-06-01 2011-11-30 华为技术有限公司 数据存储系统的操作方法和装置
US20150379062A1 (en) * 2014-06-26 2015-12-31 Amazon Technologies, Inc. Multi-database log with multi-item transaction support
US10567500B1 (en) * 2015-12-21 2020-02-18 Amazon Technologies, Inc. Continuous backup of data in a distributed data store
EP3270552A1 (en) * 2016-07-14 2018-01-17 Juniper Networks, Inc. Method, system, and apparatus for reducing the size of route updates
US10565227B1 (en) * 2016-08-31 2020-02-18 Amazon Technologies, Inc. Leadership lease protocol for data replication groups
US20180205574A1 (en) * 2017-01-13 2018-07-19 Microsoft Technology Licensing, Llc Telecommunications network with data centre deployment
CN108574633A (zh) * 2017-03-08 2018-09-25 瞻博网络公司 用于跨网络内的标签交换路径来共享标签的装置、系统和方法
US20180262425A1 (en) * 2017-03-08 2018-09-13 Juniper Networks, Inc. Apparatus, system, and method for sharing labels across label-switched paths within networks
CN110045912A (zh) * 2018-01-16 2019-07-23 华为技术有限公司 数据处理方法和装置
CN111104247A (zh) * 2018-10-25 2020-05-05 伊姆西Ip控股有限责任公司 管理数据复制的方法、设备和计算机程序产品
WO2020224374A1 (zh) * 2019-05-05 2020-11-12 腾讯科技(深圳)有限公司 数据复制方法、装置、计算机设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LI ZHENHUA: "《Efficient Batched Synchronization in Dropbox-Like Cloud Storage Services》", 《INTERNATIONAL CONFERENCE ON IMAGE ANALYSIS AND PROCESSING》, 9 December 2013 (2013-12-09), pages 310 - 315 *
ZHANG QUANLU: "《DeltaCFS:Boosting Delta Sync for Cloud Storage Services by Learning from NFS》", 《2017 IEEE 37TH INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS》, 1 June 2017 (2017-06-01), pages 264 - 275 *
谢鲲;张大方;谢高岗;文吉刚;: "基于轨迹标签的无结构P2P副本一致性维护算法", 软件学报, no. 01, 23 January 2007 (2007-01-23) *

Also Published As

Publication number Publication date
EP4033728A1 (en) 2022-07-27
US11159617B1 (en) 2021-10-26

Similar Documents

Publication Publication Date Title
CN107925677B (zh) 用于卸载数据对象复制以及服务功能链管理的方法及交换机
US10592464B2 (en) Methods for enabling direct memory access (DMA) capable devices for remote DMA (RDMA) usage and devices thereof
US9286171B2 (en) Priming failover of stateful offload adapters
CN108377213B (zh) 用于在内核空间内传播正在进行中的分组的元数据的系统和方法
KR102055535B1 (ko) 탄성 패브릭 어댑터 - 무접속의 신뢰할 수 있는 데이터그램
US11403227B2 (en) Data storage method and apparatus, and server
EP3110086B1 (en) System and method for detecting network neighbor reachability
US8625448B2 (en) Method and system for validating network traffic classification in a blade server
US10749993B2 (en) Path selection using TCP handshake in a multipath environment
WO2018049210A1 (en) Multicast apparatuses and methods for distributing data to multiple receivers in high-performance computing and cloud-based networks
US9710196B2 (en) Method of storing data, storage system, and storage apparatus
US9460182B2 (en) Networking-assisted input/output order preservation for data replication
JP2019106697A (ja) 相互接続ネットワークでのメッセージ再送遅延を動的に管理するための方法及びデバイス
CN106921575B (zh) 用于防止多播业务丢弃的装置、路由器和方法
US10419357B1 (en) Systems and methods for supporting path maximum transmission unit discovery by maintaining metadata integrity across proprietary and native network stacks within network devices
US10419356B1 (en) Apparatus, system, and method for discovering network path maximum transmission units
EP3270552B1 (en) Method, system, and apparatus for reducing the size of route updates
US10255213B1 (en) Adapter device for large address spaces
CN108574633B (zh) 用于跨网络内的标签交换路径来共享标签的装置、系统和方法
CN114884971A (zh) 用于跨网络节点同步所复制的对象的装置、系统和方法
US10594618B1 (en) Apparatus, system, and method for fragmenting packets into segments that comply with the maximum transmission unit of egress interfaces
CN107070733B (zh) 用于及时检测网络内路径最大传输单元增大的装置、系统和方法
US10992591B1 (en) Apparatus, system, and method for discovering path maximum transmission units
US10862801B1 (en) Selective media access control (MAC) learning and purging to reduce flooding and replication in a network
US10681145B1 (en) Replication in a protocol offload network interface controller

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