A client system for transferring temporal media data over a network from a plurality of storage units for playback on the client system, wherein the temporal media data is divided into segments distributed over the plurality of storage units, wherein each storage unit has persistent storage and one or more buffers for storing data read from persistent storage for transmission over the network, wherein the client system comprises:
- a sequence of playback buffers, wherein each playback buffer temporarily stores a segment of the temporal media data before playback, and wherein data in the sequence of playback buffers is played back according to the sequence of the playback buffers, such that each playback buffer has a playback time,
- means for issuing requests to the storage units to read segments of the temporal media data from the persistent storage into the one or more buffers on the storage units;
- means for ordering empty playback buffers in the sequence of playback buffers by playback time and whether data for placement in each playback buffer is expected to be available in the one or more buffers in the storage units;
- means for selecting the playback buffer with the earliest playback time and for which the data for placement in the playback buffer is expected to be available in the one or more buffers in the storage units;
- means for accessing the storage units for the data for placement in the selected playback buffer;
- and
- means for controlling the means for issuing, ordering, selecting and accessing during playback.