File server system and method for scheduling data streams according to a distributed scheduling policy
First Claim
1. In a file server system having multiple data servers connected to distribute data streams over a network, each data server supporting at least one storage device, wherein data files are distributed across the data servers and stored on each of the storage devices, a method comprising the following steps:
- distributing among the data servers a schedule for serving requested ones of the data streams so that individual data servers view different portions of the schedule, the schedule being segmented into slots to which data streams are assigned for coordinating service of the requested data streams, the individual data servers having ownership of a current slot within their respective portions of the schedule;
receiving at a particular data server a request to insert a new data stream into the current slot in the portion of the schedule currently being viewed by the particular data server; and
evaluating at the particular data server whether to insert the new data stream into the current slot or to wait for a subsequent slot in the schedule based upon a distribution criteria indicating whether said insertion into the current slot, in comparison to said waiting for a subsequent slot, would result in a less even distribution of the scheduled data streams within the schedule.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed file server system has multiple data servers connected to stream data files continuously over a network to multiple clients. Each data server supports at least one storage device, such as a disk. Data files are distributed across the data servers so that data blocks of the data files are stored on each of the storage devices. The file server system has a scheduler located at each of the data servers to manage distributed portions of a schedule. Each data server sees a different portion of the schedule, but no one data server sees the whole schedule. The scheduler facilitates service of requested data streams from its corresponding data server according to a schedule portion that is available to the data server. The scheduler determines whether to insert a new data stream into the current slot it presently owns in its schedule portion, or to wait for a subsequent slot in the schedule. The scheduler follows a thrifty policy that attempts to maximize spacing of occupied slots as far apart as possible within the schedule, while minimizing the clustering of occupied slots. The scheduler also factors in a maximum acceptable slippage that dictates the highest number of slots that the scheduler is willing to slip in the schedule before starting the new data stream. The end result is an even distribution of the occupied slots within the schedule that reduces startup latency for late schedule insertion at the expense of slightly prolonging the startup latency of early schedule insertions.
51 Citations
35 Claims
-
1. In a file server system having multiple data servers connected to distribute data streams over a network, each data server supporting at least one storage device, wherein data files are distributed across the data servers and stored on each of the storage devices, a method comprising the following steps:
-
distributing among the data servers a schedule for serving requested ones of the data streams so that individual data servers view different portions of the schedule, the schedule being segmented into slots to which data streams are assigned for coordinating service of the requested data streams, the individual data servers having ownership of a current slot within their respective portions of the schedule;
receiving at a particular data server a request to insert a new data stream into the current slot in the portion of the schedule currently being viewed by the particular data server; and
evaluating at the particular data server whether to insert the new data stream into the current slot or to wait for a subsequent slot in the schedule based upon a distribution criteria indicating whether said insertion into the current slot, in comparison to said waiting for a subsequent slot, would result in a less even distribution of the scheduled data streams within the schedule. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. In a distributed file server system having multiple data servers connected to distribute data streams over a network, each data server supporting at least one storage device, wherein data files are distributed across the data servers and stored on each of the storage devices, wherein a schedule for serving requested ones of the data streams is distributed among the data servers so that that individual data servers view different portions of the schedule, the schedule being segmented into slots to which data streams are assigned for coordinating service of the requested data streams, a method for operating one of the data servers comprising the following steps:
-
receiving a portion of the schedule;
making assumptions as to whether slots preceding the schedule portion and following the schedule portion are occupied; and
determining whether a new data stream should be inserted into the schedule portion based upon a policy that attempts to maximize distances between consecutively occupied slots and minimize contiguously occupied slots. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30)
-
-
16. In a file server system having multiple data servers connected to distribute data streams over a network, each data server supporting at least one storage device, wherein data files are distributed across the data servers and stored on each of the storage devices, the system maintaining a schedule for serving requested ones of the data streams, the schedule being segmented into slots to which data streams are assigned for coordinating service of the requested data streams, a method comprising the following steps:
-
receiving multiple requests to insert new data streams into the schedule;
queuing the requests in a queue; and
examining the schedule to determine whether all of the queued requests can be inserted into the schedule under a policy that attempts to maximize distances between consecutively occupied slots and minimize contiguously occupied slots.
-
-
24. A continuous media file server system, comprising:
-
multiple data servers, each data server supporting at least one storage device, wherein data files are distributed across the data servers so that data blocks of the data files are stored on each of the storage devices;
multiple schedulers located at corresponding ones of the data servers, each scheduler facilitating service of requested data streams from its corresponding data server according to a portion of a schedule that is available to the scheduler, the schedule portion having slots which are assigned to the requested data streams; and
each scheduler being configured to make assumptions as to whether slots preceding the schedule portion and following the schedule portion are occupied as having been assigned to a requested data stream, each scheduler determining whether a new data stream can be inserted into the schedule portion based upon a policy that attempts to maximize distances between consecutively occupied slots and minimize contiguously occupied slots.
-
-
31. A file server system, comprising:
-
multiple data servers, each data server supporting at least one storage device, wherein data files are distributed across the data servers so that data blocks of the data files are stored on each of the storage devices;
a scheduler to coordinate service of requested data streams from the data servers according to a schedule;
a queue to hold multiple requests to insert new data streams into the schedule; and
the scheduler being configured to examine the schedule to determine whether all of the queued requests can be inserted into the schedule under a policy that attempts to maximize distances between consecutively occupied slots and minimize contiguously occupied slots. - View Dependent Claims (32, 33, 34)
-
-
35. A scheduler embodied as a computer program on a computer-readable medium, the scheduler being implemented in a distributed file server system having multiple data servers connected to distribute data streams over a network, each data server supporting at least one storage device, wherein data files are distributed across the data servers and stored on each of the storage devices, wherein a schedule for serving requested ones of the data streams is distributed among the data servers so that that individual data servers view different portions of the schedule, the schedule being segmented into slots to which data streams are assigned for coordinating service of the requested data streams, the scheduler comprising:
-
code means for receiving a portion of the schedule;
code means for making assumptions as to whether slots preceding the schedule portion and following the schedule portion are vacant or occupied; and
code means for determining whether a new data stream can be inserted into the schedule portion based upon a policy that attempts to maximize distances between consecutively occupied slots and minimize contiguously occupied slots.
-
Specification