System and method for fault recovery in spray based networks
AssigneeMicrosoft Technology Licensing, LLC
InventorPrashant Ranjan
Life of this patent
Estimating the term…
Abstract
Embodiments of the present disclosure include systems and methods for fault detection and recovery over a network. A value of a set of values is stored in packets transmitted during a data transaction between a source and destination. The value corresponds to ports used by one or more switches in the path between the source and destination. The destination includes the value in an acknowledgement packet. Logic circuits in the source device track packets and corresponding values. When a status indicates a particular packet has not received an acknowledgement, the value for the packet may be removed from the set of values. Particular ports that may be congested or down may be detected and the packets re-routed using the logic circuits in the source device.
Claims20
A circuit comprising:
- a memory;
- a network interface circuit configured to transmit and receive a plurality of packets and a plurality of acknowledgement packets between a source device and a destination device, wherein said circuit is part of the source device;
- and
- a logic circuit configured to:
- store, in the memory, a plurality of values mapping to a plurality of ports of a first switch in which the plurality of packets passes through during transmission to the destination device;
- store a value of the plurality of values in each packet of the plurality of packets, cycling through the plurality of values on successive packets, being transmitted to the destination device, wherein the stored value indicates a port of the plurality of ports through which the respective packet is to pass;
- and
- remove a particular value of the plurality of values stored in the memory based on a status of pending acknowledgement packets, each of the pending acknowledgement packets comprising a payload storing the particular value, wherein the status comprises a count of the pending acknowledgement packets being above a threshold.
A method of recovering from faults in a network comprising:
- storing, in a memory of a source device, a plurality of values mapping to a plurality of ports of a first switch in which a plurality of packets passes through during transmission to a destination device;
- storing, using the source device, a value of the plurality of values in each packet of the plurality of packets, cycling through the plurality of values on successive packets, to be transmitted from the source device to the destination device during a data transmission,
- wherein the stored value indicates a port of the plurality of ports through which the respective packet is to pass;
- transmitting the plurality of packets;
- and
- removing a particular value of the plurality of values stored in the memory based on a status of pending acknowledgement packets, each of the pending acknowledgement packets comprising a payload storing the particular value, wherein the status comprises a count of the pending acknowledgement packets being above a threshold.
A storage device for storing a hardware definition language (HDL) program executable by a computer, the program comprising sets of instructions for:
- storing, in a memory of a source device, a plurality of values mapping to a plurality of ports of a first switch in which a plurality of packets passes through during transmission to a destination device;
- storing, using the source device, a value of the plurality of values in each packet of the plurality of packets, cycling through the plurality of values on successive packets, to be transmitted from the source device to the destination device during a data transmission,
- wherein the stored value indicates a port of the plurality of ports through which the respective packet is to pass;
- transmitting the plurality of packets;
- and
- removing a particular value of the plurality of values stored in the memory based on a status of pending acknowledgement packets, each of the pending acknowledgement packets comprising a payload storing the particular value, wherein the status comprises a count of the pending acknowledgement packets being above a threshold.
Dependencies are inferred from the claim text.