IP Library Granted Patent US 11,757,803
Granted Patent B2
US 11,757,803 · App. 16/779,678 · Granted Sep 12, 2023

High availability application messaging layer

Inventors: Bill Ying Chin (San Jose, CA); Poongovan Ponnavaikko (Santa Clara, CA); Dan N. Retter (Cupertino, CA); Mayur Mahajan (San Francisco, CA)
Assignee: Avago Technologies International Sales Pte. Limited
H04L51/00H04L51/23
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,757,803
App. No.
16/779,678
Granted
Sep 12, 2023
Kind
B2
Abstract

Certain embodiments enable application message delivery to be automatically guaranteed for all failover scenarios through use of a novel infrastructure layer that supports high availability (HA) messaging. The High Availability Application Messaging Layer (HAML) can guarantee delivery of application messages whether a failover occurs at one or both of the source and the intended destination of the message. The HAML may transmit messages to one intended destination, as unicast messaging, or to multiple intended destinations, as multicast messaging. In some embodiments, the HAML may be HA aware, which refers to the awareness of the HAML of the redundancy for all processing entities within a network device to ensure hitless failover at the network device. By moving support for HA messaging from individual applications to the HAML, as a common infrastructure layer across the processing entities, the individual applications do not need to implement additional software to explicitly support HA messaging.

Claims (55)

1. A network device comprising:

a first processing entity configured to operate in a first role, to transmit a message for an intended destination and to block control of an application at the first processing entity in response to transmission of the message, to receive an acknowledgement from the intended destination when the message is received at the intended destination, in response to receipt of the acknowledgement, to transmit a notification to a second processing entity to remove the message stored at the second processing entity, to receive another acknowledgment that the message was received at the second processing entity, and unblock control of the application at the first processing entity in response to receipt of the other acknowledgment; and

the second processing entity configured to operate in a second role, to receive and store the message, to receive the notification, and in response to receipt of the notification, to remove the message stored at the second processing entity,

wherein upon occurrence of a failure event at the first processing entity, the second processing entity is configured to switch to operating in the first role to determine that the second processing entity is a source of the message based on the second processing entity operating in the first role, and to transmit the message to the intended destination, wherein the intended destination is separate from the first and second processing entities.

2. The network device of claim 1 , further comprising: a third processing entity configured to operate in the first role and to receive the message, the third processing entity being the intended destination of the message; and

a fourth processing entity configured to operate in the second role, to receive the message, and to store the message at the fourth processing entity, the fourth processing entity being a peer to the intended destination of the message.

3. The network device of claim 2 , wherein

the first role is an active role, wherein a processing entity operating in the first role is further configured to perform a set of transport-related functions in the active role; and

the second role is a standby role, wherein a processing entity operating in the second role is further configured to not perform the set of transport-related functions in the standby role.

4. The network device of claim 2 , wherein the acknowledgement indicates that the message was received at the third processing entity and at the fourth processing entity.

5. The network device of claim 4 , wherein the fourth processing entity is further configured to switch to operation in the first role from the second role when the third processing entity is no longer operating in the first role, to read the message, and to process the message.

6. The network device of claim 2 , wherein

the third processing entity is further configured to read the message, to process the message, and after processing the message, to transmit a notification to the fourth processing entity to remove the message stored at the fourth processing entity; and

the fourth processing entity is further configured to receive the notification, and in response to receiving the notification, to remove the message stored at the fourth processing entity.

7. The network device of claim 2 , wherein the second processing entity is further configured to switch to operation in the first role from the second role when the first processing entity is no longer operating in the first role, and to transmit the message for the intended destination.

8. The network device of claim 2 , wherein the first processing entity is further configured to receive an error notification indicating that the message was not received at the third processing entity.

9. The network device of claim 2 , wherein

the message is for a plurality of intended destinations; and

the first processing entity is further configured to transmit the message to each intended destination of the plurality of intended destinations, and to transmit the message to each peer of each intended destination of the plurality of intended destinations.

10. A method comprising:

