Apparatus, system and method for synchronizing replicated objects across network nodes

By detecting and processing changes to network node replication objects on the master node and optimizing the transmission of state update messages based on the status flag, the load problem of network nodes synchronizing a large number of TCP updates in a highly scalable environment is solved, achieving faster and more resources The synchronous process of efficiency.

CN114884971BActive Publication Date: 2025-02-14HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202110322350.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-01-22
Filing Date
2021-03-25
Publication Date
2025-02-14
Estimated Expiration
2041-03-25

AI Technical Summary

Technical Problem

In highly scalable environments, network nodes need to quickly synchronize large numbers of TCP updates, which leads to frequent operations of memory allocation and release, increasing load, and many updates become less important when transmitted, wasting computing and storage resources.

Method used

Detect changes to objects replicated across the primary and standby nodes on the primary node, modify the status update message to interpret these changes, check the status flag to determine that the message is ready for transmission, and then transfer the message to the standby node.

Benefits of technology

By reducing queue size and optimizing transmission of state updates, the primary and standby nodes can synchronize object updates more quickly, reducing transmission and reception loads, and reducing memory usage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114884971B_ABST
    Figure CN114884971B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to devices, systems, and methods for synchronizing replicated objects across network nodes. The disclosed methods may include: (1) detecting changes made to objects replicated across a master node and a backup node within a network at a master node within a network; (2) modifying a status update message to the backup node to account for changes made to the object on the master node; (3) checking a status flag of the status update message to the backup node; (4) determining that the status update message is ready to be transmitted to the backup node based at least in part on the status flag of the status update message; and then, in response to determining that the status update message is ready to be transmitted, (5) transmitting the status update message to the backup node to support replication of the changes to the object on the backup node. Various other devices, systems, and methods are also disclosed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure are directed to other apparatuses, systems, and methods for synchronizing replicated objects across network nodes in a highly scaled environment. Background Art

[0002] The network typically includes network nodes that provide services and / or traffic forwarding with high availability. In order to achieve availability for such services and / or traffic forwarding, some of these network nodes may need to include, provide and / or share a set of replicated objects with each other. In addition, some of these network nodes may need to update and / or synchronize the status of such replicated objects with respect to each other.

[0003] In some examples, the network node can support and / or provide the high availability of a network socket with certain parameters. In this example, a network node in these network nodes can actively support the network socket and / or change one or more parameters in the parameters of the network socket. In traditional synchronization techniques, the network node can generate 100 parameter updates for each network socket per second. For example, the network node can actively support 30,000 border gateway protocols (BGP) connections. In this example, each BGP connection in these 30,000 BGP connections can cause 100 transmission control protocols (TCP) updates per second and / or make 100 transmission control protocols (TCP) updates necessary. Therefore, in traditional synchronization techniques, the network node can be responsible for generating and / or transmitting 3,000,000 TCP updates per second.

[0004] Unfortunately, the network node may need to allocate memory and release memory subsequently for each of the 3,000,000 TCP updates very quickly, thereby bringing a heavy burden and / or load. In addition, when many of these TCP updates are actually transmitted by the network node, they may no longer be so important. For example, even before the TCP update carrying the earlier changes to such parameters has been transmitted, the network node may also change one or more parameters of the BGP connection. In this example, the network node may queue these TCP updates in chronological order for transmission, but the last TCP update for a given BGP connection may carry the most relevant and / or latest parameter state. Therefore, many of the TCP updates that cause the heavy burden and / or load brought to the network node may not be so important when transmitted, thereby potentially wasting the computing resources and / or memory resources of the network node.

[0005] Accordingly, the present disclosure identifies and addresses the need for other apparatus, systems, and methods for synchronizing replicated objects across network nodes in a highly scaled environment. Summary of the invention

[0006] As will be described in greater detail below, the present disclosure generally relates to apparatus, systems, and methods for synchronizing replicated objects across network nodes in a highly scaled environment. In one example, a method for implementing such a task may include: (1) detecting, at a primary node within a network, changes made to an object replicated across the primary node and a backup node within the network; (2) modifying a status update message to the backup node to account for the changes made to the object on the primary node; (3) checking a status flag of the status update message to the backup node; (4) determining, based at least in part on the status flag of the status update message, that the status update message is ready for transmission to the backup node; and then, in response to determining that the status update message is ready for transmission, (5) transmitting the status update message to the backup node to support replication of the changes to the object on the backup node.

[0007] Similarly, a system implementing the method identified above may include: a physical processor configured to execute various modules stored in a memory on a network node within a network. In one example, the system may include and / or execute: (1) a detection module that detects changes made to objects replicated across a primary node and a backup node within the network; (2) a message module that modifies a state update message to the backup node to account for the changes made to the object on the primary node; (3) a check module that: (A) checks a status flag of the state update message to the backup node; and (B) determines that the state update message is ready to be transmitted to the backup node based at least in part on the status flag of the state update message; and (4) a transmission module that transmits the state update message to the backup node to support replication of the changes to the object on the backup node.

[0008] Additionally or alternatively, an apparatus implementing the method identified above may include: at least one storage device storing a set of objects replicated across a primary node and a backup node within a network. The apparatus may also include: at least one physical processor communicatively coupled to the storage device. In one example, the physical processor: (1) detects, at the primary node, a change made to one of the objects replicated across the primary node and the backup node within the network; (2) modifies a status update message to the backup node to account for the change made to the one of the objects on the primary node; (3) checks a status flag of the status update message to the backup node; (4) determines, at least in part based on the status flag of the status update message, that the status update message is ready for transmission to the backup node; and then, (5) in response to determining that the status update message is ready for transmission, transmits the status update message to the backup node to support replication of the change to the object on the backup node.

[0009] Features from any of the above embodiments may be used in combination with each other according to the general principles described herein. These and other embodiments, features and advantages will be more fully understood after reading the following detailed description in conjunction with the accompanying drawings and claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The accompanying drawings illustrate several exemplary embodiments and are a part of this specification. Together with the following description, these drawings illustrate and explain various principles of the present disclosure.

[0011] Figure 1 is a block diagram of an exemplary system for synchronizing replicated objects across network nodes in a highly scaled environment.

[0012] Figure 2 is a block diagram of an additional exemplary system for synchronizing replicated objects across network nodes in a highly scaled environment.

[0013] Figure 3 is a block diagram of an exemplary implementation for synchronizing replicated objects across network nodes in a highly scaled environment.

[0014] Figure 4 is a block diagram of an exemplary network node that makes changes to an object that is replicated to another network node.

[0015] Figure 5 is a block diagram of an exemplary network node implementing a queue for transmitting a status update message to another network node.

[0016] Figure 6 is a flow chart of an exemplary method for synchronizing replicated objects across network nodes in a highly scaled environment.

[0017] Figure 7is a flow chart of an exemplary method for synchronizing replicated objects across network nodes in a highly scaled environment.

[0018] Figure 8 is a block diagram of an exemplary computing system that can be implemented and / or used in conjunction with one or more of the embodiments described and / or illustrated herein.

