CA2145164C - Baton passing optimization scheme for load balancing/configuration planning in a video-on-demand computer system - Google Patents

Baton passing optimization scheme for load balancing/configuration planning in a video-on-demand computer system

Info

Publication number
CA2145164C
CA2145164C CA002145164A CA2145164A CA2145164C CA 2145164 C CA2145164 C CA 2145164C CA 002145164 A CA002145164 A CA 002145164A CA 2145164 A CA2145164 A CA 2145164A CA 2145164 C CA2145164 C CA 2145164C
Authority
CA
Canada
Prior art keywords
storage media
videos
video
computer system
disks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CA002145164A
Other languages
French (fr)
Other versions
CA2145164A1 (en
Inventor
Hadas Shachnai
Joel L. Wolf
Philip S. Yu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CA2145164A1 publication Critical patent/CA2145164A1/en
Application granted granted Critical
Publication of CA2145164C publication Critical patent/CA2145164C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17336Handling of requests in head-ends
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Abstract

A video on demand computer system includes a plurality of storage media each storing a plurality of videos. The storage media are disks attached to a computer system. The computer system plays the videos on demand by reading out the videos from the disks as data steams to play selected ones of the videos for users responsive to received user performance requests. The computer system is programmed to monitor the numbers of videos being performed for each of the disks. Based on the monitoring function performed by the computer system, the computer system performs a load balancing function by transferring the performance of a video in progress from one of the disks to another disk having a copy of the video in progress. The computer system periodically performs a reassignment function to transfer videos between the disks to optimize load balancing based on the user performance requests for each of the videos. There are two phases to the load balancing performed by the computer system; a static phase and a dynamic phase. In the static phase, videos are assigned to memory and disks, and in the dynamic phase there is provided a scheme for playing videos with minimal and balanced loads on the disks. The static phase supports the dynamic phase which insures optimal real-time operation of the system. Dynamic phase load balancing is accomplished by a process of baton passing.

Description

21 451 6~
-BATON PASSING OPTIMIZATION SCHEME FOR
LOAD BALANCING/CONFIGURATION PLANNING
IN A VIDEO-ON-DEMAND COMPUTER SYSTEM

DESCRIPTION

BACKGROUND OF THE INVENTION

Field of the Invention The present invention generally relatcs to managcmcnt of storage dcvices by a file server in a multimedia computer system and, m(lre particularly, to an optimization scheme for load balancing/configuration planning in a video-on-dcmand computer system, sometimes called a movie-on-demand computer system.
Description of the Prior Art Pay-for-view movies have been an incrcasingly popular service provided by cable TV operators and hotels for their subscribcrs and guests. Tlle pay-for-vicw movics are typical]y stored on video 20 cassette tape in analog form. The video casscttes may be loaded into a carousel which is programmed to play the movics at prcdctcrmincd timcs. A subscriber or guest, having a set top converter, may select a movie, and thal movic will bc playcd at the subscriber's or guest's TV
set at the programmed time. Thc subscl ibcl Or g~lCSt is automatically billed for the scrvice.

25 This service, however, is not always convcnient to subscribcrs and guests since movie selections are scheduled for certain time slots which may not fit a subscribcr's or guest's schedule. More recently, movie-on-demand services arc bcing ,r~rovidcd which allow subscribers and guests to select a movie from a menu of availablc movies to bc played on the subscriber or room TV at any time. This is made possiblc by StOI ing the movies in digital form on magnetic disk and/or system random access memory (RAM). A movie store(l on disk is first read into system memory and then read out as a data stream which is used to generate the analog TV signal that is supplied to a subscriber's or guest's TV set. If the moviex which are played for a subscriber or guest are stored statically in system memory, read oul can occur at any time without the 5 limitations represented by the dynamic analog stolage used in pay-for-view systems.

Movie-on-demand computer systems must t!C able lo "play" multiple streams of many movies simultaneously. These movies may resi~le in memory or on one or more disks in the system.
While a projection can bc made as lo the expectecl demand ror any givcn movie currently 10 available, the demand can vary widely. Thi~ in tUIIl can cause a number of problems that will degrade the performance of the system. For example, perhaps the three most popular movies may be loaded from disk into system memory for play, but because of the limitations of system memory, the other movies available for play reside 011 disk. A portion of system memory is reserved to "page" in movies from disk as the movies are rcquested by subscribers and guests.
15 Multiple copies of the more popular movies reside 011 multiple disks, although the number of copieswillvarydependingon thecurrentpol-ularityortllemovies.Withoutsomewaytobalance the load or demand on the several clisks in the syslem, more re4uests to read a movie from a given disk may be made than can be serviced, with the inevitable result that service to subscribers and guests is degraded Ol even interr-lpte(l. This is an unacceptable situation, 20 particularly where the subscribels and guests are p ayhlg a premium fee for the service.

SUMMARY OF THE INVENTION

It is therefore an object of the r~leSCIlt invenlion lo r)rovi(le a solution to the problem of 25 minimizing and balancing thc loa~l 011 the (lisks, lhus ellablillg service to a larger number of concurrent customers for a given system configuratioll.

It is another object of the invention lo solve lhe telated configuration planning problem of determining how much memory an(l!or ho~s~ many disks the movie-on-demand system needs to safely meet its playing requircmenls al minimal cost.

According to the present invention the disk load minimization and balancing problem is solved by (I) determining statically wllich movies should reside in memory ancl which disks should have copies of the remaining movies (2) detet-mirling dyllamically which disk copies of the various movies should be used to play the customer demands and (3) implementing dynamic adjustments to the streams via a technique we will refer to as movie baton passing. Solving this load balancing problem enables the movie-on-demclnd system to support a larger customer load with a given memory and disk conrlgur3tion. In addition the invention can be used to solve the related configuration planning problcm of determinhlg how much memory and~or how many disks the movie-on-demand system nee(ls to sarely meet its playing requirements at minimal cost.

The invention solves two related movie-on-dcmand problems. The first is disk load balaneing whieh has as input eonstraints existing memory and disk configuration and forecasted and actual movie loads. The solution of thi. problem has a static phase an(l a dynamic phase. In the static phase movies are assigned to memory and disks and in the dynamic phase there is provided a seheme for playing movies with minimal and balaneed loacls On the disks. The statie phase supports thc dynamie phase which illsures optimal rcal-time operation of the system. The invention accomplishes dynamic phase load balancil1g by a plOCCSS of baton passing which as will become clear from the detailed dcscl-iption Or thc invention is referred to as DASD
daneing . The statie phase deeidcs the VASD plaeement of the mo~1ic rcplicates in such a way that it can (I) maximize the likelihood that rOr any pair of DASD irone is overloaded and the other is underloaded thc baton passin~ approach call be used to balance the load between the overloaded DASD and tl1C underloa(le(l DASD by making a sequence of load shifts aeross different DASDs and (2) minimize the number of load shirt~ requirecl.

214516~

The movies stored on the underloade(l DASD may be completely different from those stored on the overloaded DASD; howevcr the load balancing can be achieved from a sequence of shifts across different DASDs whete each shift ca~lses the transfer of the performance of a video from one of the DASDs (the source) to another DASD (the target) having a copy of a movie being shifted and the source becomes the target DASD for the next loa{l shift. Thus the underloaded DASD is the target of the rlrst load shift and the overloaded DASD is the source of the last shift. The final load on the intermediate DASDs in the sequence is not changed.

The goal of the solution to the fir~t problem i~ to maximize the ability to handle the load given a fixed cost configuration. The second relate(l problem is conrlguration planning which has as input constraints forecasted movie loa(ls and memory and disk costs. The solution to this problem is a configuration which minimizes system costs wllile meeting movie play requirements.
The goal of this solution is to minimize conriguration costs given a fixed load.
BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects aspects and a(lvantages will be better understood from the following detailed descriptioll of a prcrerrecl embodiment of thc invention with reference to the drawings in which:
Figure I is a functional block diagtam of a computer system on which the invention is implemented;
Figure 2 is a functional hlocl~ diaglam of the interaction between video events and the dynamic phase of the invention;
Figure 3 is a flow chart of thG logic of ~he (lynamic phase of the invcntion;
Figure 4 is a flow chart of the logic of thc baton passing component of the dynamic phase of the invention;
Figure S is a flow chart of the logic of the static phase incremental scheme of the invention; and Figure 6 is a functional block diagram showing an example of assignment of movies to disks in the system.

DETAILED DESCRIPTION OF A PREFERRED
EMBODIMENT OF THE INVENTION

Referring now to the drawings, and mote partieulatly ~o F~igure 1, there is shown a computer system on whieh the subjeet inventioll may be implemented. The eomputer system may be for example a mainframe eomputer, suell as the Internalional Business Maehines (IBM) Corp.
System 390 elass of eomputer, or one of the newer lBM Sealable Powerparallel Systems~ 9076 10 or any sueh other eomputer system capab]e of suppot^ting sufficient inputjoutput (I/O) funclions to support the movie-on-demand funclion of the invention. The computer system comprises a system unit 11 which houses the eentral r)rocessing unit (CPU) 111 connected to system memory (RAM) 112. An operator communieates with the eompulet via a central eonsole 12 which is eonneeted to the CPU 111 via a eonsole adaptor 114. The CPU I l l is eonneeted by a plurality of ehannels 115, 116 and 117 to a plurality of direct aeeess storage deviee (DASD) strings 13, 14 and 15, respeetively. Eaeh DASD string has one or mote DASDs conneeted in a da;sy ehain.
The number of ehannels and DASDs on a string will vary, depen(ling on thc speeifie installation.
In the example illustratecl, DASD Stl-illg 13 eomprises DASDs 131 and 132, DASD string 14 eomprises DASDs 141, 142 an(J 144, and DASD sttillg 15 eomprises DASDs 151 and 152. The 20 DASDs are typieally magnetie disks capable of storitlg a large amount of data. Data read from the DASDs are stored in system memory 112 from ~hich it is read out to input/output (I/O) funetion 118.

Computer systems like that shown h~ Figure I have been used rOr othcr applications, including 25 transaction processing and database manllgement. Sucll applications are supported by an operating system (OS), sueh as IBM's Multiple Virtual Storage (MVS) OS or IBM's AIX OS.
AIX is IBM's enhaneed version of the UNIX~ opetating system (UNIX~ is a registered trademark of Novell, Ine.). Chataeteristie of such applications are that data is both read and written to the DASDs, whereas in ~he present movie-on-demand application, data is only read YO9-94-029 ~
from the DASDs. Writing occurs only in the initial configuration and in the static phase when movies are written to selected disks. There is, however, no modification of the data, merely duplication. Furthermore, while transaction processing and data base management applications are funetionally improved by high spcecl operation, lhe present application requires real-time 5 operation; anything less is unacceptable. The data streams from the l/O function 1 18 are output to distribution system 16 which s-lpplies video ~ignals to subscribel or guest TV sets 17 and 18.

Thus, the movie-on-demand application has certain properties that differentiate it from prior applieations on mainframe cOmputers. I~irst, a data stream from a DASD is a logieally defined 10 unit which is read-only. All data streams may be viewecl as equal; that is, bits/second data rates are independent of the movie being read OUt. Moreover, the data streams generatcd by the system are basieally predietable, both in foreeasts and in real-time. Seeond, the real-time seheduling requirements of the movie-on-demand system mean that eaeh disk ean satisfy some maximum number of eoncurrent data streams, making load balancing crucial. This requirement, 15 however, can be offset by making multiple cor-ies of popular movies on several different DASDs.
This flexibility is further enhanced by the present invention which takes advantage of the multiple copies of the movies on several DASDs to re(Jistribute the load or demand on the DASDs by a process of baton passitlg, desct ibe<l in more dctail hereillafter. The process of baton passing is sometimes referted to hereillaftel as "DASD danchlg" ror reasons which will become 20 apparent as the description of the invenlion progresse~.

While the com~uter system shown in F~igute I is lypical ancl has been described in terms of current or known computer systems and I/O devices, il will be un(letstood by those skilled in the art that the invention is not limitecl to these speciric cOmputel systems and l/O devices. Clear]y, 25 as new advances are made in computer hardware, thete will be other and newer platforms on which the invention may be implemented. Therefore, hl the remaining dcscription, the eomputer system will be referred to as a "multi-media setvet", movies will be referred to as "videos", and the storage devices will be referred to a~ "disks" rather than DASDs. I lere "disks" mean storage devices, whether a geometric disk Or some other configuration, On which the data can be stored.

These may include, for example, disk arrays, magneto-optic clisks and other technologies.

There are two components to the inventioll. The first component is a load balancing scheme, and the second component is a configuratioll planning scheme. The load ba]ancing scheme proceeds 5 in t~vo stages, one static and on~ clynamic. In the static stage, a good quality assignment of which videos should reside in memory and which disks should have copies of the remainillg videos is computed. These assignments are adjusted incremetally, for example on a daily bas;s. As many of the videos as possib]e with the largexl demand are place(l into system memory 1 13. Depending on system memory limitations, this may he for example three videos, out of a total of 100 or 10 more, allowing additional system memory for paging d,lta frolll several of the attached disks. The videos in system memory 1 13 can be played can be played on demand without further consideration.

Assume that there are M remaining v;deos and a total of D disks. (By disk here we mean either 15 a single physical disk or a group of striped disks.) In the remaining portion of the static phase, we seek to provide a good quality video/disk assignment matrix (aij). This is a (0,1) MxD matrix such that aij = 1 if video I is placed on disk i, an(l aij = () otherwise. To motivate what constitutes goodness in this assignment, we lirst desclibe the dynamic phase of our scheme. This phase handles the on-line dccisions Of which disk copies Of lhe videos not in memory should be 20 used to actually handle the current demand streatn.

Figure 2 illustrates the various events whicll will invoke the dynamic phase of the invention. The first event is a request for the p layillg of a video, as in(licatc(l in block 21. This event has the effect of adding a data stream. The secon(l e~ent i~ lhe completion of the playing of a video, as 25 indicated in block 22. This event has the efrect of ending a dala stream. In addition to starting and stopping videos, subscribers and guests are provided with the option of pausing and resuming play of a video, just as may he done when using a home video cassette recorder (VCR).
The digital technology of videos-on-deman(l make this feature possible. Thus, when a subscriber or guest pauses the playing of a video, as indicate(l hy blocl~ 23, this event has the effect of suspending (i.e., ending temporarily) a clata stream. Later, whcn thc subscribcr or guest resumes the playing of the paused video, as inclicated in block 24, this event has the effect of adding a data stream. Each of these events inv(lkes the dynamic loa(l balancing phase 25 of the invention, which will now be describecl in more dctail.
s Assume that there are currently 1~ streams of video I in progress, broken down further ;nto ij streams on disk i Thus, ~ Ai; and lij=0 whenever aij=(). Associated with each disk i 1=l is a maximum number Lj of concurrent streams (i.e., playing videos). This number depellds on the performance characteristics of the disk and is chosen to ensure that the real-time scheduling 10 problem of reading the videos within the required rixed dcadlille is achieved. To balance the load on the disks, we assume a penalty fllnction Fj for each disk i, defined as a convex increasing function on the set {0,...,Lj}. The load will be as balanced as is possible given the current load D ~ M
and video/disk assignments when the function ~ F~ ~ xij is minimized subject to the constraints (I) xij ~ {0,...,Lj}, (2) ~ xij = li, and (3) xij = () if ai; = (). This problem is a so-15 called class constrained resource allocation problem and can hc solved exactly and efficiently using a graph-theoretic optimization algorilhlll as describe(l, rOr example, by A. Tantawi, D.
Towsley and J. Wolf, "Optimal Allocation Of Multil-le Class Resources in Computer Systems,"
M

ACM Sigmetrics Conference, San~a F;e NM, 19~Y,. I~or the optimal solution, xj=~xi j represents the desired load on disk j. Thus, reindexing the disks according to increasing values .

M

of Xj-~ Aij puts them in order of most overloade(l to most underloaded. Ideally, these values should all be close to zero. To fix notation, suppose that the first Dl disks are overloaded and the last D2 disks are underloaded.
Summarizing the notation used in this description, Non-memory resident videos l= I,.. ,M;
Disks i= I,,D;
Video/disk assignment matrix (a~
Maximum stream load per disk Lj;
Disk penalty function Fj, which is a convex function; and Current load Ai =~ Ai; , where Aij is the nu mher of nplays" of video 1 on disk i, li is the total demand for video 1, and Aij=0 whenever aij=0 (i.e., if the video is not there, it can not be played).

With reference now to Figure 3, there is shown the ptOCC.'iS of the dynamic phase according to 15 the invention. In the first step 31, Ai and {~i~} as clefined above are adjusted. Next, the graph-theoretic optimization algorithm desct-ibed hy A. Tantawi et al., ~, is used in step 32 to compute optimal values x; and ~x~

Stream demands are increased hy one wllen a suhscril~el or guest starts a new video or resumes 20 a currently paused video, as illustrated in Figure 2. Similarly, slream demands are decreased by one when a subscriber or guest finishes a video or pauses a currently playing video. Normally, handling demand increases can be accomplished by employing a greedy algorithm; that is, an algorithm which provides a local optimal solution while ignoring the global picture. In other words, if a new stream of video 11 is to be added, that disk i satisfying ai j = 1 whose first d;fference Fj (~ +l)-Fj ~ ~ij) iS minimal iS chosen. Ho~vever, periodically this approach will degrade. If the values xj-~, Aij differ from zero by more than some fixed threshold T according to any reasonable norm, the dynamic phase algorithm will be initiated.
For example, the norm could computecl as the sum of squares:

D ~ M
B = ~ ¦,Xj -~ ~i iJ

5 The initiated algorithm is also graph-theoretic, maintaining at all times a directed graph G
derlned as follows:
Nodes are disks;
For each pair il and i2 f distinct nodes, thete is a directed arc from il to i2 provided there exists at least one video il for which lo (I) ai1 j1=ai1 jZ=l , meanil1g that a pal ticular video i l exists Oll both disk il and i2 (2) Ail j >, meaning that video 1l is being played on disk il, and (3) ~ Aij <Lj , meaning IhClt disk i2 has cxccs.s cap~city. Referring again to Figure 3 the disks are indexed according to increasing load, the badness value B is computed and graph G and the quantities Dl and D2 are updated in step 33. Then a decision is made in step 15 34 as to whether B is greater than T. If no~ the process stops; otherwise, il is set to I in step 35 and i2 is set to D in step 36. A decision is then made in step 37 as to whether there is a shortest 21~516~

path from il to i2 Existence of directed arc from il to i2 signifies the potential for transferring a single stream of some video on-line from one disk to another without exceeding the load capacity of the receiving disk. If there is a shortest path from il to i2, then the baton passing scheme described below and illustrated in Figure 4 is invoked in step 38, and the process loops S back to step 33. If there is not a shortest path from il to i2, then i2 is decremented in step 39 and a decision is made in step 4() as to whether i2 is greater than or equal to D-D2+ 1. If so, the process loops back to step 37; otherwise, il is incremented in slep 41. After incrementing il, a decision is made in step 42 as to whether il is le.ss than or equal to Dl. If so, the process loops back to step 36; otherwise, the process en(ls (unsuccessfully).
Figure 4 shows the logic of the baton passing process invoked hl step 38 of Figure 3. Assume that the shortest path from disk il is to disk i2 consists of k no(les, indexed by 1, the first node corresponding to disc il and the kt~l no(le cOrresponding to disk i2. The first step 44 is to set to k-l. Then there is a synchronous baton pass of a common video Vl from the disk 15 corresponding to node ~ to the disk cotresponding to node ~+1 in step 45. This common video must exist by the definition of G. Next, in step 46, Q is decremented by one. This is followed in step 47 by a decision as to whether e is greater than or equal to 1. If it is, the process loops back to step 45; otherwise, the process stops and a relulll is made to the main program as shown in ~igure 3.
~or a single arc, baton passing can be accompli~she(l via some sort of synchronization primitive.
For a path of length greater than one, it slloulcl be pCI rormed in reverse order; that is, from the last arc back through the first. This avoids ovetloa(ling any disks, even temporarily. The net effect will be to add one stream lo the final disk in the path, remove one stream from the initial 25 disk in the path, and have no net effect on any other disk,. The process may be described as "dancing backwards".

The process as illustrated in Figures 3 and 4 has a main routine and one subroutine. The main routine is as follows:

-Procedure: MAIN
Do while B > T
Call SUB
If SUB returns (0) then .stop Perform bookkeeping on indiccs, B, G, Dl~ D2 End End MAIN
The subroutine is as follows:
Procedure SUB:
Do for il = l to DI
Do for i2= D to D-D2+ I by -I
If thcre exists a sllortcst r~ath in G from il to i2 then transfer videos along this r~alh using baton-passing and rcturn (I) End 1 5 End Return (0) End SUB

This dynamic scheme has the crfcct or l~alancing lhc load to a largcr dcgree than would be possible without transferring vidcos dynamically.

In summary~ the dynamic phasc schcmc according to thc invclltion detcrmines optimal disk loads via optimization algorithm and Icinclcxcs disks via incrcasillg valucs of x~ , the order being from most overloaded to most undcrloaded whcrc, according to the notation used, the first Dl disks are overloadcd and thc last D2 disks arc undcrloa(lcd. Thc dynamic phase assumes a 214516~

measure of badness B=~ i ~ ij ancl a hadness threshold T then uses an improvement routine to tune up the loacl when haclness threshold is exceeded.

The quality of optimal disk loa(ls in the dynamic phase depen(ls on video/disk assignments.
5 Figure 5 shows the process for the static phase of the invention. The first step 51 orders videos by decreasing forecasted cleman(l. For the static phase, the videos in most demand are played from system memory, these videos heing greedily assigned to system memory in step 52. The remaining M videos are now in(lexed in terrms of decleasing folecasted play demand Ai Thus, 1l2...2AM . The next step 53 is to compute the numher of copies Ai required for each such 10 video i. There are two possible alternatives for doing this step. One possibility is to ]et A denote the maximum allowable number of video disk copies in the entire multi-media server and make Ai roughly proportional to li hy solving the problem a = ma~ ~ a ¦ ~, ra ~il<
~ i=l The solution can be obtained ~,ia a bracket and bisection algol-ithm, as described for example by W. Press, B. Flannery, S. Teukolsky and W. Vc1~crling in Numerical Recipes, Cambridge 15 University Press. We then let 9 Ai = râ Al.l for each video i. The other possibility is to treat the problem as one of fair apportionment. Schemex for apportionment are treated for example, in T. Ibaraki and N. Katoh ( Resource Allocation Problems', MIT Press). One such appropriate scheme treated there is due to Webster.

, The static phase has two possible modes. Mode I is "from scratch" and is used to configure a new system on which no videos have yet been placecl onto disks. Mode 2 is "incremental" and is used on an approximately day by day basis to adjust existing video to disk assignments because of revised forecasts. The goal in both approaclles is to increase the connectivity of the 5 undirected graph H defined as follows:
Nodes are disks;
For each pair il and i2 of distincl no(les, there is an arc between il and i2 provided there exists at least one video i1 for which (I ) ai j =ai j =1 . This condition mimics condition ( I ) in the definition for the directed graph G. Thc not;on is Ihat H serves as a an effective surrogate for G, since a good dynamic phase scheme will typically ensure that conditions (2) and (3) in the definition of G will be satisfied whenever condition (I) is satisfied.

We attempt to increase connectivity by minimizing the diameter of the graph H. (The diameter 15 of a graph is the largest distance between any pair of nodes.) In Mode I, we accomplish this by generating a so-called clique-tree. Each node of the tree consists of a set of disks where each has a copy of a common video. Thi.s makes loa(l shift possible among any two disks within a node based on a common video. Ilence, we use the term clique-tree. We need to build this tree by assigning disks to the nodes and videos to the disks during the process. The tree is built by 20 considering videos in order of decreasing foreca.sts on access frequencies. The copies of the most popular videos are first assigned to different disks, and these disks are mapped to the root node of the clique tree. (Each disk can contain one co,ny of a video.) We next consider the next "hottest" video (in terms of demand) with mul~iple copies. Again, different copies are assigned to different disks except one of the copies need.s to he assiglle(l to the disk of a node already in 25 the clique tree. This is referred to as the connection copy as it provides connectivity to the clique tree. To minimize the number of load shifts or baton passing to balance the load, the new nodes are hung off as close to the root as possihle. This is achieved by assigning the "connection" copy 2145I6~
-to a node closest to the root and having a disk with additional capacity. The process is repeated as long as there are disks remaining not included in the clique tree. The leaf nodes represent the less popular videos with replications. During the final stage of the tree building, the videos may have more copies (excluding the connection copy) than the disks remaining unassigned. The 5 assignment of those copies which exceed the number of disks remaining unass;gned will be addressed in the next step. After all disks are included in the clique tree, the remaining copies of the videos are assigned greedily to the disks, i.e., (i) for each pair of new copies, we choosc from thc set of disks with available space the pair of disks with maximal distance; and (ii) single copies of vidcos are placecl on a disk so as to decrease the diameter (Observe, that if there are additional copies of that video, then the chosen disk becomes a member of a clique of disks which accommodate the other copies of that video.
The remaining videos salisfy Aj= I and have no effect on the diameter of H.).
In the following, we show the construction of the graph H, by first producing the clique-tree and then using a greedy scheme ror reducillg the diameter of the graph.

-Example: Assuming a system of D = 1 I disks, with Lj= 2, i= I ,...,D, and the number of videos is M= 11, the number of copies of each video is given in the Table bclow.

V~ o ID Col)lr s T
K

The assignment of video copics to clisks after thc initial stage (i.c., construction of the clique-tree) is given by the matrix '1111000000000' O O O O O O O O O O O O O
O O O O O O O O O O O O O
~OOOOOOOOOOOOO~

21~5164 The graph H obtained after the greedy phase is shown in Figure 6. With reference to the table above and Figure 6, there are four copies of video A, one copy of which are assigned to each of disks 611, 612, 613, and 614. This group of four disks are the root 61 of the clique-tree. The next most popular video is video B whicll has three copies. One of these is assigned to disk 611 and serves as the connection copy of the video. The othcr two copies of the video B are assigned to disks 621 and 622, respectively. These two disks form a branch 62 of the clique-tree. Video C
also has three copies, one of which is assigned to disk 612 to serve as a connection copy to branch 63 having disks 631 and 632 lo which the other two copies of video C are assigned.
Similarly, there are three copies of video D, one of which is assigned to disk 613 as a connection copy and the other two of which are assigned lO disks 641 and 642 of branch 64. There are two copies of video E, and one copy is assigned to di!ik 614 while the other is assigned to disk 65.
Here, the disk 65 represents a Iear of the clique-tree.

At this point in the assignmenl process, the capacities of the disks 611, 612, 613, and 614 have been reached so that it is no longer possible to assign connection copies of the next group of videos to the root 61 of the clique-tree. Therefore, one copy of video F is assigned to disk 621, and another is assigned to disk 66. Similarly, one copy of vicleo G is assigned to disk 622 and another is assigned to disk 67. Disks 66 ancl 67, like disk 65, are Ieafs in the clique-ttee. Next, the two copies of video H are assigned lo disks 631 an(l 66, and the two copies of video I are assigned to disks 641 and 67. This leaves videos .T an(l IC for which there is one copy each. The one copy of video J is assigned to disk 632, and the one copy of video K is assigned to disk 642.

The foregoing ;s but an example of an initiaHlssigllmellt of videos to disks. Obviously, depending on the number of videos, the numbcts Or copies Of each video and the number and capacities of the disks, the assignments of videos to disks will vary. The point of the example is to illustrate a situation where the baton passing technique may be used to balance the loads between two disks which may not have common copies vicleos. Suppose, for example, that disk 611 is overloaded and disk 66 is undetloaded. Observe ~ha~ there are no common copies of videos on these two disks; however, disk 621 has copies in common between disks 611 and 66. The baton YO9-94-029 1 ~
passing in this case is to transfel- demand for video F from disk 621 to disk 66 and then to transfer demand for video B from disk 61 l to disk 621. This "dancing backwards" prevents any overload condition on the intermediate disk ~21, even temporarily. The net effect is to increase by one the video stream output of disk 66, decreasc by one the video stream of disk 611, and 5 have no net effect on the video stream output Or disk 621.

In Mode 2, some v;deos will lose disk copies, some will gain disk copies, and some of the video copies may be moved from disk to disk. We keep track of the net number of new video copies on disk, which we force to be bounde(i by some rixed threshold U.
The procedure has three stages, accomplished in the following order. In stage 1, we greedily remove disk copies from net-loss videos, in order from greatest to least loss. In stage 2, we greedily add disk copies to net-gain videos, in order from greatest lo least gain, with constraints on disk storage capacity. We then compule the numher of new video copies. If this number is 15 greater than or equal to U, we stop. Otherwise, we perform stage three, a neighbourhood escape heuristic on the entire set of video copies. The neighbourhood escape heuristic used is described by J. Wolf in "The Placement Optimi7ation Program", ACM Sigmetrics Conference, Berkeley CA, 1989. This includes single moves (which are distal1ce 1), SW.lpS (which are distance 2), and so on, with constraints on disk stl-rage capacity. If eilher (I) no further improvements to the 20 diameter of H are possible, or (2) the numbel of mnves exceeds U, we stop. In the latter case, we abort the final move decision. I~inimizing the diclmeter Or H makes the dynamic phase scheme more effective by increasing its flexibility. Evell a modest n-lmber of videos with multiple copies will ensure good connectivity rOr T-l.

25 Referring again to Figure 5, in step 54 disk copies are removed whenever Aild is greater than Ai using a greedy algorithm. Here Ai'7ld represents the old number of required disk copies of video i, while Ai represents thc new number. Then, in step 55 the videos are reordered for each Aild less than Ai in decreasing order of AfAild. Disk copies or videos are added in step 56 whenever Ai'~ld is less than Ai in order. This is done via a gree(ly algorithm. Then, ~ is set to M

~(Ai-A~ld)~ . (The + function is defined by x+ = x if x ~ 0, and x+ = 0 if x ~ 0.) A
~=1 decision is made in step 57 as to whether # is greater than or equal to U. If so, the process stops;
otherwise, a decision is made in step 58 as to whelher new video copies are to be added using the neighbourhood escape heuristic describe(l by J. Wolf, ~. If not, the process stops;
5 otherwise, a video is copied in step 59 and then ~ is up(lated in step 60 before the process loops back to step 57.

In summary, the static phase modes are from scratch ancl incremental. The from scratch mode is used only when configuring new syxlem. Forecasts are used to determine memory resident 10 videos and number of disk copies for remaining videos. The approach is to build clique-tree, employing a greedy strategy, taking into account constraints on disk storage capacity. The incremental mode is used in normal day-to-day operation. The incremental mode uses revised forecasts to update memory resident videos and adjust number of disk copies for remaining videos. There is a three part approach to the incremental mode using greedy strategy and a 15 neighbourhood escape heuristic. ~or net loss videos, a greedy determination is made as to which copies of videos should be erased. Fot net gain videos, a greedy determinatioll is made as to where new copies should bc placed, taking inlo consi(leration the constraint on disk storage capacity. A neighbourhood hellristic is use(l for moving all video copies, taking into consideration constraints on the number of disk moves and disk stol-age capacity.
2~
The configuration planning problem is esselltially the dual lo the load balancing problem. It ean be accomplished using the same basic techllique by (I) (leveloping a suite of video load simulation tests, (2) exploring the search space for memory and disk configurations which pass these tests, and (3) picking that configutation wllicll satisfies (2) and has minimal cost.
While the invention has been described in terms of a single prefeJred embodiment, those skilled 21~5164 _ YO9-94-029 2() in the art will recognize that thc ;nvcntion can be practiccd with modif;cation within the spirit and scope of the appended claims.

Claims (10)

The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:
1 A video on demand computer system, comprising:
a multimedia file server having memory for storing a limited number of videos;
a plurality of storage media connected to said multimedia file server, each of said storage media storing a plurality of videos; and performance means, connected said multimedia file server, for performing selected ones of the videos for users responsive to received user performance request;
said multimedia file server including a central processing unit programmed to monitor numbers of videos being performed for each of the storage media and, based on the programmed monitoring operation, dynamically transferring the performance of a video in progress from one of the storage media to another storage media having a copy of the video in progress so as to balance the loads of the plurality of storage media wherein said central processing unit is further programmed to periodically perform a static reassignment of videos between said system memory and the storage media and between the storage media by transferring videos between memory and the storage media and between the storage media to optimize load balancing based on the user performance requests for each of the videos.
2. The computer system of claim 2 wherein said central processing unit performs load balancing between any pair of storage media through a sequence of load shifts across different storage media such that each shift causes the transfer of the performance of a video from one of the storage media (the source) to another storage media (the target) having a copy of the video being shifted and the source storage media becomes the target storage media for the next load shift.
3. The computer system of claim 3 wherein the load balancing performed by said central processor is by balancing loads across the storage media through balancing loads between pairs of overloaded and underloaded storage media.
4. The computer system of claim 3 wherein the static reassignment of videos by the central processor is performed by assigning videos to storage media to increase the availability of load shift sequences between any pair of storage media and shortening the length of a sequence.
5. The computer system of claim 1 further comprising configuration planning means to decide system memory and storage media requirement for a predetermined number of videos to minimize cost of the system.
6. A method of providing videos on demand in a multimedia computer system comprising the steps of:
assigning videos to system memory and a plurality of storage media according to forecasts of demands for videos, each of said storage media storing a plurality of videos, said assigning including determining a number of copies of each video to be stored in said storage media with only one copy of any video on a single storage media;
performing selected ones of the videos for users on demand in response to user performance request;
monitoring numbers of videos being performed for each of the storage media; and dynamically balancing the loads of said storage media by transferring the performance of a video in progress from one of the storage media to another storage media having a copy of the video in progress.
7. The method of claim 7 further comprising the step of periodically performing a static reassignment of videos between said system memory and the storage media and between the storage media by transferring videos between memory and the storage media and between the storage media to optimize load balancing based on the user performance requests for each of the videos.
8. The method of claim 8 wherein the step of dynamic load balancing is performed through a sequence of load shifts across different storage media such that each shift causes the transfer of the performance of a video from one of the storage media (the source) to another storage media (the target) having a copy of the video being shifted and the source storage media becomes the target storage media for the next load shift.
9. The method of claim 9 wherein the step of dynamic load balancing is further performed by balancing loads between pairs of overloaded and underloaded storage media.
10. The method of claim 9 wherein the step of performing a static reassignment is performed by assigning videos to storage media to increase the availability of load shift sequences between any pair of storage media and shortening the length of a sequence.
CA002145164A 1994-05-11 1995-03-20 Baton passing optimization scheme for load balancing/configuration planning in a video-on-demand computer system Expired - Fee Related CA2145164C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US241,087 1994-05-11
US08/241,087 US5544313A (en) 1994-05-11 1994-05-11 Baton passing optimization scheme for load balancing/configuration planning in a video-on-demand computer system

Publications (2)

Publication Number Publication Date
CA2145164A1 CA2145164A1 (en) 1995-11-12
CA2145164C true CA2145164C (en) 1998-12-15

Family

ID=22909198

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002145164A Expired - Fee Related CA2145164C (en) 1994-05-11 1995-03-20 Baton passing optimization scheme for load balancing/configuration planning in a video-on-demand computer system

Country Status (6)

Country Link
US (1) US5544313A (en)
EP (1) EP0683464B1 (en)
JP (1) JP3305916B2 (en)
KR (1) KR0160218B1 (en)
CA (1) CA2145164C (en)
DE (1) DE69509433T2 (en)

Families Citing this family (113)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289390B1 (en) 1993-08-18 2001-09-11 Microsoft Corporation System and method for performing remote requests with an on-line service network
US6101495A (en) * 1994-11-16 2000-08-08 Hitachi, Ltd. Method of executing partition operations in a parallel database system
US7599910B1 (en) 1993-11-16 2009-10-06 Hitachi, Ltd. Method and system of database divisional management for parallel database system
JP3023441B2 (en) * 1993-11-16 2000-03-21 株式会社日立製作所 Database division management method and parallel database system
US5774714A (en) * 1995-03-27 1998-06-30 Hewlett-Packard Company Zone bit recording enhanced video data layout
US6901433B2 (en) * 1995-06-07 2005-05-31 Microsoft Corporation System for providing users with a filtered view of interactive network directory obtains from remote properties cache that provided by an on-line service
US5956489A (en) * 1995-06-07 1999-09-21 Microsoft Corporation Transaction replication system and method for supporting replicated transaction-based services
US6181867B1 (en) 1995-06-07 2001-01-30 Intervu, Inc. Video storage and retrieval system
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US5933599A (en) * 1995-07-17 1999-08-03 Microsoft Corporation Apparatus for presenting the content of an interactive on-line network
US5787482A (en) * 1995-07-31 1998-07-28 Hewlett-Packard Company Deadline driven disk scheduler method and apparatus with thresholded most urgent request queue scan window
US5956509A (en) * 1995-08-18 1999-09-21 Microsoft Corporation System and method for performing remote requests with an on-line service network
US5941947A (en) * 1995-08-18 1999-08-24 Microsoft Corporation System and method for controlling access to data entities in a computer network
US6047309A (en) * 1995-10-02 2000-04-04 International Business Machines Corporation Recording observed and reported response characteristics at server and/or client nodes in a replicated data environment, and selecting a server to provide data based on the observed and/or reported response characteristics
US6061504A (en) * 1995-10-27 2000-05-09 Emc Corporation Video file server using an integrated cached disk array and stream server computers
US5737747A (en) * 1995-10-27 1998-04-07 Emc Corporation Prefetching to service multiple video streams from an integrated cached disk array
US5933603A (en) * 1995-10-27 1999-08-03 Emc Corporation Video file server maintaining sliding windows of a video data set in random access memories of stream server computers for immediate video-on-demand service beginning at any specified location
US5948062A (en) * 1995-10-27 1999-09-07 Emc Corporation Network file server using a cached disk array storing a network file directory including file locking information and data mover computers each having file system software for shared read-write file access
IL117133A (en) * 1996-02-14 1999-07-14 Olivr Corp Ltd Method and system for providing on-line virtual reality movies
AU1616597A (en) * 1996-02-14 1997-09-02 Olivr Corporation Ltd. Method and systems for progressive asynchronous transmission of multimedia data
JP3190813B2 (en) * 1996-02-15 2001-07-23 日本電気株式会社 Delivery system
JPH09233412A (en) * 1996-02-23 1997-09-05 Mitsubishi Electric Corp Recording and reproducing system for video image data
US5790795A (en) * 1996-07-01 1998-08-04 Sun Microsystems, Inc. Media server system which employs a SCSI bus and which utilizes SCSI logical units to differentiate between transfer modes
US5828370A (en) * 1996-07-01 1998-10-27 Thompson Consumer Electronics Inc. Video delivery system and method for displaying indexing slider bar on the subscriber video screen
US5991809A (en) * 1996-07-25 1999-11-23 Clearway Technologies, Llc Web serving system that coordinates multiple servers to optimize file transfers
US6721952B1 (en) 1996-08-06 2004-04-13 Roxio, Inc. Method and system for encoding movies, panoramas and large images for on-line interactive viewing and gazing
US6298386B1 (en) 1996-08-14 2001-10-02 Emc Corporation Network file server having a message collector queue for connection and connectionless oriented protocols
US5893140A (en) * 1996-08-14 1999-04-06 Emc Corporation File server having a file system cache and protocol for truly safe asynchronous writes
JP3563541B2 (en) * 1996-09-13 2004-09-08 株式会社東芝 Data storage device and data storage method
US5870553A (en) * 1996-09-19 1999-02-09 International Business Machines Corporation System and method for on-demand video serving from magnetic tape using disk leader files
US5935206A (en) * 1996-12-13 1999-08-10 International Business Machines Corporation Automatic replication of digital video as needed for video-on-demand
US5892915A (en) * 1997-04-25 1999-04-06 Emc Corporation System having client sending edit commands to server during transmission of continuous media from one clip in play list for editing the play list
US5987621A (en) * 1997-04-25 1999-11-16 Emc Corporation Hardware and software failover services for a file server
US5974503A (en) * 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names
WO1998054657A2 (en) * 1997-05-26 1998-12-03 Koninklijke Philips Electronics N.V. System for retrieving data in a video server
US6490610B1 (en) 1997-05-30 2002-12-03 Oracle Corporation Automatic failover for clients accessing a resource through a server
US6351775B1 (en) * 1997-05-30 2002-02-26 International Business Machines Corporation Loading balancing across servers in a computer network
US6199110B1 (en) * 1997-05-30 2001-03-06 Oracle Corporation Planned session termination for clients accessing a resource through a server
US6128649A (en) * 1997-06-02 2000-10-03 Nortel Networks Limited Dynamic selection of media streams for display
US6230200B1 (en) * 1997-09-08 2001-05-08 Emc Corporation Dynamic modeling for resource allocation in a file server
JP3810530B2 (en) * 1997-09-18 2006-08-16 富士通株式会社 Video server system, content dynamic arrangement device, and content dynamic arrangement method
US6061761A (en) * 1997-10-06 2000-05-09 Emc Corporation Method for exchanging logical volumes in a disk array storage device in response to statistical analyses and preliminary testing
US6173420B1 (en) 1997-10-31 2001-01-09 Oracle Corporation Method and apparatus for fail safe configuration
US6330609B1 (en) 1997-11-07 2001-12-11 Lucent Technologies, Inc. Admission control system and method for media-on-demand servers
US6035306A (en) * 1997-11-24 2000-03-07 Terascape Software Inc. Method for improving performance of large databases
US6374336B1 (en) * 1997-12-24 2002-04-16 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
USRE42761E1 (en) 1997-12-31 2011-09-27 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US5941972A (en) 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US8060613B2 (en) 1998-02-10 2011-11-15 Level 3 Communications, Llc Resource invalidation in a content delivery network
US7054935B2 (en) 1998-02-10 2006-05-30 Savvis Communications Corporation Internet content delivery network
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6195703B1 (en) 1998-06-24 2001-02-27 Emc Corporation Dynamic routing for performance partitioning in a data processing network
US6438595B1 (en) 1998-06-24 2002-08-20 Emc Corporation Load balancing using directory services in a data processing system
US6295575B1 (en) 1998-06-29 2001-09-25 Emc Corporation Configuring vectors of logical storage units for data storage partitioning and sharing
US6260120B1 (en) 1998-06-29 2001-07-10 Emc Corporation Storage mapping and partitioning among multiple host processors in the presence of login state changes and host controller replacement
US6421711B1 (en) 1998-06-29 2002-07-16 Emc Corporation Virtual ports for data transferring of a data storage system
US6973455B1 (en) 1999-03-03 2005-12-06 Emc Corporation File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator
US7305451B2 (en) * 1998-08-24 2007-12-04 Microsoft Corporation System for providing users an integrated directory service containing content nodes located in different groups of application servers in computer network
US6324581B1 (en) 1999-03-03 2001-11-27 Emc Corporation File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems
US6275470B1 (en) 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
US8032634B1 (en) 1999-08-23 2011-10-04 Oracle America, Inc. Approach for allocating resources to an apparatus based on resource requirements
US6779016B1 (en) * 1999-08-23 2004-08-17 Terraspring, Inc. Extensible computing system
US8543901B1 (en) 1999-11-01 2013-09-24 Level 3 Communications, Llc Verification of content stored in a network
US6687846B1 (en) 2000-03-30 2004-02-03 Intel Corporation System and method for error handling and recovery
JP2003536329A (en) * 2000-06-02 2003-12-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Method and system for reading a block from a storage medium
US7020709B1 (en) 2000-06-30 2006-03-28 Intel Corporation System and method for fault tolerant stream splitting
US7318107B1 (en) 2000-06-30 2008-01-08 Intel Corporation System and method for automatic stream fail-over
JP2002108350A (en) 2000-09-28 2002-04-10 Internatl Business Mach Corp <Ibm> Method and system for music distribution
US7188357B1 (en) * 2000-11-16 2007-03-06 Unisys Corporation Video-on demand video server disk/memory streaming selection methodology
US20020091612A1 (en) * 2000-12-21 2002-07-11 International Business Machines Corporation Method, system, and business method for providing a marketplace for computing capacity in a network
US6651141B2 (en) 2000-12-29 2003-11-18 Intel Corporation System and method for populating cache servers with popular media contents
US6990667B2 (en) 2001-01-29 2006-01-24 Adaptec, Inc. Server-independent object positioning for load balancing drives and servers
US6775679B2 (en) 2001-03-20 2004-08-10 Emc Corporation Building a meta file system from file system cells
US7444662B2 (en) * 2001-06-28 2008-10-28 Emc Corporation Video file server cache management using movie ratings for reservation of memory and bandwidth resources
US7860964B2 (en) 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
EP1436736B1 (en) 2001-09-28 2017-06-28 Level 3 CDN International, Inc. Configurable adaptive global traffic control and management
US7373644B2 (en) 2001-10-02 2008-05-13 Level 3 Communications, Llc Automated server replication
US20030079027A1 (en) 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
US6985914B2 (en) * 2002-02-20 2006-01-10 Emc Corporation Cluster meta file system of file system cells managed by respective data movers of a network file server
US7878908B2 (en) * 2002-11-14 2011-02-01 Nintendo Co., Ltd. Multiplexed secure video game play distribution
US20040162768A1 (en) * 2003-01-31 2004-08-19 Snyder Aaron Francis System architecture for a vendor management inventory solution
US20050114235A1 (en) * 2003-11-25 2005-05-26 Snyder Aaron F. Demand and order-based process flow for vendor managed inventory
US7415470B2 (en) * 2004-08-12 2008-08-19 Oracle International Corporation Capturing and re-creating the state of a queue when migrating a session
US7502824B2 (en) * 2004-08-12 2009-03-10 Oracle International Corporation Database shutdown with session migration
US7613710B2 (en) * 2004-08-12 2009-11-03 Oracle International Corporation Suspending a result set and continuing from a suspended result set
US7587400B2 (en) * 2004-08-12 2009-09-08 Oracle International Corporation Suspending a result set and continuing from a suspended result set for transparent session migration
US7743333B2 (en) * 2004-08-12 2010-06-22 Oracle International Corporation Suspending a result set and continuing from a suspended result set for scrollable cursors
US8166005B2 (en) * 2004-09-21 2012-04-24 Emc Corporation Pathname caching and protection of the root directory in a nested multilayer directory structure
DE102004062116B3 (en) * 2004-12-23 2006-05-11 Ab Skf Bearing arrangement for computer tomography has bearing with inner ring, which stores construction unit, and outer ring, which is connected with damping element, fitted as single element and contain hollow cylindrical basic outline
US9176772B2 (en) * 2005-02-11 2015-11-03 Oracle International Corporation Suspending and resuming of sessions
US7853686B2 (en) * 2005-11-16 2010-12-14 ABSi Corporation System and method for wirelessly broadcasting content from a core for receipt by a mobile client
US8260945B2 (en) * 2005-11-16 2012-09-04 ABSi Corporation System and method for wirelessly broadcasting content from a core for receipt by a mobile client
US8286218B2 (en) 2006-06-08 2012-10-09 Ajp Enterprises, Llc Systems and methods of customized television programming over the internet
WO2008058823A1 (en) * 2006-11-14 2008-05-22 Siemens Aktiengesellschaft Method for the load distribution in a peer-to-peer-overlay network
US8627514B1 (en) * 2007-03-23 2014-01-14 Spartan Tactical Concepts, LLC Vehicle ready modular light weight load bearing equipment apparatus
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
WO2009123868A2 (en) 2008-04-04 2009-10-08 Level 3 Communications, Llc Handling long-tail content in a content delivery network (cdn)
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US20090254931A1 (en) * 2008-04-07 2009-10-08 Pizzurro Alfred J Systems and methods of interactive production marketing
US8224899B2 (en) 2008-04-17 2012-07-17 Eloy Technology, Llc Method and system for aggregating media collections between participants of a sharing network
US8285811B2 (en) * 2008-04-17 2012-10-09 Eloy Technology, Llc Aggregating media collections to provide a primary list and sorted sub-lists
US8484311B2 (en) * 2008-04-17 2013-07-09 Eloy Technology, Llc Pruning an aggregate media collection
US8285810B2 (en) * 2008-04-17 2012-10-09 Eloy Technology, Llc Aggregating media collections between participants of a sharing network utilizing bridging
US20100070490A1 (en) * 2008-09-17 2010-03-18 Eloy Technology, Llc System and method for enhanced smart playlists with aggregated media collections
US8997154B2 (en) * 2008-09-19 2015-03-31 At&T Intellectual Property I, Lp Apparatus and method for obtaining media content
US8484227B2 (en) * 2008-10-15 2013-07-09 Eloy Technology, Llc Caching and synching process for a media sharing system
US8880599B2 (en) 2008-10-15 2014-11-04 Eloy Technology, Llc Collection digest for a media sharing system
US20100114979A1 (en) * 2008-10-28 2010-05-06 Concert Technology Corporation System and method for correlating similar playlists in a media sharing network
US9014832B2 (en) 2009-02-02 2015-04-21 Eloy Technology, Llc Augmenting media content in a media sharing group
US8776158B1 (en) 2009-09-30 2014-07-08 Emc Corporation Asynchronous shifting windows caching for forward and backward video streaming
US9208239B2 (en) 2010-09-29 2015-12-08 Eloy Technology, Llc Method and system for aggregating music in the cloud
TW201224773A (en) * 2010-12-10 2012-06-16 Inst Information Industry System and method for playing advertisement

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5841538B2 (en) * 1975-12-04 1983-09-13 株式会社東芝 Multiprocessor system instructions
US4207609A (en) * 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
JPH06100981B2 (en) * 1983-12-28 1994-12-12 株式会社日立製作所 Memory hierarchy control method
US5172413A (en) * 1990-12-20 1992-12-15 Sasktel Secure hierarchial video delivery system and method
US5168353A (en) * 1990-12-21 1992-12-01 Gte Laboratories Incorporated Video distribution system allowing viewer access to time staggered indentical prerecorded programs
US5383112A (en) * 1991-01-07 1995-01-17 Gte Service Corporation Inventory management method
US5345584A (en) * 1991-03-11 1994-09-06 Laclead Enterprises System for managing data storage based on vector-summed size-frequency vectors for data sets, devices, and residual storage on devices
US5371532A (en) * 1992-05-15 1994-12-06 Bell Communications Research, Inc. Communications architecture and method for distributing information services
US5423018A (en) * 1992-11-16 1995-06-06 International Business Machines Corporation Queue time reduction in a data storage hierarchy using volume mount rate

Also Published As

Publication number Publication date
CA2145164A1 (en) 1995-11-12
EP0683464A2 (en) 1995-11-22
KR950033924A (en) 1995-12-26
JPH08102933A (en) 1996-04-16
EP0683464A3 (en) 1996-07-03
KR0160218B1 (en) 1998-12-15
JP3305916B2 (en) 2002-07-24
EP0683464B1 (en) 1999-05-06
US5544313A (en) 1996-08-06
DE69509433D1 (en) 1999-06-10
DE69509433T2 (en) 1999-12-16

Similar Documents

Publication Publication Date Title
CA2145164C (en) Baton passing optimization scheme for load balancing/configuration planning in a video-on-demand computer system
US5928327A (en) System and process for delivering digital data on demand
Yu et al. Grouped sweeping scheduling for DASD-based multimedia storage management
JP2902975B2 (en) Memory buffer management method and system
Sheu et al. Chaining: A generalized batching technique for video-on-demand systems
Yu et al. Design and analysis of a grouped sweeping scheme for multimedia storage management
US5996025A (en) Network transparent access framework for multimedia serving
Chen et al. Optimization of the grouped sweeping scheduling (GSS) with heterogeneous multimedia streams
US7849194B2 (en) File system and method for administrating storage space and bandwidth in a computer system serving media assets
US6748440B1 (en) Flow of streaming data through multiple processing modules
EP0845907B1 (en) System and method for handling multimedia datastreams employing shared loop architecture multimedia subsystem clusters
US6766357B1 (en) Apparatus and method for efficient transfer of multimedia data for playback
US5845279A (en) Scheduling resources for continuous media databases
EP0798925A2 (en) Method and apparatus for providing enhanced pay per view in a video server
Korst Random duplicated assignment: An alternative to striping in video servers
CN1093660C (en) System method for efficiently transferring datastreams in multimedia system
JPH0773121A (en) Method and apparatus for provision of file
JPH09163353A (en) Method for selecting node and distributed video server system
Doganata et al. Making a cost-effective video server
US5940865A (en) Apparatus and method for accessing plural storage devices in predetermined order by slot allocation
CA2373155C (en) Video on demand system
Lee Buffer management and dimensioning for a pull-based parallel video server
Mostefaoui et al. Exploiting Data Structures in a High Performance Video Server for TV archives.
DoĞanata et al. A video server cost/performance estimator tool
KR100216233B1 (en) Access load sharing method of file system for continuous medium

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed
MKLA Lapsed

Effective date: 20060320