Patent ID: 8275902

Claim:
A method for throttling in a file system, comprising: receiving a first request by a client from an application to write first data to a server across a network, wherein the application is associated with an application bandwidth comprising a rate at which the application writes data to a client storage device; storing the first data in the client storage device using the application bandwidth; queuing a first I/O request to write the first data to the server on an I/O queue; issuing the first I/O request from the I/O queue to the server using a server bandwidth comprising a rate at which I/O requests to write data to the server are issued; receiving an acknowledgment that the first I/O request has been completed by the server; determining a first server acknowledgement rate using the acknowledgment that the first I/O request has been completed by the server; determining a first perceived bandwidth using the application bandwidth, the first server acknowledgement rate, and an amount of available space on the client storage device; resetting the server bandwidth to the perceived bandwidth to obtain a reset server bandwidth; receiving a second request by the client from the application to write second data to the server; storing the second data in the client storage device using the application bandwidth; queuing a second I/O request to write the second data to the server on the I/O queue; and issuing the second I/O request from the I/O queue to the server using the reset server bandwidth.