[0019] Throughout the drawings, the same reference numerals and descriptions indicate similar but not necessarily identical elements. Although the exemplary embodiments described herein are susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and will be described in detail herein. However, the exemplary embodiments described herein are not intended to be limited to the specific forms disclosed. On the contrary, the present disclosure encompasses all modifications, equivalents, and alternatives that fall within the scope of the appended claims. DETAILED DESCRIPTION

[0020] The present disclosure describes various devices, systems and methods for synchronizing replicated objects across network nodes in a highly scaled environment. As will be explained in more detail below, embodiments of the present disclosure may set a transmission schedule that limits the number of state update messages exchanged between a master node and a backup node in a highly scaled environment within a specific time period. The transmission schedule may reduce and / or alleviate the burden and / or load on a master node and / or backup node by transmitting state update messages at controlled intervals.

[0021] In order to achieve and / or adapt to the transmission schedule without losing important updates to the replicated objects, the master node and the backup node can maintain and / or keep status flags in conjunction with the state update messages queued for transmission. One or more of these status flags can indicate: whether a particular state update message is currently being processed for transmission; whether a particular state update message is currently undergoing modification and / or update in the queue; and / or whether a particular queued state update message includes outdated information, which indicates previous changes made to the replicated objects. The master node and the backup node can then rely on and / or use these status flags to make certain decisions related to such state update messages. Examples of these decisions include, but are not limited to: postponing the transmission of certain state update messages; postponing the modification of certain state update messages in the queue; replacing outdated information included in certain state update messages in the queue; one or more combinations or variations of them and / or any other suitable decisions.

[0022] These embodiments can enable the master node and the backup node to achieve various advantages and / or improvements over traditional synchronization techniques. For example, the master node and the backup node can be able to operate with a reduced queue size and / or accelerate state updates at least in part due to the reduced queue size. In another example, the master node and the backup node can be able to synchronize replicated object updates faster and / or without delay. In another example, the master node and the backup node can be able to reduce and / or alleviate the burden and / or load involved in transmitting and receiving state update messages. Additionally or alternatively, the master node and the backup node can be able to reduce the amount of memory required to achieve synchronization of updated objects.

[0023] The following will refer to Figures 1 to 5 A detailed description of exemplary apparatus, systems, components, and corresponding implementations for synchronizing replicated objects across network nodes in a highly scaled environment is provided. Figure 6 and Figure 7 A detailed description of a computer-implemented method for synchronizing replicated objects across network nodes in a highly scaled environment is provided. Figure 8 A detailed description of an exemplary computing system for implementing these methods is provided below.

[0024] Figure 1 An exemplary system 100 is shown that supports synchronization of replicated objects across network nodes in a highly scaled environment. Figure 1 As illustrated in FIG. 1 , system 100 may include one or more modules 102 for performing one or more tasks. As will be explained in more detail below, modules 102 may include detection modules 104, message modules 106, inspection modules 108, transmission modules 110, and / or replication modules 112. Although illustrated as separate elements, Figure 1 One or more modules 102 in the embodiment may represent a single module, application, and / or part of an operating system. For example, the detection module 104, the message module 106, and / or the inspection module 108 may be included in the replication module 112 and / or represent a part of the replication module 112. Alternatively, the detection module 104, the message module 106, and / or the inspection module 108 may be included in the transmission module 110 and / or represent a part of the transmission module 110.

[0025] In certain embodiments, Figure 1 The one or more modules 102 in the embodiment may represent one or more software applications or programs that, when executed by a computing device, cause the computing device to perform one or more tasks. For example, and as will be described in more detail below, the one or more modules 102 may represent modules stored and configured to run on one or more computing devices, such as, for example, a computer. Figure 2 The devices illustrated in FIG. 2 (eg, network nodes 206, 210(1)-201(N) and 212(1)-212(N) and / or computing devices 202 and 208), Figure 3 The devices shown in FIG. 1 (e.g., network nodes 206 and 210 (1)), Figure 4 and Figure 5 The device shown in (e.g., network node 206) and / or Figure 8 The device illustrated in (eg, computing system 800 ). Figure 1 The one or more modules 102 in may also represent all or part of one or more special-purpose computers configured to perform one or more tasks.

[0026] As in Figure 1 As illustrated in , the exemplary system 100 may also include one or more memory devices, such as memory 140. Memory 140 generally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and / or computer-readable instructions. In one example, memory 140 may store, load, and / or maintain one or more modules 102. Examples of memory 140 include, but are not limited to, random access memory (RAM), read-only memory (ROM), flash memory, hard disk drive (HDD), solid-state drive (SSD), optical drive, cache memory, variations or combinations of one or more of them, and / or any other suitable storage memory.

[0027] As in Figure 1 As illustrated in , the exemplary system 100 may also include one or more physical processors, such as physical processor 130. Physical processor 130 generally represents a hardware-implemented processing device of any type or form capable of interpreting and / or executing computer-readable instructions. In one example, physical processor 130 may access and / or modify one or more modules 102 stored in memory 140. Additionally or alternatively, physical processor 130 may execute one or more modules 102 to support synchronization of replicated objects across network nodes in a highly scaled environment. Examples of physical processor 130 include, but are not limited to, a central processing unit (CPU), a microprocessor, a microcontroller, a field programmable gate array (FPGA) implementing a soft-core processor, an application-specific integrated circuit (ASIC), a portion of one or more of them, a variation or combination of one or more of them, and / or any other suitable physical processor.

[0028] As in Figure 1As illustrated in , exemplary system 100 may also include one or more replicated objects, such as replicated object 120. In some examples, replicated object 120 may respectively constitute and / or represent any type or form of data structure, data portion and / or formatted data unit that is replicated, stored and / or reproduced across multiple computing devices. In such an example, replicated object 120 may include and / or represent objects 122(1) to 122(N) that have been replicated across a group of computing devices. In one example, one or more of objects 122(1) to 122(N) may include and / or represent a network socket (e.g., a TCP socket) that is replicated across multiple network nodes for high availability and / or backup purposes. In this example, the network socket may be used as and / or act as an endpoint for sending and / or receiving communications over a network.

[0029] Additional examples of objects 122(1)-122(N) include, but are not limited to, data representations of and / or references to: a physical device or interface (such as an "ifd" object), a logical device or interface (such as an "ifl" object), a next hop and / or route (such as an IPv4 route or an IPv6 route), a function, a variable, a data structure, a primitive type, a record, a routing table, a forwarding table, a buffer, a host cache entry, a memory address, a network address, state data, a parameter, variations or combinations of one or more of them, and / or any other suitable data object.

[0030] As in Figure 1 As illustrated in , the exemplary system 100 may additionally include one or more state update messages, such as state update message 124. In some examples, the state update message 124 may respectively constitute and / or represent any type or form of message, signal and / or communication that supports updating the state of one or more objects replicated on the remote node. In such an example, the state update message 124 may include and / or represent state update messages 126(1) to 126(N) generated and / or transmitted by local nodes within the network. In one example, one or more state update messages 124 may include and / or represent TCP messages or updates. Additionally or alternatively, one or more state update messages 124 may include and / or represent BGP messages or updates.

