Patent ID: 7945816

Claim:
A method for transmitting i/o requests on a data channel from a source to a destination, the data channel having a plurality of wavelength channels and a throughput, each wavelength channel having a distinct wavelength, the method comprising: multicasting i/o requests to the destination on each of the plurality of wavelength channels; multicasting data on each of the plurality of wavelength channels; recognizing a failure in one of the plurality of wavelength channels; continuing to transmit the data on another of the plurality of wavelength channels without synchronizing a new channel between the source and the destination, whereby an average latency between the source and the destination does not include a time needed to synchronize a new channel when failure occurs; adjusting the throughput during the multicasting by using buffer credits to determine a capacity of i/o requests that can be communicated between the source and the destination, to produce a consistent throughput; and managing data channel latency by submitting i/o requests to the destination during a predetermined time period associated with the average latency, including managing a size of a mid-span memory cache disposed between the source and the destination based on the average latency and the consistent throughput; determining the predetermined time period; submitting an i/o request to the source and to the destination; submitting additional i/o requests to the source and the destination during the predetermined time period; storing copies of the i/o request and the additional i/o requests in the mid-span memory cache disposed between the source and the destination; continuing submission of additional i/o requests to the source and the destination if an acknowledgement associated with the i/o request is received from the destination; resubmitting the i/o request and the additional i/o requests to the destination if an acknowledgement associated with the i/o request is not received from the destination and an acknowledgement associated with the i/o request is not received from the mid-span memory cache prior to completion of the predetermined time period; and instructing the mid-span memory cache to resubmit the i/o request and the additional i/o requests to the destination if an acknowledgement associated with the i/o request is not received from the destination and an acknowledgement associated with the i/o request is received from the mid-span cache prior to completion of the predetermined time period.