transmitting a message to an intended destination from a first processing entity operating in a first role, the first processing entity being a source of the message, and blocking control at the first processing entity;

receiving the message at a second processing entity operating in a second role, the message stored at the second processing entity;

receiving, by the first processing entity, an acknowledgement when the message was received at the intended destination;

in response to receiving the acknowledgement that the message was received at the intended destination, unblocking control and transmitting a notification to the second processing entity to remove the message stored at the second processing entity;

receiving the notification at the second processing entity;

in response to receiving the notification, removing the message stored at the second processing entity; and

upon occurrence of a failure event at the first processing entity, switching, by the second processing entity, to operating in the first role to determine that the second processing entity is a source of the message based on the second processing entity operating in the first role, and to transmit the message to the intended destination.

11. The method of claim 10 , further comprising:

receiving the message at a third processing entity operating in the first role, the third processing entity being the intended destination of the message; and

receiving the message at a fourth processing entity operating in the second role, the message stored at the fourth processing entity, the fourth processing entity being a peer to the intended destination of the message.

12. The method of claim 11 , wherein

the first role is an active role, wherein a processing entity operating in the first role performs a set of transport-related functions in the active role; and

the second role is a standby role, wherein a processing entity operating in the second role does not perform the set of transport-related functions in the standby role.

13. The method of claim 12 , further comprising:

switching, by the fourth processing entity, to operating in the first role from the second role when the third processing entity is no longer operating in the first role;

reading the message at the fourth processing entity; and processing the message at the fourth processing entity.

14. The method of claim 11 , wherein the acknowledgement indicates that the message was received at the third processing entity and at the fourth processing entity.

15. The method of claim 11 , further comprising:

reading the message at the third processing entity;

processing the message at the third processing entity; and

after processing the message at the third processing entity, transmitting a notification to the fourth processing entity to remove the message stored at the fourth processing entity;

receiving the notification at the fourth processing entity;

and in response to receiving the notification at the fourth processing entity, removing the message stored at the fourth processing entity.

16. The method of claim 11 , further comprising:

switching, by the second processing entity, to operating in the first role from the second role when the first processing entity is no longer operating in the first role; and

transmitting the message for the intended destination from the second processing entity.

17. The method of claim 11 , further comprising receiving at the first processing entity an error notification indicating that the message was not received at the third processing entity.

18. The method of claim 11 , wherein

the message is for a plurality of intended destinations; and

the first processing entity is further configured to transmit the message to each intended destination of the plurality of intended destinations, and to transmit the message to each peer of each intended destination of the plurality of intended destinations.

19. A network device comprising:

a first processing entity configured to operate in a first role, the first processing entity being an intended destination of a message; and

a second processing entity configured to operate in a second role and to receive the message,

wherein upon occurrence of a failure event at the first processing entity, the second processing entity is configured to switch to operating in the first role to determine that the second processing entity is the intended destination based on the second processing entity operating in the first role, and to transmit an acknowledgement of the message as the intended destination, wherein a source of the message corresponds to a third processing entity that is separate from the first and second processing entities, and the third processing entity is configured to unblock control responsive to receipt of the acknowledgment.

20. The network device of claim 19 , wherein the first and second processing entities are further configured to block control by an application.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2023
From: BROCADE COMMUNICATIONS SYSTEMS LLC
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 063706/0518 →
CHANGE OF NAME Recorded May 19, 2023
From: BROCADE COMMUNICATIONS SYTEMS, INC.
To: BROCADE COMMUNICATIONS SYSTEMS LLC
Reel/Frame 063706/0623 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2023
From: CHIN, BILL YING; PONNAVAIKKO, POONGOVAN; RETTER, DAN N.; MAHAJAN, MAYUR
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 063554/0078 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2023
From: BROCADE COMMUNICATIONS SYSTEMS LLC
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 063904/0787 →
Continuity (3)
Continuation 13840540 · Mar 15, 2013
Provisional Application 61704281 · Sep 21, 2012
Related Publication 20200177526A1 · Jun 4, 2020