[0031] An apparatus for synchronizing replicated objects across network nodes in a highly scaled environment may include all or part of the exemplary system 100. In some examples, Figure 1 The system in the embodiment can be implemented in various ways. For example, all or part of the exemplary system 100 can represent Figure 2 As shown in the exemplary system 200 of Figure 2 As shown in , system 200 may include network 204 supporting communications between network node 206 , network nodes 210 ( 1 )- 210 (N), network nodes 212 ( 1 )- 212 (N), computing device 202 , and / or computing device 208 .

[0032] As in Figure 2 , network 204 may include and / or represent various network devices and / or nodes that form and / or establish communication paths and / or communication segments. For example, network 204 may include network node 206 that forwards traffic from computing device 202 along one or more active paths toward computing device 208. In this example, an active path may include and / or represent network nodes 210(1)-210(N), while another active path may include and / or represent network nodes 212(1)-212(N).

[0033] In some embodiments, one or more of the network nodes 206, 210(1)-210(N), and 212(1)-212(N) may include and / or represent an instance of the memory 140 and / or an instance of the physical processor 130. Additionally or alternatively, one or more of the network nodes 206, 210(1)-210(N), and 212(1)-212(N) may generate, transmit, and / or receive one or more status update messages 124.

[0034] In some embodiments, one or more of computing devices 202 and 208 may include and / or represent an instance of memory 140 and / or an instance of physical processor 130. Additionally or alternatively, one or more of computing devices 202 and 208 may generate, transmit and / or receive one or more status update messages 124.

[0035] In some examples, and as will be described in greater detail below, one or more modules 102 may cause network node 206 to: (1) detect changes made to object 122(1) replicated across network node 206 and network node 210(1) within network 204; (2) modify a status update message 126(1) to a backup node to account for the changes made to object 122(1) on network node 210(1); (3) check a status flag of status update message 126(1) to network node 210(1); (4) determine, based at least in part on the status flag of status update message 126(1), that status update message 126(1) is ready for transmission to network node 210(1); and then, in response to determining that status update message 126(1) is ready for transmission, (5) transmit status update message 126(1) to network node 210(1) to support replication of the changes to object 122(1) on network node 210(1).

