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, 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:
- distributing the schedule among the data servers so that individual data servers view different portions of the schedule;
receiving multiple requests to insert new data streams into the schedule, the schedule formed at least in part based on historical and future slots capable of accommodating data streams;
queuing the request in a queue;
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 occupieds slots; and
wherein the receiving, queuing, and examining steps are performed locally at individual ones of the data servers.
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. Data files are distributed across the data servers so that data blocks of the data files are stored at each of the data servers. A scheduler is 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 based on a thrifty policy.
31 Citations
30 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, 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:
-
distributing the schedule among the data servers so that individual data servers view different portions of the schedule; receiving multiple requests to insert new data streams into the schedule, the schedule formed at least in part based on historical and future slots capable of accommodating data streams; queuing the request in a queue; 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 occupieds slots; and wherein the receiving, queuing, and examining steps are performed locally at individual ones of the data servers. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. 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 formed at least in part based on historical and future slots capable of accommodating data streams; 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, wherein the schedule is distributed among the multiple data servers so that individual data servers view different portions of the schedule; and
the scheduler and the queue are located locally at individual ones of the data servers. - View Dependent Claims (9, 10, 11)
-
-
12. 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:
-
distributing the schedule among the data servers so that individual data servers view different portions of the schedule; receiving multiple requests to insert new data streams into the schedule, the schedule formed at least in part based on historical and future slots capable of accommodating data streams; queuing the requests in a queue; examining the schedule to determine whether all of the queued requests can be inserted into the schedule, without changing where existing data streams are slotted in the schedule, under a policy that attempts to maximize distances between consecutively occupied slots and minimize contiguously occupied slots;
andwherein the receiving, queuing, and examining steps are performed locally at individual ones of the data servers. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. 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 formed at least in part based on historical and future slots capable of accommodating data streams; 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, without modifying where existing data streams are scheduled, under a policy that attempts to maximize distances between consecutively occupied slots and minimize contiguously occupied slots, wherein the schedule is distributed among the multiple data servers so that individual data servers view different portions of the schedule; and
the scheduler and the queue are located locally at individual ones of the data server. - View Dependent Claims (20, 21, 22)
-
-
23. 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 and that is formed at least in part based on historical and future slots capable of accommodating data streams, the schedule portion having slots which are assigned to the requested data streams; one or more queues to hold multiple requests to insert new data streams into the schedule; and each scheduler being configured to examine their portion of the schedule to determine whether the queued requests can be inserted into the portion of the schedule, without modifying where existing data streams are scheduled, under a policy that attempts to maximize distances between consecutively occupied slots and minimize contiguously occupied slots. - View Dependent Claims (24, 25, 26, 27, 28, 29)
-
-
30. 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 distributing the schedule among the data servers so that individual data servers view different portions of the schedule; code means for receiving a portion of the schedule, the schedule formed at least in part based on historical and future slots capable of accommodating data streams; 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 multiple new data streams can be inserted into the schedule portion, without modifying where existing data streams are scheduled, based upon a policy that attempts to maximize distances between consecutively occupied slots and minimize contiguously occupied slots, wherein the code means for the receiving, making assumptions and determining are executed locally at individual ones of the data server.
-
Specification