Patent ID: 7469309

Claim:
In a computer system, a method for making peer-to-peer read requests between a plurality of peer devices, the method comprising: generating a first read request in a requesting one of a plurality of peer devices, the first read request targeting a first target one of the plurality of peer devices, wherein each one of the peer devices has a device-specific high-water mark associated therewith, the device-specific high-water mark for each one of the peer devices being based on a maximum number of outstanding read requests allowed to target that one of the peer devices; determining whether a first number of outstanding read requests by the requesting device to the first target device exceeds a device-specific high-water mark associated with the first target device; blocking the first read request within the requesting device in response to determining that the first number of outstanding read requests exceeds the device-specific high-water mark associated with the first target device, wherein the first read request remains blocked until the first number of outstanding read requests no longer exceeds the device-specific high-water mark associated with the first target device; executing the first read request in response to determining that the first number of outstanding read requests does not exceed the high-water mark associated with the first target device; generating a second read request in the requesting device, the second read request targeting a second target device, wherein the second read request is generated subsequently to generating the first read request; determining whether a second number of outstanding read requests by the requesting device to the second target device exceeds a device-specific high-water mark associated with the second target device; blocking the second read request within the requesting device in response to determining that the second number of outstanding read requests exceeds the device-specific high-water mark associated with the second target device, wherein the second read request remains blocked until the second number of outstanding read requests no longer exceeds the device-specific high-water mark associated with the second target device; and executing the second read request in response to determining that the second number of outstanding read requests does not exceed the device-specific high-water mark associated with the second target device, wherein in the event that the second read request is generated while the first read request is blocked, the second read request is also blocked until the first number of outstanding read requests no longer exceeds the device-specific high-water mark associated with the first target device.