[0036] Computing devices 202 and 208 and network nodes 206, 210(1) to 210(N), and 212(1) to 212(N) may generally represent any type or form of physical computing device capable of reading computer-executable instructions and / or processing network traffic, respectively. In one example, one or more of computing devices 202 and 208 and / or network nodes 206, 210(1) to 210(N), and 212(1) to 212(N) may include and / or represent a router (such as a transit label switching router, a label edge router, a provider edge router, a hub router, a branch router, an autonomous system boundary router, and / or a regional boundary router). Additional examples of computing devices 202 and 208 and / or network nodes 206, 210(1)-210(N), and 212(1)-212(N) include, but are not limited to, switches, hubs, modems, bridges, repeaters, gateways (such as broadband network gateways (BNGs), multiplexers, network adapters, network interfaces, line cards, collectors, client devices, laptops, tablet computers, desktop computers, servers, cellular phones, personal digital assistants (PDAs), multimedia players, embedded systems, wearable devices, game consoles, portions of one or more of them, variations or combinations of one or more of them, and / or any other suitable devices.

[0037] Network 204 generally represents any medium and / or architecture capable of supporting communications and / or data transfer. In one example, network 204 may include any or all of computing devices 202 and 208 and / or network nodes 206, 210(1)-210(N), and 212(1)-212(N), even though some of these devices are illustrated as being in Figure 2 204. Additionally or alternatively, network 204 may include other devices that support communication between computing devices 202 and 208 and / or network nodes 206, 210(1) to 210(N), and 212(1) to 212(N). Network 204 may support communication or data transfer using wireless and / or wired connections. Examples of network 204 include, but are not limited to, an intranet, an access network, a layer 2 network, a layer 3 network, a multi-protocol label switching (MPLS) network, an Internet Protocol (IP) network, a heterogeneous network (e.g., a layer 2, layer 3, IP, and / or MPLS network), a wide area network (WAN), a local area network (LAN), a personal area network (PAN), the Internet, power line communication (PLC), a cellular network (e.g., a global system for mobile communications (GSM) network), portions of one or more of them, variations or combinations of one or more of them, and / or any other suitable network.

[0038] Figure 7 is a flow chart of an exemplary computer-implemented method 700 for synchronizing replicated objects across network nodes in a highly scaled environment. Figure 7 The steps shown in can be performed by any suitable computer executable code and / or computing system, including Figure 1 System 100 in Figure 2 System 200, Figure 3 System 300, Figure 8 In the system 800 and / or one or more variations or combinations thereof. Additionally, in Figure 7 The steps shown in can be Figure 1 System 100 in Figure 2 System 200, Figure 3 System 300, Figure 8 Any suitable node, device and / or component included in the system 800, etc. is executed. In one example, Figure 7 Each of the steps shown in may represent an algorithm whose structure includes and / or is represented by a plurality of sub-steps, examples of which are provided in more detail below.

[0039] As in Figure 7As illustrated in , in step 710, one or more of the systems described herein may detect changes made to an object replicated across a primary node and a backup node within a network. For example, as part of network node 206, detection module 104 may detect changes made to object 122(1) replicated across network node 206 and network node 210(1) within network 204. In this example, object 122(1) may be replicated across network nodes 206 and 210(1). In one example, network node 206 may constitute and / or represent a primary node that actively utilizes object 122(1) and / or is responsible for supporting object 122(1). Additionally or alternatively, network node 210(1) may constitute and / or represent a backup node that replicates object 122(1) and / or is responsible for backing up object 122(1).

[0040] In one example, object 122(1) may include and / or represent a network socket (e.g., a TCP socket) that is replicated across multiple network nodes 206 and 210(1) for high availability and / or backup purposes. In such an example, the network socket may be used and / or serve as an endpoint for sending and / or receiving communications over network 204.

[0041] In some examples, the changes made to object 122(1) may include and / or represent updated parameters for object 122(1). For example, the changes made to object 122(1) may include and / or represent new states of one or more "snd.nxt" parameters, "rcv.nxt" parameters, window size parameters, "snd.una" parameters, socket buffer parameters, peer "ACK" parameters, etc. Examples of changes made to object 122(1) include, but are not limited to, changes made to a sequence number of a first byte of data exchanged between a set of computing devices involved in a communication session, changes made to a sequence number of a next byte of data to be exchanged between a set of computing devices involved in a communication session, changes made to a window size for a communication session involving a set of computing devices, changes made to a congestion window for a communication session involving a set of computing devices, combinations or variations of one or more thereof, and / or any other suitable changes.

[0042] The systems described herein may perform step 710 in various manners and / or in various contexts. In some examples, detection module 104 may monitor network node 206 for changes made to any object that is replicated to the remote node. For example, detection module 104 may monitor a network socket (e.g., a TCP socket) implemented on network node 206 for any events indicating changes made to one or more parameters of the network socket. When monitoring the network socket in this manner, detection module 104 may identify and / or detect events indicating changes made to the network socket.

[0043] Additionally or alternatively, the detection module 104 can monitor a network stack (e.g., an Open Systems Interconnection (OSI) model) implemented on the network node 206 for changes made to any object that is replicated to the remote node. For example, the detection module 104 can monitor for any changes made to the replicated object 120. Figure 4 When monitoring the network stack 402 in this manner, the detection module 104 can identify and / or detect Figure 4 422 that is traversed and / or passes through the network stack 402. In this example, the changed object 422 may include and / or represent updates and / or modifications made to a replicated object 120.

[0044] Back to Figure 7 In step 720, one or more of the systems described herein may modify the status update message to the standby node to account for the changes made to the object on the primary node. Figure 2 As part of network node 206 in FIG. 1 , message module 106 may modify state update message 126(1) to network node 210(1) to account for changes made to object 122(1) on network node 206. In this example, state update message 126(1) may enable updating the state of object 122(1) on network node 210(1) to reflect the changed state of object 122(1) on network node 206. Thus, state update message 126(1) may enable network nodes 206 and 210(1) to synchronize the state of object 122(1) with respect to each other.

[0045] The systems described herein may perform step 720 in various manners and / or in various contexts. In some examples, message module 106 may insert information representing changes made to object 122(1) on network node 206 into state update message 126(1). For example, inspection module 108 may examine and / or check a state flag of state update message 126(1). In one example, inspection module 108 may determine, based at least in part on the state flag, that state update message 126(1) includes outdated information representing a previous change made to object 122(1) on network node 206. The previous change may not have been reflected and / or propagated to object 122(1) as replicated on network node 206. In response to determining that state update message 126(1) includes such outdated information, message module 106 may replace, supersede and / or substitute the outdated information with updated information representing the changes made to object 122(1).

[0046] In another example, inspection module 108 may determine, based at least in part on the status flag, that status update message 126(1) does not include any information indicative of previous changes made to object 122(1) on network node 206. In response to determining that status update message 126(1) does not include any such information, message module 106 may insert information indicative of changes made to object 122(1) on network node 206 into status update message 126(1).

[0047] Return to Figure 7 In step 730, one or more of the systems described herein may check a status flag of a status update message to a standby node. Figure 2 As part of the network node 206 in the state update message 126 (1), the inspection module 108 can inspect the state flag of the state update message 126 (1) to the network node 210 (1). In this example, the state flag can include and / or represent the metadata portion and / or the header portion associated with the state update message 126 (1).

[0048] The systems described herein may perform step 730 in various ways and / or in various contexts. In some examples, check module 108 may search status update message 126(1) for any status flags. In such examples, check module 108 may identify, locate, and / or find one or more status flags during the search. In one embodiment, such status flags may each include and / or represent any portion of data (e.g., a bit of data, a byte of data, etc.) and / or a data structure associated with status update message 126(1).

[0049] In one example, a "processing" status flag of status update message 126(1) may indicate and / or predict whether status update message 126(1) is currently undergoing processing for transmission and / or has been written via a corresponding communication channel. In this example, if the "processing" status flag is set, network node 206 may prevent and / or prohibit transmission of any subsequent updates to status update message 126(1). Therefore, network node 206 may allow and / or support transmission of such updates only after the "processing" status flag is cleared.

[0050] In another example, an "updated" status flag of status update message 126(1) may indicate and / or predict whether status update message 126(1) is currently undergoing any kind of update and / or modification in a corresponding queue while awaiting transmission. In this example, network node 206 may prevent and / or inhibit processing of any subsequent updates to status update message 126(1) that become available while the "updated" status flag is set. Thus, network node 206 may allow and / or support processing of such updates only after the "updated" status flag is cleared.

[0051] In another example, a "queued" status flag of a status update message 126(1) may indicate and / or predict whether the status update message 126(1) has a status update scheduled for transmission on a corresponding communication channel and / or includes outdated information representing a previous change made to the replicated object. In this example, the network node 206 may replace, supersede, and / or substitute for the particular outdated update information queued for transmission while the "queued" status flag is set (if any subsequent update to the status update message 126(1) becomes available). Alternatively, if the "queued" status flag is cleared, the network node 206 may simply insert the current status update information into the status update message 126(1).

[0052] Return to Figure 7 In step 740, one or more of the systems described herein may determine that the status update message is ready for transmission to the standby node based at least in part on the status flag of the status update message. Figure 2As part of the network node 206 in the queue, the inspection module 108 can determine that the status update message 126(1) is ready for transmission to the network node 210(1) based at least in part on a status flag of the status update message 126(1). In one example, the status flag can constitute and / or represent a "processing" status flag that indicates whether the status update message 126(1) is currently undergoing processing for transmission and / or has been written via a corresponding communication channel. If cleared, the "processing" status flag can indicate that the status update message 126(1) is ready and / or available for transmission when it reaches the appropriate position in the queue. If set, the "processing" status flag can indicate that the status update message 126(1) is not yet ready for transmission and / or is not yet available for transmission when it reaches the appropriate position in the queue.

[0053] The systems described herein may perform step 740 in various manners and / or in various contexts. In some examples, inspection module 108 may identify and / or detect that a “processing” status flag of status update message 126(1) is currently cleared. In such examples, inspection module 108 may determine that status update message 126(1) is ready and / or available for transmission to network node 210(1) at least in part due to the “processing” status flag being currently cleared.

[0054] In other examples, the inspection module 108 may identify and / or detect that the “in process” status flag of the status update message 126(1) is currently set. In such examples, the inspection module 108 may determine that the status update message 126(1) is not yet ready for transmission to the network node 210(1) and / or is not yet available for transmission to the network node 210(1) at least in part due to the “in process” status flag being currently set. Accordingly, the inspection module 108 may cause and / or direct the transmission module 110 and / or the network node 206 to postpone and / or suspend transmission of the status update message 126(1) until the “in process” status flag is cleared. In one example, after postponing transmission of the status update message 126(1), the inspection module 108 may subsequently determine that the status update message 126(1) is now ready and / or available for transmission to the network node 210(1) at least in part due to the “in process” status flag being cleared. In this example, the inspection module 108 may notify and / or inform the transmission module 110 and / or the network node 206 that the “in process” status flag has been cleared.

[0055] In some examples, inspection module 108 may identify and / or detect that an “updated” status flag of status update message 126(1) is currently cleared. In such examples, inspection module 108 may determine that status update message 126(1) is ready and / or available to be modified in the corresponding queue at least in part because the “updated” status flag is currently cleared.

[0056] In other examples, checking module 108 may identify and / or detect that an “updated” status flag of state update message 126(1) is currently set. In such examples, checking module 108 may determine that state update message 126(1) is not yet ready to be modified and / or is not yet available to be modified due, at least in part, to the “updated” status flag being currently set. Accordingly, checking module 108 may cause and / or direct message module 106, replication module 112, and / or network node 206 to postpone and / or suspend modification of state update message 126(1) until the “updated” status flag is cleared.

[0057] In one example, after deferring modification of the status update message 126(1), the inspection module 108 may subsequently determine that the status update message 126(1) is now ready and / or available for modification due, at least in part, to the fact that the "updated" status flag has been cleared. In this example, the inspection module 108 may notify and / or inform the message module 106, the replication module 112, and / or the network node 206 that the "updated" status flag has been cleared. In response to the notification and / or information, the message module 106, the replication module 112, and / or the network node 206 may initiate modification of the status update message 126(1) (e.g., as described above in conjunction with Figure 7 One or more of the modifications described in step 720 in ).

[0058] In some examples, inspection module 108 may identify and / or detect that a “queued” status flag of status update message 126(1) is currently cleared. In such examples, inspection module 108 may determine that status update message 126(1) does not yet include any information indicating previous changes and / or pending changes to object 122(1) on network node 206, at least in part due to the “queued” status flag being currently cleared. In response to this determination, inspection module 108 may notify and / or inform message module 106, replication module 112, and / or network node 206 that the “queued” status flag is currently cleared. In response to this notification and / or information, message module 106, replication module 112, and / or network node 206 may insert and / or add information indicating changes made to object 122(1) to status update message 126(1).

[0059] In other examples, inspection module 108 may identify and / or detect that a “queued” status flag of status update message 126(1) is currently set. In such examples, inspection module 108 may determine that status update message 126(1) includes some information representing previous changes and / or pending changes to object 122(1) on network node 206, at least in part because the “queued” status flag is currently set. Therefore, the information may be considered out-of-date and / or stale in light of subsequent updates and / or changes made to object 122(1). In response to this determination, inspection module 108 may notify and / or inform message module 106, replication module 112, and / or network node 206 that the “queued” status flag is currently set. In response to the notification and / or information, the message module 106, the replication module 112 and / or the network node 206 may replace, supersede and / or replace the outdated information with new and / or updated information representing subsequent updates and / or changes made to the object 122(1) in the status update message 126(1).

[0060] Figure 5 An exemplary queue 500 implemented on a network node 206 is illustrated. Figure 5 As shown in FIG. 5 , queue 500 may include and / or be loaded with state update messages 126(1), 126(2), 126(3), 126(4), and 126(5). In one example, Figure 5 126(5) are queued such that state update message 126(2) is the next message scheduled for transmission, followed by state update messages 126(3), 126(1), 126(4), and 126(5) in that order. In this example, state update message 126(1) queued for transmission after state update messages 126(2) and 126(3) may include and / or indicate a state flag 322 and / or a change 320 made to an instance of object 122(1) on network node 206.

[0061] In one example, network node 206 may replace, supersede and / or substitute changes 320 made to object 122(1) with newer and / or latest changes made to object 122(1) in status update message 126(1). In this example, network node 206 may be able to transmit status update message 126(1) to network node 210(1) once status flag 322 indicates that status update message 126(1) is ready and / or available for transmission.

[0062] Back to Figure 7In step 750, one or more of the systems described herein may transmit a state update message to the standby node to support replication of changes to the object on the standby node. Figure 2 As part of a network node 206 in the example embodiment, transmission module 110 may transmit a state update message 126(1) to network node 210(1) to support replication of changes to an object 122(1) on network node 210(1). In this example, transmission module 110 may initiate transmission of state update message 126(1) in response to determining that state update message 126(1) is ready and / or available for transmission. State update message 126(1) may include and / or carry information and / or data necessary for network node 210(1) to update object 122(1) to reflect changes made to network node 206.

[0063] The systems described herein may perform step 750 in various manners and / or in various contexts. In some examples, transmission module 110 may send, transmit, and / or forward state update message 126(1) to network node 210(1) or another network node. For example, transmission module 110 may cause and / or direct network node 206 to send, transmit, and / or forward state update message 126(1) to network node 210(1) or another network node. After receiving state update message 126(1), network node 210(1) may be able to replicate and / or reproduce changes made to object 122(1) on network node 206 based at least in part on information and / or data included in state update message 126(1).

[0064] In some examples, transmission module 110 can set a transmission schedule that limits the number of status update messages transmitted by network node 206 within a specific time period. For example, the transmission schedule can limit network node 206 to transmitting a maximum of 30,000 status update messages per second. In this example, the transmission schedule can cause and / or direct network node 206 to transmit a new status update message every approximately 33 microseconds. In one example, transmission module 110 can delay transmission of status update message 126(1) to comply with the transmission schedule. Transmission module 110 can then determine that transmission of status update message 126(1) has been delayed a sufficient amount of time to comply with the transmission schedule.

[0065] Figure 3 An exemplary system 300 including and / or representing network nodes 206 and 210(1) is illustrated. Figure 3, network node 206 may generate and / or transmit state update message 126(1). In one example, state update message 126(1) may include and / or indicate changes 320 made to an instance of object 122(1) on network node 206. In this example, once state flag 322 indicates that state update message 126(1) is ready and / or available for transmission, network node 206 may transmit state update message 126(1) to network node 210(1). Network node 210(1) may then update and / or modify its replicated instance of object 122(1) based at least in part on changes 320 included and / or indicated in state update message 126(1).

[0066] In some examples, both the transmitter and the receiver can be combined as above Figures 1 to 5 as well as Figure 7 The state update message and / or state flag may be used and / or implemented as described. For example, network node 210(1) may receive state update message 126(1) from network node 206. In this example, network node 210(1) may copy and / or reproduce the changes included in state update message 126(1).

[0067] In some examples, as part of the network node 210(1), the message module 106 can modify additional status update messages to the network node 206. In such examples, the additional status update messages can be intended to confirm replication of changes to the instance of the object 122(1) on the network node 210(1). In one example, as part of the network node 210(1), the inspection module 108 can determine that the additional status update message is ready for transmission to the network node 206 based at least in part on the additional status flag of the status update message. In response to the determination, the transmission module 110 can transmit the additional status update message to the master node to support confirmation of replication of changes to the object on the network node 210(1).

[0068] In some examples, the inspection module 108 can identify and / or detect that the "processing" status flag of the additional status update message is currently cleared. In such examples, the inspection module 108 can determine that the additional status update message is ready and / or available for transmission to the network node 206 at least in part because the "processing" status flag is currently cleared.

[0069] In other examples, the inspection module 108 may identify and / or detect that an "in process" status flag of the additional status update message is currently set. In such examples, the inspection module 108 may determine that the additional status update message is not yet ready for transmission to the network node 206 and / or is not yet available for transmission to the network node 206 due, at least in part, to the "in process" status flag being currently set. Therefore, the inspection module 108 may cause and / or direct the transmission module 110 and / or network node 210(1) to postpone and / or suspend transmission of the additional status update message until the "in process" status flag is cleared. In one example, after postponing transmission of the additional status update message, the inspection module 108 may subsequently determine that the additional status update message is now ready and / or available for transmission to the network node 206 due, at least in part, to the "in process" status flag being cleared. In this example, the inspection module 108 may notify and / or inform the transmission module 110 and / or network node 210(1) that the "in process" status flag has been cleared.

[0070] In some examples, the inspection module 108 may identify and / or detect that the "updated" status flag of the additional status update message is currently cleared. In such examples, the inspection module 108 may determine that the additional status update message is ready and / or available for modification in the corresponding queue at least in part because the "updated" status flag is currently cleared.

[0071] In other examples, the checking module 108 may identify and / or detect that an "updated" status flag of the additional status update message is currently set. In such examples, the checking module 108 may determine that the additional status update message is not yet ready to be modified and / or is not yet available to be modified due, at least in part, to the "updated" status flag being currently set. Therefore, the checking module 108 may cause and / or direct the messaging module 106, the replication module 112, and / or the network node 210(1) to postpone and / or suspend modification of the additional status update message until the "updated" status flag is cleared.

[0072] In one example, after deferring modification of the additional status update message, the inspection module 108 may subsequently determine that the additional status update message is now ready and / or available for modification due, at least in part, to the fact that the "updated" status flag has been cleared. In this example, the inspection module 108 may notify and / or inform the message module 106, the replication module 112, and / or the network node 210(1) that the "updated" status flag has been cleared. In response to the notification and / or information, the message module 106, the replication module 112, and / or the network node 206 may initiate modification of the additional status update message (e.g., as described above in conjunction with Figure 7One or more of the modifications described in step 720 in ).

[0073] In some examples, inspection module 108 may identify and / or detect that a "queued" status flag of the additional status update message is currently cleared. In such examples, inspection module 108 may determine that the additional status update message does not yet include any information representing previous changes and / or pending changes to object 122(1) on network node 210(1) at least in part because the "queued" status flag is currently cleared. In response to this determination, inspection module 108 may notify and / or inform message module 106, replication module 112, and / or network node 210(1) that the "queued" status flag is currently cleared. In response to this notification and / or information, message module 106, replication module 112, and / or network node 210(1) may insert and / or add information representing the changes copied to object 122(1) to the additional status update message.

[0074] In other examples, inspection module 108 may identify and / or detect that a "queued" status flag of the additional status update message is currently set. In such examples, inspection module 108 may determine that the additional status update message already includes some information representing previous changes and / or pending changes to network node 210(1) at least in part because the "queued" status flag is currently set. Therefore, the information may be considered out-of-date and / or stale in view of subsequent updates and / or changes that are replicated to object 122(1). In response to this determination, inspection module 108 may notify and / or inform message module 106, replication module 112, and / or network node 210(1) that the "queued" status flag is currently set. In response to the notification and / or information, the messaging module 106, replication module 112 and / or network node 210(1) may replace, supersede and / or substitute the outdated information with new and / or updated information representing subsequent updates and / or changes to the object 122(1) that is replicated in the additional status update message.

[0075] Figure 6 is a flow chart of an additional exemplary computer-implemented method 600 for synchronizing replicated objects across network nodes in a highly scaled environment. Figure 6 The steps shown in can be performed by any suitable computer executable code and / or computing system, including Figure 1 System 100 in Figure 2 System 200, Figure 3 System 300, Figure 8 In the system 800 and / or one or more variations or combinations thereof. Additionally, in Figure 6 The steps shown in can be Figure 1 System 100 in Figure 2 System 200, Figure 3 System 300, Figure 8 Any suitable node, device and / or component included in the system 800, etc. is executed. In one example, Figure 6 Each of the steps shown in may represent an algorithm whose structure includes and / or is represented by a plurality of sub-steps, examples of which are provided in more detail below.

[0076] As in Figure 6 , in step 602, one or more of the systems described herein may receive a changed object via a network stack. For example, as part of the network node 206, the detection module 104 may detect and / or receive the changed object via the network stack. In an example, the changed object may include and / or represent one or more updated parameters of a network socket (e.g., a TCP socket).

[0077] exist Figure 6 In step 604 of the present invention, one or more of the systems described herein may determine whether a "processing" status flag is set in a status update message corresponding to the changed object. For example, as part of the network node 206, the inspection module 108 may inspect the status update message corresponding to the changed object. In this example, the inspection module 108 may determine, based at least in part on the inspection, whether the "processing" status flag is set in the status update message. If the "processing" status flag is set, the inspection module 108 may wait for a few microseconds and then, based on the Figure 6 606 in step 608 to check the "processing" status flag again. However, if the "processing" status flag is cleared and / or not set, the checking module 108 can advance the method 600 to step 610. Figure 6 Step 608 in .

[0078] exist Figure 6 In step 608 of the present disclosure, one or more of the systems described herein may determine whether a "queued" status flag is set in a status update message corresponding to the changed object. For example, the inspection module 108 may determine, based at least in part on the inspection, whether a "queued" status flag is set in the status update message. If the "queued" status flag is set, the message module 106 and / or the replication module 112 may determine whether the "queued" status flag is set in the status update message. Figure 6In step 610 of the state update message, one or more object parameters are updated to account for the changed object. However, if the "processing" status flag is cleared and / or not set, the message module 106 and / or the replication module 112 may update the state update message according to the state update message. Figure 6 In step 612 of the state update message to update one or more object parameters to explain the changed object, and then, the method 600 is advanced to Figure 6 Step 614 in .

[0079] exist Figure 6 In step 614 of the present disclosure, one or more of the systems described herein may determine whether an "updated" status flag is set in a status update message corresponding to the changed object. For example, the checking module 108 may determine, based at least in part on the checking, whether an "updated" status flag is set in the status update message. If the "updated" status flag is set, the checking module 108 may wait for a few microseconds and then, based on the Figure 6 The "updated" status flag is checked again in step 616 of FIG. However, if the "updated" status flag is cleared and / or not set, the transmission module 110 may Figure 6 The state update message is transmitted to the remote network node including and / or storing the replicated copy of the object at step 618 in. The remote network node can then update the replicated copy of the object to reflect the changed object detected on the network node 206 based at least in part on the state update message.

[0080] Figure 8 800 can be implemented and / or used in conjunction with one or more of the embodiments described and / or illustrated herein. In some embodiments, all or a portion of the computing system 800 can be implemented and / or used in conjunction with one or more of the embodiments described and / or illustrated herein, alone or in combination with other elements. Figure 3 One or more of the steps described and / or may be used alone or in combination with other elements to perform the combined Figure 3 All or a portion of computing system 800 may also perform any other steps, methods, or processes described and / or illustrated herein and / or may also be a component for performing and / or implementing any other steps, methods, or processes described and / or illustrated herein.

[0081] The computing system 800 broadly represents any type or form of electrical load, including a single processor or multi-processor computing device or system capable of executing computer-readable instructions. Examples of the computing system 800 include, but are not limited to, workstations, laptops, client-side terminals, servers, distributed computing systems, mobile devices, network switches, network routers (e.g., backbone routers, edge routers, core routers, mobile service routers, broadband routers, etc.), network devices (e.g., network security devices, network control devices, network timing devices, SSL VPN (Secure Sockets Layer Virtual Private Network) devices, etc.), network controllers, gateways (e.g., service gateways, mobile packet gateways, multi-access gateways, security gateways, etc.), and / or any other type or form of computing system or device.

[0082] The computing system 800 may be programmed, configured, and / or otherwise designed to comply with one or more networking protocols. According to certain embodiments, the computing system 800 may be designed to work with one or more layers of the Open Systems Interconnection (OSI) reference model, such as a physical layer protocol, a link layer protocol, a network layer protocol, a transport layer protocol, a session layer protocol, a presentation layer protocol, and / or an application layer protocol. For example, the computing system 800 may include network devices configured according to the following protocols: a Universal Serial Bus (USB) protocol, an Institute of Electrical and Electronics Engineers (IEEE) 1394 protocol, an Ethernet protocol, a T1 protocol, a Synchronous Optical Networking (SONET) protocol, a Synchronous Digital Hierarchy (SDH) protocol, an Integrated Services Digital Network (ISDN) protocol, an Asynchronous Transfer Mode (ATM) protocol, a Point-to-Point Protocol (PPP), a Point-to-Point Protocol over Ethernet (PPPoE), a Point-to-Point Protocol over ATM (PPPoA), a Bluetooth protocol, an IEEE 802.XX protocol, a Frame Relay protocol, a Token Ring protocol, a Spanning Tree Protocol, and / or any other suitable protocol.

[0083] The computing system 800 may include various network components and / or computing components. For example, the computing system 800 may include at least one processor 814 and a system memory 816. The processor 814 generally represents any type or form of processing unit capable of processing data or interpreting and executing instructions. For example, the processor 814 may represent an application specific integrated circuit (ASIC), a system on a chip (e.g., a network processor), a hardware accelerator, a general purpose processor, and / or any other suitable processing element.

[0084] The processor 814 may process data according to one or more of the networking protocols discussed above. For example, the processor 814 may execute or implement a portion of a protocol stack, may process packets, may perform memory operations (e.g., queue packets for later processing), may execute end-user applications, and / or may perform any other processing tasks.

[0085] The system memory 816 generally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and / or other computer-readable instructions. Examples of the system memory 816 include, but are not limited to, random access memory (RAM), read-only memory (ROM), flash memory, or any other suitable memory device. Although not required, in some embodiments, the computing system 800 may include a volatile memory unit (such as, for example, the system memory 816) and a non-volatile storage device (such as, for example, the main storage device 832, as described in detail below). The system memory 816 can be implemented as a shared memory and / or distributed memory in a network device. In addition, the system memory 816 can store packets and / or other information used in networking operations.

[0086] In some embodiments, the exemplary computing system 800 may include one or more components or elements in addition to the processor 814 and the system memory 816. For example, as shown in Figure 8 , computing system 800 may include a memory controller 818, an input / output (I / O) controller 820, and a communication interface 822, each of which may be interconnected via a communication infrastructure 812. Communication infrastructure 812 generally represents any type or form of infrastructure capable of supporting communication between one or more components of a computing device. Examples of communication infrastructure 812 include, but are not limited to, communication buses (such as Serial ATA (SATA), Industry Standard Architecture (ISA), Peripheral Component Interconnect (PCI), PCI Express (PCIe), and / or any other suitable bus) and networks.

[0087] The memory controller 818 generally represents any type or form of device capable of handling memory or data or controlling communications between one or more components of the computing system 800. For example, in some embodiments, the memory controller 818 may control communications between the processor 814, the system memory 816, and the I / O controller 820 via the communication infrastructure 812. In some embodiments, the memory controller 818 may include a direct memory access (DMA) unit that may transfer data (e.g., packets) to or from a link adapter.

[0088] I / O controller 820 generally represents any type or form of device or module capable of coordinating and / or controlling the input and output functions of a computing device. For example, in some embodiments, I / O controller 820 can control or support the transfer of data between one or more elements of computing system 800 (such as processor 814, system memory 816, communication interface 822, and storage interface 830).

[0089] The communication interface 822 broadly represents any type or form of communication device or adapter capable of supporting communication between the exemplary computing system 800 and one or more additional devices. For example, in some embodiments, the communication interface 822 can support communication between the computing system 800 and a private or public network including additional computing systems. Examples of the communication interface 822 include, but are not limited to, a link adapter, a wired network interface (such as a network interface card), a wireless network interface (such as a wireless network interface card), and any other suitable interface. In at least one embodiment, the communication interface 822 can provide a direct connection to a remote server via a direct link to a network (such as the Internet). The communication interface 822 can also provide such a connection indirectly through, for example, a local area network (such as Ethernet), a personal area network, a wide area network, a private network (such as a virtual private network), a telephone network or cable network, a cellular phone connection, a satellite data connection, or any other suitable connection.

[0090] In some embodiments, the communication interface 822 may also represent a host adapter configured to support communication between the computing system 800 and one or more additional network devices or storage devices via an external bus or communication channel. Examples of host adapters include, but are not limited to: a small computer system interface (SCSI) host adapter, a universal serial bus (USB) host adapter, an IEEE 1394 host adapter, an advanced technology attachment (ATA), a parallel ATA (PATA), a serial ATA (SATA) and an external SATA (eSATA) host adapter, a fiber channel interface adapter, an Ethernet adapter, etc. The communication interface 822 may also enable the computing system 800 to participate in distributed computing or remote computing. For example, the communication interface 822 may receive instructions from a remote device or send instructions to a remote device for execution.

[0091] As in Figure 8, the exemplary computing system 800 may also include a primary storage device 832 and / or a backup storage device 834 coupled to the communication infrastructure 812 via a storage interface 830. The storage devices 832 and 834 generally represent any type or form of storage device or medium capable of storing data and / or other computer-readable instructions. For example, the storage devices 832 and 834 may represent a disk drive (e.g., a so-called hard disk drive), a solid-state drive, a floppy disk drive, a tape drive, an optical disk drive, a flash drive, etc. The storage interface 830 generally represents any type or form of interface or device for transferring data between the storage devices 832 and 834 and other components of the computing system 800.

[0092] In some embodiments, storage devices 832 and 834 can be configured to read from and / or write to a removable storage unit configured to store computer software, data, or other computer-readable information. Examples of suitable removable storage units include, but are not limited to, floppy disks, magnetic tapes, optical disks, flash memory devices, and the like. Storage devices 832 and 834 can also include other similar structures or devices for allowing computer software, data, or other computer-readable instructions to be loaded into computing system 800. For example, storage devices 832 and 834 can be configured to read and write software, data, or other computer-readable information. Storage devices 832 and 834 can be part of computing system 800, or can be separate devices accessed through other interface systems.

[0093] Many other devices or subsystems may be connected to the computing system 800. Figure 8 All components and devices illustrated in the components and devices need not be present to practice the embodiments described and / or illustrated herein. The devices and subsystems referenced above may also be configured as described in Figure 8 The computing system 800 may be interconnected in different ways than those shown in . The computing system 800 may also adopt any number of software configurations, firmware configurations, and / or hardware configurations. For example, one or more of the exemplary embodiments disclosed herein may be encoded as a computer program (also referred to as computer software, software applications, computer-readable instructions, or computer control logic) on a computer-readable medium. The term "computer-readable medium" generally refers to any form of device, carrier, or medium capable of storing or carrying computer-readable instructions. Examples of computer-readable media include, but are not limited to, transmission type media (such as carrier waves) and non-transient type media (such as magnetic storage media (such as hard disk drives and floppy disks), optical storage media (such as compact disks (CDs) and digital video disks (DVDs)), electronic storage media (such as solid-state drives and flash memory media), and other distribution systems).

[0094] Although the foregoing disclosure uses specific block diagrams, flow charts, and examples to illustrate various embodiments, each block diagram component, flow chart step, operation, and / or component described and / or illustrated herein may be implemented individually and / or collectively using a wide range of hardware configurations, software configurations, or firmware configurations (or any combination thereof). Additionally, any disclosure of components included in other components should be considered exemplary in nature, as many other architectures may be implemented to achieve the same functionality.

[0095] In some examples, Figure 1 All or a portion of the system 100 in the embodiment may represent a portion of a cloud computing environment or a network-based environment. Cloud computing environments and network-based environments may provide various services and applications via the Internet. These cloud computing services and network-based services (e.g., software as a service, platform as a service, infrastructure as a service, etc.) may be accessible through a web browser or other remote interface. The various functions described herein may also provide network switching capabilities, gateway access capabilities, network security functions, content caching and delivery services for the network, network control services, and / or any other networking functionality.

[0096] Additionally, one or more of the modules described herein may transform data, physical devices, and / or representations of physical devices from one form to another. Additionally or alternatively, one or more of the modules described herein may transform a processor, volatile memory, non-volatile memory, and / or any other portion of a physical computing device from one form to another by: executing on a computing device; storing data on a computing device and / or otherwise interacting with a computing device.

[0097] The process parameters and order of the steps described and / or illustrated herein are given by way of example only and may be changed as needed. For example, although the steps illustrated and / or described herein may be shown or discussed in a particular order, these steps do not necessarily need to be performed in the illustrated or discussed order. The various exemplary methods described and / or illustrated herein may also omit one or more of the steps described or illustrated herein or include additional steps in addition to those disclosed.

[0098] The foregoing description has been provided to enable others skilled in the art to best utilize the various aspects of the exemplary embodiments disclosed herein. This exemplary description is not intended to be exhaustive or limited to any precise form disclosed. Many modifications and variations are possible without departing from the spirit and scope of the present disclosure. The embodiments disclosed herein should be considered in all respects to be illustrative and not restrictive. In determining the scope of the present disclosure, reference should be made to the appended claims and their equivalents.

[0099] Unless otherwise noted, the terms "connected to" and "coupled to" (and their derivatives) as used in this specification and claims should be interpreted as allowing both direct and indirect (i.e., via other elements or components) connections. Additionally, the terms "a" or "an" as used in this specification and claims should be interpreted as meaning "at least one of..." Finally, for ease of use, the terms "including" and "having" (and their derivatives) as used in this specification and claims are interchangeable with the word "comprising" and have the same meaning as the word "comprising".

Claims

1. A method for communication, comprising: detecting, at a primary node within a network, changes made to objects replicated across the primary node and backup nodes within the network; modifying a status update message to the standby node to account for the changes made to the object on the primary node; checking a status flag included in the status update message to the standby node, the status flag indicating whether the status update message is currently undergoing processing; determining, based at least in part on the status flag of the status update message, that the status update message is ready for transmission to the standby node; as well as In response to determining that the status update message is ready for transmission, the status update message is transmitted to the standby node to support replication of the change to the object on the standby node.

2. The method according to claim 1, further comprising: determining, based at least in part on the status flag of the status update message, that the status update message is not ready for transmission to the standby node; as well as The transmission of the status update message is deferred until the status flag indicates that the status update message is ready for transmission to the standby node.

3. The method of claim 2, wherein determining that the status update message is ready for transmission comprises: After deferring the transmission of the status update message, it is determined that the status update message is ready for transmission.

4. The method according to claim 1, further comprising: determining, based at least in part on the status flag of the status update message, that the status update message is not ready to be modified; as well as The modification of the status update message is deferred until the status flag indicates that the status update message is ready to be modified.

5. The method according to claim 4, further comprising: after deferring said modification of said status update message, determining that said status update message is ready to be modified; and Wherein modifying the status update message comprises: initiating the modification of the status update message in response to determining that the status update message is ready to be modified.

6. The method according to claim 1, further comprising: determining, based at least in part on the state flag of the state update message, that the state update message includes outdated information, the outdated information representing a previous change made to the object on the master node; as well as In response to determining that the status update message includes the outdated information, the outdated information is replaced with updated information for the status update message, the updated information representing the changes made to the object.

7. The method according to claim 1, further comprising: determining, based at least in part on the state flag of the state update message, that the state update message does not include any information indicative of a previous change made to the object on the primary node; as well as In response to determining that the status update message does not include any information representing a previous change made to the object on the primary node, information representing the change made to the object on the primary node is inserted into the status update message.

8. The method of claim 1 , wherein detecting the change made to the object comprises: monitoring the network socket on the master node for events indicative of changes made to one or more parameters of the network socket; as well as While monitoring the network socket, an event indicative of the change made to the one or more parameters of the network socket is detected.

9. The method according to claim 1, wherein: The object comprises a network socket replicated across the primary node and the backup node; and The changes made to the object include at least one of the following: A change made to a sequence number of a first byte of data exchanged between a set of computing devices involved in a communication session; A change made to a sequence number of a next byte of data to be exchanged between a set of computing devices involved in a communication session; Changes made to a window size for a communication session involving a group of computing devices; and A change made to a congestion window for a communication session involving a group of computing devices.

10. The method according to claim 1, further comprising: setting a transmission schedule that limits the number of status update messages transmitted by the master node within a specific time period; and Wherein determining that the status update message is ready for transmission comprises: delaying said transmission of said status update message; as well as It is determined that the transmission of the status update message has been delayed a sufficient amount of time to comply with the transmission schedule.

11. The method according to claim 1, further comprising: Receiving, on the standby node, the status update message transmitted by the master node; replicating the changes to the object on the standby node; modifying an additional status update message to the primary node to confirm the replication of the change to the object on the standby node; checking an additional status flag of the additional status update message to the master node; determining, based at least in part on the additional status flag of the status update message, that the additional status update message is ready for transmission to the master node; as well as In response to determining that the additional status update message is ready for transmission, the additional status update message is transmitted to the primary node to support confirmation of the replication of the change to the object on the standby node.

12. The method according to claim 11, further comprising: determining, based at least in part on the status flag of the additional status update message, that the additional status update message is not yet ready for transmission to the master node; as well as The transmission of the additional status update message is deferred until the additional status flag indicates that the additional status update message is ready for transmission to the master node.

13. The method of claim 12, wherein determining that the additional status update message is ready for transmission comprises: After deferring the transmission of the additional status update message, it is determined that the additional status update message is ready for transmission.

14. A system for communication, comprising: a detection module, stored in a memory on a primary node within a network, that detects changes made to objects replicated across the primary node and backup nodes within the network; a message module, stored in a memory on the primary node, that modifies a status update message to the standby node to account for the changes made to the object on the primary node; Check modules, stored in memory on the master node: checking a status flag included in the status update message to the standby node, the status flag indicating whether the status update message is currently undergoing processing; as well as determining, based at least in part on the status flag of the status update message, that the status update message is ready for transmission to the standby node; as well as a transmission module, stored in a memory on the primary node, transmitting the state update message to the standby node to support replication of the change to the object on the standby node; as well as At least one physical processor executes the detection module, the message module, the inspection module, and the transmission module.

15. An apparatus for communication, comprising: at least one storage device storing a set of objects replicated across the primary node and the backup node within the network; as well as at least one physical processor communicatively coupled to the storage device, wherein the physical processor: detecting, at the primary node, a change made to one of the objects replicated across the primary node and the backup node within the network; modifying a status update message to the standby node to account for the change made to the one of the objects on the primary node; checking a status flag included in the status update message to the standby node, the status flag indicating whether the status update message is currently undergoing processing; determining, based at least in part on the status flag of the status update message, that the status update message is ready for transmission to the standby node; as well as In response to determining that the status update message is ready for transmission, the status update message is transmitted to the standby node to support replication of the change to the one of the objects on the standby node.