SYSTEM AND METHOD FOR ADJUSTING PERFORMANCE OF A MEDIA STORAGE BY DECREASING A MAXIMUM THROUGHPUT BY A PRIMARY DERATE PARAMETER TO SPECIFY AVAILABLE & GUARANTEED RATE PARAMETERS AND DETERMINING RING BUFFER SIZES FOR STREAMS
First Claim
1. A method for configuring a multimedia storage system, the method comprising:
- characterizing a maximum sustainable throughput for a multimedia storage system;
decreasing the maximum sustainable throughput by a primary derate parameter to obtain a primary throughput;
determining sizes for buffer units at different multimedia stream rates, wherein during operation each buffer unit is for buffering a multimedia data stream between a multimedia stream requester and the storage system, and wherein said determining is performed according to the primary throughput;
decreasing the primary throughput to obtain a maximum system bandwidth, wherein during operation the maximum system bandwidth sets an upper limit on admission of multimedia stream requesters to the storage system.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for tuning a storage system may include characterizing a maximum sustainable throughput for the storage system. The maximum sustainable throughput may be decreased by a primary derate parameter to obtain a primary throughput. Sizes for buffer units may be determined at different stream rates, where during operation the buffer units buffer a data stream between a stream requester and storage. Buffer unit sizes may be determined by generating stream simulators sufficient to consume the primary throughput and then optimizing the buffer sizes to prevent underruns. This may be repeated at different stream rates to determine a table of buffer sizes. The primary throughput may be decreased by a secondary derate parameter to obtain a maximum system bandwidth which sets an upper limit on admission of streams. When buffer sizes are determined, a prefill margin parameter may be set by which request deadlines must be met. Also, an available rate parameter may be set to proportion available bandwidth between rate-guaranteed streams and non-rate-guaranteed requests. The proportion allocated for rate-guaranteed requests may be used to determine buffer sizes that are able to meet the prefill margin. Another parameter may set the length of a seek reorder queue that orders storage requests according to their physical address. This parameter allows a tradeoff between seek efficiency and variability in service time, which may require larger buffer sizes. Also, the block size by which data is accessed in the storage system may be configured.
-
Citations
37 Claims
-
1. A method for configuring a multimedia storage system, the method comprising:
-
characterizing a maximum sustainable throughput for a multimedia storage system;
decreasing the maximum sustainable throughput by a primary derate parameter to obtain a primary throughput;
determining sizes for buffer units at different multimedia stream rates, wherein during operation each buffer unit is for buffering a multimedia data stream between a multimedia stream requester and the storage system, and wherein said determining is performed according to the primary throughput;
decreasing the primary throughput to obtain a maximum system bandwidth, wherein during operation the maximum system bandwidth sets an upper limit on admission of multimedia stream requesters to the storage system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
creating a synthetic load of data blocks in the storage system, 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; and
determining said maximum sustainable throughput using said synthetic load.
-
-
4. The method as recited in claim 1, wherein during operation, requests to read or write multimedia data from or to the storage system are placed in one or more queues, wherein the length of the queues is determined according to the primary throughput.
-
5. The method as recited in claim 4, wherein the queues are deadline queues, wherein requests are satisfied from the deadline queues according to an earliest deadline, wherein deadlines are calculated for each request to prevent buffer underrun.
-
6. The method as recited in claim 1, wherein said determining sizes for buffer units comprises:
-
generating a number of stream simulators, each at the same stream rate, sufficient to consume the entire primary throughput;
each stream simulator generating stream requests from a model buffer unit;
adjusting the size each model buffer units up or down depending on whether or not an underrun condition occurs; and
repeating said generating stream requests and said adjusting until an optimum buffer unit size is found that just avoids an underrun condition.
-
-
7. The method as recited in claim 6, wherein said determining sizes for buffer units further comprises creating a table of buffer unit sizes for different stream rates by repeating said generating a number of stream simulators, said generating stream requests, said adjusting, and said repeating said generating stream requests, until an optimum buffer unit size is found for each of a plurality of stream rates.
-
8. The method as recited in claim 6, wherein said model buffer unit comprises a ring of buffers consumed by an associated multimedia stream requester one after another in a circular order, said buffer unit size comprises the number of buffers in the ring of buffers.
-
9. The method as recited in claim 8, wherein each buffer in each ring of buffers is equally sized to hold one block size of data, wherein data is accessed in the storage system according to said block size, and wherein said block size is configurable.
-
10. The method as recited in claim 6, wherein said underrun condition occurs when one of said stream requests is not completed to its model buffer unit within a prefill deadline, wherein said prefill deadline is dependent upon the buffer unit size and the stream rate.
-
11. The method as recited in claim 10, wherein said prefill deadline comprises a prefill margin and a buffer deadline, wherein said prefill margin is configurable.
-
12. The method as recited in claim 11, wherein each model buffer unit comprises a ring of N buffers, wherein the buffer deadline is calculated as:
-
13. The method as recited in claim 1, further comprising configuring a block size, wherein multimedia data is accessed in the storage system according to the configured block size.
-
14. The method as recited in claim 13, wherein said determining sizes for buffer units is performed according to the configured block size, wherein each buffer unit comprises a ring of buffers accessed in a circular order, wherein each buffer is configured to store one block size of data.
-
15. The method as recited in claim 1, wherein said determining sizes for buffer units is performed according to a prefill margin, wherein said prefill margin is configurable and specifies a margin to prevent buffer underrun.
-
16. The method as recited in claim 1, further comprising allocating a portion of the primary throughput to rate-guaranteed storage accesses the remaining portion to non-rate-guaranteed storage accesses.
-
17. The method as recited in claim 16, wherein said allocating is performed according to a configurable available rate parameter.
-
18. The method as recited in claim 16, wherein said decreasing the primary throughput comprises decreasing the primary throughput according to the portion allocated to rate-guaranteed storage accesses further decreased by a secondary derate parameter.
-
19. The method as recited in claim 1, wherein said decreasing the primary throughput comprises decreasing the primary throughput according to a secondary derate parameter.
-
20. The method as recited in claim 1, further comprising specifying a seek reorder queue length, wherein during operation all storage requests are ordered in said seek reorder queue in order of the requested physical address.
-
21. The method as recited in claim 20, wherein said determining sizes for buffer units is performed according to the specified seek reorder queue length.
-
22. A method for adjusting performance of a storage system, wherein the storage system includes a buffer ring for each data stream, wherein the buffer ring buffers data between a requester for the stream and one or more storage units, the method comprising:
-
specifying a primary derate parameter;
determining buffer ring sizes for a plurality of different stream rates, wherein said determining comprises adjusting buffer ring sizes to prevent underrun at a simulated load at a maximum throughput of the storage system derated by the primary derate parameter; and
specifying an available rate parameter for allocating a portion of the storage system maximum throughput derated by the primary derate parameter to rate-guaranteed stream and a remaining portion to non-rate-guaranteed streams. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
-
29. A storage system comprising:
-
a plurality of data stream clients, wherein a maximum stream rate is set for each of said plurality of data stream clients;
a plurality of buffer rings, wherein each buffer ring is associated with a different one of said data stream clients and buffers data between its associated data stream client and one or more storage units, wherein each buffer ring is sized according to a predetermined set of buffer ring sizes for a plurality of different maximum stream rates;
a bandwidth allocator configured allocate a portion of storage system bandwidth to rate-guaranteed streams from said plurality of data stream requesters and the remaining portion to non-rate-guaranteed requests, wherein said portion is determined by a configurable available rate parameter; and
wherein the storage system is configured to accept data stream requesters up to a maximum aggregate stream rate. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37)
a configurable primary derate factor for derating a maximum storage system bandwidth; and
said available rate parameter, wherein said maximum aggregate stream rate corresponds to the maximum storage system bandwidth derated by said primary derate parameter and proportioned by said available rate parameter.
-
-
32. The system as recited in claim 29, wherein said maximum aggregate stream rate is set as a maximum storage system bandwidth derated by a configurable primary derate parameter, proportioned according to said available rate parameter, and further derated by a configurable secondary derate parameter.
-
33. The system as recited in claim 32, wherein the system is configured to determine said maximum storage system bandwidth by:
-
creating a synthetic load of data blocks in the one or more storage units, 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; and
determining said maximum storage bandwidth using said synthetic load.
-
-
34. The system as recited in claim 29, wherein each buffer ring size in said predetermined set of buffer ring sizes is calculated to prevent buffer underrun by a configurable prefill margin at one of said plurality of different maximum stream rates.
-
35. The system as recited in claim 29, wherein data is accessed in the storage system according to a configurable block size.
-
36. The system as recited in claim 29, wherein each buffer ring size in said predetermined set of buffer ring sizes is calculated to prevent buffer underrun at one of said plurality of different maximum stream rates, wherein data is transferred between the buffer rings and said one or more storage units according to a configurable block size.
-
37. The system as recited in claim 29, further comprising a seek reorder queue for each said one or more storage units, wherein each seek reorder queue is configured to queue data requests one of the storage units in order of the physical address of the request in the storage unit, wherein the length of the seek reorder queue is determined by a configurable seek reorder queue length parameter.
Specification