Claims
- 1. A system for managing multiple rate guaranteed data stream requests, comprising:
an admission controller configured to negotiate a maximum stream rate with each of a plurality of rate guaranteed requesters; and a disk scheduler, comprising:
a guaranteed rate queue for queuing storage requests from said rate guaranteed requesters; and a bandwidth allocator coupled to said guaranteed rate queue, and further coupled to a storage system, wherein said bandwidth allocator is configured to allocate a predetermined portion of the bandwidth of the storage system to said guaranteed rate queue; wherein the admission controller is further configured to allow an additional rate guaranteed request only if an aggregate of negotiated maximum stream rates for all current rate guaranteed requests and the additional rate guaranteed request does not exceed a calculated throughput, wherein said calculated throughput is based on said predetermined portion.
- 2. The system as recited in claim 1, wherein the disk scheduler further comprises a non-rate-guaranteed queue for queuing requests from non-rate-guaranteed requesters, wherein said bandwidth allocator is configured to allocate bandwidth of the storage system between said guaranteed rate queue and said non-rate-guaranteed queue according to a predetermined ratio.
- 3. The system as recited in claim 2, wherein said bandwidth allocator is configured to migrate requests from said guaranteed rate queue and said non-rate-guaranteed queue to the storage system according to the predetermined ratio, wherein bandwidth not used by said guaranteed rate queue is made available to said non-rate-guaranteed queue.
- 4. The system as recited in claim 2, wherein said bandwidth allocator is configured to migrate requests from said guaranteed rate queue and said non-rate-guaranteed queue to the storage system according to the predetermined ratio, wherein bandwidth not used by said non-rate-guaranteed queue is made available to said guaranteed rate queue.
- 5. The system as recited in claim 1, wherein requests are ordered in said guaranteed rate queue according to a deadline, wherein the deadline for each request indicates a latest time by which that request must be fulfilled to meet a guaranteed maximum stream rate for the corresponding stream.
- 6. The system as recited in claim 1, wherein the disk scheduler is repeated for each of a plurality of storage systems.
- 7. The system as recited in claim 1, further comprising a buffer ring for each stream for one of the rate guaranteed requesters, wherein said buffer ring buffers stream data between an associated rate-guaranteed requester and the disk scheduler.
- 8. The system as recited in claim 7, wherein said buffer ring contains a number of buffers chosen to prevent buffer underrun at a guaranteed maximum stream rate, wherein each buffer is sized to hold one block of data.
- 9. The system as recited in claim 8, wherein the buffers of each buffer ring are consumed by the associated rate guaranteed requester one after another in a circular order, wherein as each buffer is consumed, a request and a deadline for the just consumed buffer is issued to the guaranteed rate queue, wherein the deadline indicates a time by which the request must be fulfilled to prevent underrun.
- 10. The system as recited in claim 9, wherein each deadline is calculated as:
- 11. The system as recited in claim 1, wherein said calculated throughput is further based on a characterized maximum sustainable throughput for the storage system.
- 12. The system as recited in claim 11, wherein said calculated throughput is further based on said characterized maximum sustainable throughput for the storage system decreased by a configurable derate parameter.
- 13. The system as recited in claim 11, wherein said characterized maximum sustainable throughput is characterized by:
creating a synthetic load of data blocks in the storage system; and determining said maximum sustainable throughput using said synthetic load.
- 14. The system as recited in claim 13, wherein said creating a synthetic load comprises allocating blocks randomly in inner and outer storage disk zones, wherein said allocating blocks randomly alternates between the inner and outer zones.
- 15. The system as recited in claim 1, wherein the admission controller is further configured to allow an additional rate guaranteed request only if sufficient memory is available for buffering to be established for the additional rate guaranteed request sufficient to prevent underrun at the negotiated maximum stream rate.
- 16. A method for managing multiple rate guaranteed data stream requests, the method comprising:
negotiating a maximum stream rate with each of a plurality of rate guaranteed requesters allocating a predetermined portion of a storage system's bandwidth to stream requests from said rate guaranteed requesters; and admitting an additional rate guaranteed request only if an aggregate of negotiated maximum stream rates for all current rate guaranteed requests and the additional rate guaranteed request does not exceed a calculated throughput, wherein said calculated throughput is based on said predetermined portion.
- 17. The method as recited in claim 16, further comprising:
allocating a remaining portion of the storage system's bandwidth to requests from non-rate-guaranteed requesters; queuing storage requests from rate guaranteed requesters in a guaranteed rate queue; queuing storage requests from non-rate-guaranteed requesters in a non-rate-guaranteed queue; and selecting either the guaranteed rate queue or the a non-rate-guaranteed queue according to the bandwidth allocation to migrate one of the requests to the storage system.
- 18. The method as recited in claim 17, further comprising dynamically reallocating unused bandwidth for rate guaranteed requests to non-rate-guaranteed requests.
- 19. The method as recited in claim 17, further comprising dynamically reallocating unused bandwidth for non-rate-guaranteed requests to rate guaranteed requests.
- 20. The method as recited in claim 17, further comprising ordering requests in said guaranteed rate queue according to a deadline, wherein the deadline for each requests indicates a latest time by which that request must be fulfilled to meet a guaranteed maximum stream rate for a corresponding multimedia data stream.
- 21. The method as recited in claim 16, further comprising establishing a buffer ring for each data stream from one of the rate guaranteed requesters, said buffer ring buffering stream data between an associated rate-guaranteed requester and the storage system.
- 22. The method as recited in claim 21, further comprising sizing said buffer ring to contain a number of buffers chosen to prevent buffer underrun at a guaranteed maximum stream rate, wherein each buffer is sized to hold one block of multimedia data.
- 23. The method as recited in claim 22, further comprising:
consuming the buffers of each buffer ring by the associated rate guaranteed requester one after another in a circular order; and as each buffer is consumed, issuing a request and a deadline for the just consumed buffer to a guaranteed rate queue, wherein the guaranteed rate queue queues storage requests from rate guaranteed requesters, wherein the deadline indicates a time by which the request must be fulfilled to prevent underrun.
- 24. The method as recited in claim 23, further comprising calculating each deadline as:
- 25. The method as recited in claim 16, further comprising determining said calculated throughput, wherein said wherein said determining said calculated throughput comprises characterizing a maximum sustainable throughput for the storage system, wherein said calculated throughput is further based on said characterized maximum sustainable throughput.
- 26. The method as recited in claim 25, wherein said determining said calculated throughput comprises basing said calculated throughput on said characterized maximum sustainable throughput decreased by a configurable derate parameter.
- 27. The method as recited in claim 25, wherein said characterizing a maximum sustainable throughput comprises:
creating a synthetic load of data blocks in the storage system; and determining said maximum sustainable throughput using said synthetic load.
- 28. The method as recited in claim 27, wherein said creating a synthetic load comprises allocating blocks randomly in inner and outer storage disk zones, wherein said allocating blocks randomly alternates between the inner and outer zones.
- 29. The method as recited in claim 16, wherein said admitting an additional rate guaranteed request comprises admitting an additional rate guaranteed request only if sufficient memory is available for establishing buffering for the additional rate guaranteed request sufficient to prevent underrun at the negotiated maximum stream rate.
Parent Case Info
[0001] This application is a continuation of U.S. Ser. No. 09/413,043, filed Oct. 6, 1999.
Continuations (1)
|
Number |
Date |
Country |
Parent |
09413043 |
Oct 1999 |
US |
Child |
10787689 |
Feb 2004 |
US |