EP1761864A2 - Method and system for resource management in a video on-demand server - Google Patents
Method and system for resource management in a video on-demand serverInfo
- Publication number
- EP1761864A2 EP1761864A2 EP05757201A EP05757201A EP1761864A2 EP 1761864 A2 EP1761864 A2 EP 1761864A2 EP 05757201 A EP05757201 A EP 05757201A EP 05757201 A EP05757201 A EP 05757201A EP 1761864 A2 EP1761864 A2 EP 1761864A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- content
- memory
- resident
- server
- demand
- 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.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/61—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
Definitions
- the present invention relates to methods and apparatus for managing resources in an on-demand, memory-based server and, in particular, managing resources to control and service a large number of simultaneous streams of audio, video and or other data formats being played out to a network.
- Background Description Conventional on-demand systems utilize disk storage based systems that stream content to a receiving device over a network.
- On- demand servers obtain, store and play content such as, for example but not limited to, audio files, encoded television programming, and encoded movies to the customer.
- On-demand servers request content from long term storage devices such as disk arrays, disk storage farms, tape drives or other storage media, whereby content is stored across the this term storage, e.g.
- the on-demand server Upon request, the on-demand server loads content from the stored location such as Long Term Storage (LTS) or Near Term Storage (NTS) into a stream buffer or cache, for example, using a first-in-first-out (FIFO) buffer mechanism of the on-demand server that is assigned to the stream.
- the server streams content out of the FIFO buffer to the receiving device.
- Conventional on-demand servers have a disadvantage in their reliance on disk access to support the streaming. Such systems and servers do not recognize or otherwise account for concurrent usage of the same streaming content.
- On-demand servers are configured and rated to operate on a one-to-one (1 :1 ) ratio, whereby the rating is based on output streams showing the capacity of receiving and streaming an on-demand request by a customer.
- the design of present on-demand servers also have the disadvantage of increased implementation cost per stream due, in part, to increased hardware elements required, built in redundancies of the implementation, and the inability to detect and support concurrent streaming of content.
- Conventional on-demand servers also have disadvantages relating to limited internal memory that can be used for streaming. This inhibits or prevents the capability to support concurrency. Concurrency is the ability to stream the same copy of content to multiple receiving devices. This is a very common usage scenario for on-demand systems.
- On-demand servers heretofore have sought to solve concurrency problems by creating redundant content stored on near term storage (NTS), in long term disk storage or by using optimization techniques that require manual insertion of a resident flag to mark a limited subset of specific content that should be pulled into memory. While this model is effective, it requires considerable management of the content library and does not provide a dynamic mechanism that changes based on the real time usage model. All of such optimization schemes are not as efficient and cost effective as desired.
- NTS near term storage
- trick play support With the introduction of trick play support, conventional on-demand server resources are strained further by requests for trick playback functions such as fast forward, rewind, fast rewind, pause, stop and record.
- trick playback functions such as fast forward, rewind, fast rewind, pause, stop and record.
- the problems described above are exacerbated because disk-storage-based on-demand servers offering trick play store a separate secondary data file — trick play file - to disk storage and such servers must switch to the secondary file when trick modes requested by the receiving device.
- Storing secondary files has disadvantages in that additional resources of the server, including but not limited to storage and processing resources, are needed to support the storage and retrieval of multiple files for a single piece of content.
- the present invention determines an efficient combination of resident and segmented content based on usage count of the active contents. [0011] The present invention determines an efficient combination of resident and segmented contents based on available bandwidth information allocated to streaming. [0012] The invention dynamically manages the trick mode rates of video streams playing segmented content.
- This invention is a method of dynamically managing the memory cache on a DRAM based VOD server.
- the invention uses DRAM memory resources and the current usage state to determine which program contents (MPEG-2, HD or other audiovisual data file standards) can be made resident and which program contents will be paged between DRAM memory and disk storage.
- the method utilizes the adaptive concurrency count of program contents requested for streaming by customers (output streams) to determine memory and bandwidth allocation between resident and paged content.
- the method is adaptive to streaming requests and adjusts which program contents are resident and paged, thereby swapping program content in and out of memory based on changing concurrency values.
- the method further minimizes disk access by placing highly utilized contents into memory first.
- the method also is further advantageous to make it possible to support efficient playback of a larger number of programs than would otherwise be possible on a given hardware configuration at a lower cost per stream. It takes into account bandwidth limitations and settings to prevent trick mode stalls due to unavailable bandwidth. DESCRIPTION OF THE DRAWINGS
- FIG. 1 is a schematic diagram illustrating an all memory server on-demand distribution system
- FIG. 2 is a schematic diagram illustrating the resource management system according to an exemplary embodiment of the present invention
- FIG. 3 is a diagram illustrating demand expected according to Zipfs principles
- FIG. 4 is a diagram illustrating resource management in view of memory usage of content and content segments according to an exemplary embodiment of the present invention
- FIG. 5 is a diagram illustrating resource management in view of bandwidth usage of content and bandwidth in credits according to an exemplary embodiment of the present invention.
- FIG. 6 is a state diagram illustrating transition between segmented and resident content usage.
- Volatile memory advantageously can be random access memory (RAM) readily available in 2 Gigabyte chipsets.
- the memory based on- demand system 20 is configured to distribute content 22 to end users such as, for example, in a network distribution system.
- a head end 24 of the system 20 obtains content from short- or long-term storage in response to requests sent across the network distribution system by the end user.
- the head end 24 is generally configured with storage 26, such as disk storage from either of the short- or long-term storage that contains the content to be streamed, a volatile, content addressable memory (CAM) based on-demand server 28 such as a B-1 VOD Server or SBB-1 manufactured by Broadbus Technologies, Inc., a wide bus 30 and a switch 32.
- storage 26 such as disk storage from either of the short- or long-term storage that contains the content to be streamed
- CAM volatile, content addressable memory
- B-1 VOD Server or SBB-1 manufactured by Broadbus Technologies, Inc. such as a B-1 VOD Server or SBB-1 manufactured by Broadbus Technologies, Inc.
- Concurrency is the number of streams requesting a piece of content.
- Resident content means content entirely contained in the memory of the on-demand server 28.
- Segmented content is a content contained in the memory of the on-demand server 28, whereby only a window around the current stream location is kept in memory.
- a segment for purposes of this patent application, is an 8 megabyte piece of content 22.
- Load is meant to indicate making a content 22 resident in the memory of the on-demand server 28.
- a credit is a portion of near-term-storage (NTS) bandwidth (BW), which in the present application is set to a unit of four (4) megabits-per-second (mbps).
- NTS near-term-storage
- BW bandwidth
- a memory limit is a total amount of memory that can be allocated to streaming.
- a bandwidth limit is a limit of the total bandwidth that can be allocated, whereby setting the bandwidth limit to high may cause trick modes to stall due to unavailable bandwidth BW.
- a paging trick play speed limit means the maximum speed a stream that is playing segmented content 22 is allowed to play out in trick play mode.
- Content 22 also can be obtained and streamed out to a customer in other applications and formats.
- the content 22 can be another form of data and in another format, specifically, an audio MP3 file.
- data comes in numerous other formats that are streamed to a customer on-demand where it is still advantageous to manage server resources when the server is providing streaming to many, multiple end users to display and seamlessly play the requested content 22.
- the head end 24 illustrated in FIG. 1 connects to various distribution systems to obtain content 22 either wirelessly 34 or physically on a land line 36, or both.
- wireless distribution 34 involves connecting the head end 24 to a satellite distribution network 38.
- distribution by land line 36 connects the head end 24 to a high-speed fiber optical network 40 that can be configured, for example, to have high speed fiber optic lines 42, connected to hubs 44, with such hubs 44 connected to nodes 46, and the nodes connected to individual end-users 48, e.g.
- cable distribution of content 22 to an end user's residence uses coaxial cable 50 via Quaternary/Quadrature Amplitude Modulation (QAM) 52 to a distribution device such a set top box 38 that converts to a NTSC signal 56 input into an appropriate device 58 that can play out the content 22 to, for example, a TV, HDTV, LCD, a media center or other displaying device.
- QAM Quaternary/Quadrature Amplitude Modulation
- the method begins by ordering usage of the memory based on sorting the concurrency for a particular piece of content 22.
- the stream controller 62 instructs the server 28 and related components to obtain and load the content 22 into memory of the server 28.
- the stream controller 62 makes a request to the server 28 to go out to disk storage, either long term or near term storage, loading the content 22 and transferred it to the RAM memory of the server 28.
- the memory of the server 28 is empty for the first on-demand request for a particular piece of content 22 by a customer or other end user, e.g. such as a full length feature movie.
- the content 22 is loaded entirely into memory, or made resident.
- an on-demand system 20 of the present invention includes a resource manager 60 having a Stream Controller 62 to provide content 22 by finding and streaming such content 22 to customer on-demand.
- the Stream Controller 62 is configured to control dynamically streaming functions such as, for example, loading content 22 entirely into memory 64, loading portions or segments of content 22 into memory 66, managing near-term-storage (NTS) bandwidth 68 limits, managing playback functions 70 such as trick play modes, and analyzing the speed of trick playout.
- NTS near-term-storage
- playback functions 70 such as trick play modes, and analyzing the speed of trick playout.
- content 22 demanded by an end user can be either pulled entirely into the memory or pulled into memory in segments from disk storage 26.
- the Stream Controller 62 operates to receive packages containing assets and MPEG content files sent from a media provider or other asset owner to the cable or satellite network.
- the cable or satellite network uses a catcher to receive the packages and assets, which the catcher forwards to the asset manager application.
- the asset manager application records the association between the assets and their related content files and signals the FTP transfer of the content 22 from the catcher to the on- demand server 28.
- the Stream Controller 62 maintains the association between the contents 22 and the on-demand server 28 that store them on its NTS 26.
- the main functionality of the Stream Controller 62 is to: • Implement the Content 22 as an object as per ISA standard and insure persistence • Maintain information about all of the Content 22 files installed on the on-demand server 28 • Provide functionality to remove Content 22 files.
- the Content 22 is a movie in an MPEG-2 format ordered through the Cable or Satellite set-top-box 54 that is then played to user's TV. It can be appreciated that each movie has a predetermined length and each MPEG-2 file is played out sequentially.
- the length of a particular piece of programming content has a predictable size, time, and or length.
- the playback of the movie can be adapted to an end user's trick playback options as is discussed herein.
- Content 22 that is stored in segments around a particular time uses less memory than content 22 stored entirely in memory.
- the method and system of the present invention utilizes a server 28 configured to determine which content 22 will be resident content 72 and which will be loaded into memory as segments of the content 22.
- an on-demand server 28 utilizing a random access memory (RAM) uses an optimized method to yield optimal stream counts based on the concurrency data of the streams and bandwidth resources.
- FIG. 3 illustrates a general usage pattern showing a Zipfs curve 72, in which a decrease in the stream count for each content will follow the ratio of 20%, 10%, 6.6%, 5%, 4%...1/n.
- the total streams using each content is inversely proportional to the rank, that is, proportional to 1, 1/2, 1/3, 1/4, etc.
- the first alteration is to add a constant to the rank, giving 1/(1 + constant), 1/(2 + constant), 1/(3 + constant), 1/(4 + constant), etc., whereby the constant is a ranking such as, for example, a Nielsen rating, and the second alteration changes the starting point for the curve, for example, starting at 10% usage for the first content.
- the present invention instead of comparing concurrency data with Zipfs original law, applies additional factors such as, for example, a number is added to the rank and to the power 1 , which are used to adjust the resident content 72 and segment content 74 for an optimal fit to yield optimized stream and bandwidth resources.
- Resident Content 72 when content 22 is stored entirely in the memory of the on-demand server 28 it is termed Resident Content 72.
- Segment Content 74 When a segment of the content 22 to be streamed is stored in memory in the memory of the on-demand server 28 it is termed Segment Content 74, for example, if a portion of an MPEG movie file is striped, paged, tiled or otherwise stored in less than Resident Content 72.
- Segment Content 74 for example, if a portion of an MPEG movie file is striped, paged, tiled or otherwise stored in less than Resident Content 72.
- line 76 When all contents 22 are entirely resident in a 1 :1 ratio, the required memory usage is designated by line 76. When all contents are paged then the bandwidth requirement is designated by line 77.
- the method and system described in the present invention optimizes these two usage curves by balancing the memory usage against the bandwidth requirements by making contents with the highest concurrency values resident and thereby reducing the bandwidth requirements for streams on those contents 62a.
- the contents with lower concurrency are played using segmented content thereby reducing the memory requirements 62c while using bandwidth to the disk arrays.
- Content 22 with high concurrency values go in memory first; low concurrency content 22 is segmented first.
- the present invention advantageously operates to convert resident content 72 to segmented content 74 until both resident and segmented content 72 and 74, respectively, occupy the available memory of the on-demand server 28.
- a single attempt is made to fit the entire content 22 in memory available in the server 28 at the time of the attempt. If memory can accommodate the content 22, make it resident content 72. If memory of the server cannot accommodate the content 22, make it segment content 74.
- the graphical diagram illustrates memory usage relationship between the number of pieces of content 22 tracked by the server in a content index and the memory usage in tiles such as, for example, an 8 megabyte piece of a content 22.
- the resident content 72 and the segment content 74 are dynamically managed by the Stream Controller 62 to fit within in the available memory 78. At first, resident content 72 having a high concurrency is loaded into memory and there is no segmented content 74 as shown at element 62a.
- the Stream Controller 62 makes a choice of whether to make content 22 resident content 72 or segment content 74 based on bandwidth, memory limits and concurrency as shown at element 62b. As more users request additional content 22, the Stream Controller 62 makes a choice of whether to make content 22 resident content 72 or segment content 74 based on bandwidth, memory limits and concurrency as shown at element 62c.
- the graphical diagram illustrates bandwidth usage relationship between the available bandwidth credits and the number of pieces of content 22 tracked by the server in the content index.
- the resident content 72 and the segment content 74 are dynamically managed by the Stream Controller 62 to fit within in the available bandwidth. Streams playing resident 62a content require no bandwidth once the content is loaded into memory while segmented contents required bandwidth proportional to the number of streams playing the content 62c.
- FIGS. 4 and 6 As concurrent requests of users increase, the advantages of the present invention are illustrated in FIGS. 4 and 6 over conventional on-demand servers having a one-to-one ratio to page content 77.
- Conventional on-demand servers only stream directly from disk and, therefore, are limited to small stream counts in a one-to-one ratio 77.
- Such conventional on-demand servers have disadvantages of physical limits being reached in disk access times, the need for heterogeneous upgradeability of such disks (forklift upgrade) and speed. As a result, such servers are inherently more deterministic in the number of supportable streams and are largely limited by disk access times.
- the present invention advantageously can use a combination of NTS and a large memory cache to increase stream count in a usage model having high concurrency counts.
- the method and system of the present invention operates similar to a pure disk based system and the stream counts are low.
- Stream counts can be very large if all streams are accessing the same content 22 as it is loaded into memory once then no disk accesses are required to support the play out.
- the true usage model is somewhere between the two extremes, where most of the streams are accessing a relatively small number of content 22 files, while a subset are accessing unique content 22 objects which is why factoring in concurrency counts assist to optimize streaming of the content 22.
- DRAM caches with fast access times support a large number of streams, but are limited by cost to sizes that are not capable of holding all the content 22 files on concurrency in a video on-demand (VOD) or other on-demand deployment library.
- VOD video on-demand
- DRAM is also not persistent between power cycles, so the contents must also be stored on disks.
- Disk based arrays have very large storage capacity but are limited in the number of streams they can support due to slow access times.
- the optimal VOD server combines the best aspects of both technologies to support the largest number of streams possible. The stream count is maximized when content 22 files that are being streamed to a large number of set tops are entirely loaded into memory, while content 22 files with small stream counts only load a portion of the content 22 into memory around the current play out location for each stream.
- the method of the present invention optimizes the memory and NTS bandwidth usage to support the maximum number of streams at all times by pulling highly used content 22 files into the memory cache while leaving the other content 22 files to stream directly from the disks.
- the method begins by ordering usage of the memory based on sorting the concurrency for a particular content 22 relative to the usage of other content 22 files.
- the sorting bases its first allocation of memory on the assumption that all streaming content 22 can be stored in resident memory. If the memory limit is not reached all contents 22 are subsequently pulled into memory. If the limit is exceeded, the method takes repetitive steps to convert the least used contents 72 to segment content 74 until all requested content 22 fits into the available memory.
- the memory required to hold the entire content 22 is freed and only a small window for each stream playing that content 22 allocated in its place.
- the sorting process packs first the content 22 with the highest concurrency values as resident content 72 into memory of the on-demand memory based server 28.
- the method or process of the present invention makes segments content 74 with the lowest concurrency first, thereby freeing memory and using the minimum NTS bandwidth.
- the resident content 72 and segment content 74 adaptively changes as its concurrency values change relative the requests for other content 22. However, a stream playing multiple content 22 files in a play list is still played as segmented 74 until all of the content 22 files are made resident content 72.
- bandwidth is allocated based on the content 22 play rate because standard definition content 22 files require less bandwidth than high definition content files.
- the size of the segment window is also scaled to account for the higher play out rates required for high definition (HD) transmission. Both the memory and bandwidth limits are tested whenever a new stream is requested. If the resources are not available the stream cannot be created without affecting current streams and is therefore rejected. Each segmented stream requires (bit Rate / 4 mbps + 1 ) credits. Each segmented stream requires credit * 8 tiles. When a content 22 is converted from resident content 72 to segmented content 74 the memory savings is equal to: (content size) minus (-) (credit * 8) * (number of streams) Eq.
- the bandwidth (BW) required is: (credit * number of streams) Eq. (2)
- the BW credits required to load a content 22 are consumed until the load is complete. All loads occur in parallel as fast and efficiently as possible as determined by the Stream Controller 26. Overlap that is not otherwise accounted for as all segmented 72 streams are assumed to use their full bandwidth requirements, however, when overlap does occur the segments will be reused in memory without loading additional copies of the segments, thereby reducing the actual disk usage.
- the method and process of the present invention to optimize on demand server 28 resources by manipulating the configuration of resident content 72 and segmented content 74 is run whenever a new stream is added to the system. While it is possible to optimize again when streams are deleted, it may not be necessary as then system will already be capable of supporting all existing streams.
- conditions for stream creation can be bounded by two elements: (1 ) Bandwidth - the memory fits, but the bandwidth isn't available to page, and (2) Memory - there is not enough memory available even after all streams are converted to segmented content.
- Each of these conditions can be reported to the Stream Controller 62 to show and report content statistics.
- certain statistics about the system usage include: • Settings for memory and bandwidth limits • Memory that would be required to make all active contents resident. • Stream count of the content with the highest usage. • Memory usage for both resident and segmented contents. • Bandwidth used for loading resident contents. • Bandwidth used for segmented streams. • Number of resident and segmented contents. • Number of resident and segmented streams.
- the method and system of managing resources in the on- demand server 28 is configured to utilized methods (1) that operate on the stream server in communication with the streaming hardware; and (2) that operate on the content manager so as to optimize fitting content into the memory on-demand server 28.
- the Stream Controller 62 is configured to control the server 28 communications and streaming hardware.
- the above-described resource manager 60 is configured to fitting content into the content addressable memory (CAM) of the on-demand server 28 with streaming out of NTS so as to optimize bandwidth and memory based on concurrency.
- the resource manager 60 is further configured to generate statistics to the Stream Controller 62 to pull content on and off of NTS and into memory.
- the method and system of managing resources in the on-demand server 28 is configured to utilize methods (1 ) that operate on the stream server in communication with the streaming hardware; and (2) that operate on the content manager so as to optimize- fitting content into the memory on-demand server 28.
- the Stream Controller 62 is configured to control the server 28 communications and streaming hardware.
- the above-described resource manager 60 is configured to fit content into the content memory (CMEM) of the on-demand server 28 with loading out of NTS so as to optimize bandwidth and memory based on concurrency.
- the resource manager 60 is further configured to generate requests to the Stream Controller 62 to pull content on and off of NTS and into memory.
- FIGS. 1 and 2 the method of managing resources in the on- demand server 28 is illustrated so as to optimize the loading of resident and segmented content into the Content memory of the on-demand server 28. Initially, each piece of content is ingested into the content memory of the on-demand server 28 along with additional information for trick play. At this time, the content is immediately available for streaming as well as transfer to NTS.
- the on-demand server is tracking the relative locations in the content that is being accessed by each stream. It manages a segment of the content for each stream that extends forward and backward from the current content location. For example, at time t-i the first N parts of content relative address 0 to N-1 are loaded into CMEM. At time t 2 , the control dumps segments 0 to 2 and adds segments N to N+2 for a segment of 3 to N+2. If the stream were in reverse, part 2 would be reloaded and part N+2 would be dumped.
- the resource manager is tracking each particular stream to determine position and direction so as to understand (1) what part of the content is being accessed, (2) which direction the stream is playing and, therefore, manages the loading and dumping of more parts in a timely manner to enable normal streaming and trick play features.
- the number of parts can expand depending on the size that is needed for streaming,- trick play features or for different content sizes such as high definition, where the content file is four times as big as a standard file for the same amount of playtime.
- the interaction between the resource manager and the stream control described above continuously determines what content is resident in content memory and what content needs to be segmented to content memory for streaming.
- the process actions and process states 100 through 166 illustrate the transition of content between the fully resident and segmented operation.
- Non fatal problems can occur between the streaming hardware and streaming process or the hardware may be busy and cannot respond to the software fast enough.
- the system is set up so that the current page of content needed to satisfy a customer request is always available to the stream so as not to generate a blank screen.
- the present invention advantageously utilizes the predictability of the sequential content: segmented content uses less memory than resident content, whereby such that resources can be managed for large numbers of streams.
- the resource manager makes a decision, at any time, whether to convert the content in memory to between paged and resident so as to optimize the bandwidth streaming from the server.
- FIG. 8 which describes the transition, the boxes are the state of the stream and arrows are the actions we take to transfer from state to state, one box to another.
- the resource manager is given a request to start a stream. Content memory is allocated to hold the content segment, the segment is loaded from NTS if needed and the stream is started. The stream is now running on segmented content in state 106.
- the stream control will continue to load and release content as the stream progresses through the content with the intent of keeping the size of the content in the segment fixed and centered on the current stream request.
- an instruction is given to delete a stream, causing the (1) transfer of content from NTS to Content memory to be stopped or aborted; (2) deleting of tiles already in Content memory; and (3) freeing the Content memory allocation for use by other streams.
- Stream control may decide that a specific content should be made resident and all streams with their own segments of the content switch over to using the single copy of resident content.
- Content memory is allocated for the entire content and a load request for the entire content is issued. Note that the streams are still actively using content segments while the content load continues in state 110.
- the stream control may decide to switch the content back to using segments.
- action 114 shows the actions that result from this decision with the abort of the content load request. Since this abort may take some time, state 116 is entered while waiting for the abort to finish. In this interval, the stream control may reverse its decision again and restart the transition to resident content. Action 120 is then taken to restart the load of the content from what is in thus far and reenter state 110. If the content load abort started by action 114 completes while in state 116, action 118 is taken to free the allocation of Content memory for the resident content and delete it. The state of the content is set back to 104. At state 110, the loading of content may proceed to completion and trigger action 122.
- This action will request each stream to stop using its content segment and switch to using the resident content. While waiting for the switch replies, state 124 is entered. When all streams have switched to the resident content, action 126 is triggered to abort all load requests for the content segments that have been operating up to this time. State 128 is entered while the load aborts are being processed. When the load aborts are all completed, action 130 is triggered to delete the content segments and return the Content memory allocated for those segments. All streams using this content are now accessing the single copy of resident content indicated by state 136.
- the stream control may switch back to each stream using its own segment of the content.
- action 138 requests the current location of each stream within the content so that the correct segment can be loaded for it.
- State 140 is entered while waiting for the location replies. If the stream control switches back to resident content, action 142 puts the state back to state 136 and the location replies are ignored.
- action 144 will allocate content segments for each stream in Content memory and issue segment loads to NTS. State 146 is entered while the loads complete. If stream control transitions back to resident content at this time, action 164 is triggered to abort the segment loads and state 128 is entered.
- action 166 is triggered to reissue the segment loads and state 146 is entered.
- segment loads complete, the streams are all requested to switch over to using the segments by action 150 and state 152 is entered while waiting for the replies.
- a stream control transition back to resident content would trigger action 160 which would issue another set of switches back to the resident content and set the state to 124.
- a transition to segmented content would trigger action 162 which would issue stream switch requests to use content segments and set state to 152.
- action 158 will delete the resident content and free the Content memory allocation for the resident content.
- the method and system of the present invention can dynamically adjusting BW limit based on trick play rates.
- the streaming playback of content stored in the video on-demand server of the present invention supports record and playback features operated by a user or customer also known as trick play modes.
- Trick play includes controlling the playing out a program content such as, for example, pause, play and stopping the playing of the content as well as fast forward (FF) and rewinding (R) the program.
- FF fast forward
- R rewinding
- the fast forward and rewinding of the program can be accomplished in many speeds such as 1x, 2x, 4x and multiples thereof.
- Trick play mode also can take a user to content segmentation such as skipping around, in any direction possible, and in any conceivable combination or playback listing to chapter, volume, section and the like.
- the present invention supports segmented content 74 which can be streamed by the on-demand server 28 by loading into memory from NTS 26 only the portion of segmented content 74 required to stream at the present moment in time. Segmented content 74 conserves the on-demand server 28 DRAM resources and allows for providing higher numbers of unique content streams. While segmented content 74 conserves DRAM, segmented content 74 consumes NTS 26 storage bandwidth.
- Trick play features such as fast-forward and rewind may consume NTS 26 storage bandwidth at a greater rate than segmented content streaming at normal play rate. It is a desirable feature of any media serving system 28 to allow multiple fast-forwarding and rewinding rates. Higher trick speeds of segment content 74 may result in higher NTS 26 storage bandwidth utilization.
- the method and system of the present invention supports the dynamic modification of current trick play rates to prevent the oversubscription of NTS 26 bandwidth and thus any resulting negative impact on segmented content 74 delivery.
- Dynamic trick play management allows segmented content 74 streams to trick at the highest rate possible based on current NTS 26 bandwidth utilization. As NTS 26 bandwidth utilization increases maximum trick rates are reduced, whereby if trick rates where left unbounded, streams at normal play rate could be starved of media and forced into a pause state.
- the present invention calls for the on demand server 28 to continually monitor NTS 26 bandwidth utilization. If NTS 26 bandwidth utilization rises above a configured value, the on-demand server 28 will automatically reduce the trick rate of streams using segmented content 74. Streams consuming the largest amount of NTS 26 bandwidth, that is streaming at the highest rates, are forced to reduce their NTS 26 bandwidth utilization first. This is accomplished by dropping the streams trick play rate from a high value to a lower value. This process of reducing the trick rate of stream running at high trick rates continues until NTS 26 bandwidth utilization drops down to an acceptable level. This method of continually reducing the highest trick rate streams allows for the support of the maximum number of streams to simultaneously operate at low trick rate during periods of high NTS 26 utilization.
- the method and system of the present invention manages bandwidth that the 5 on-demand server 28 applies to new streams attempting to enter trick mode. If the on- demand server 28 determines that the requested trick speed will cause NTS bandwidth utilization to rise above the configured maximum value, the requested speed will be dynamically reduced until the limit is not exceeded. If the reduction of trick speed to the lowest supported rate is still not enough to pull back NTS bandwidth utilization to below 0 the configured maximum value, the trick play request will be rejected and the on- demand server 28 will generate the appropriate action or error.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US57640204P | 2004-06-01 | 2004-06-01 | |
| PCT/US2005/019293 WO2005119490A2 (en) | 2004-06-01 | 2005-06-01 | Method and system for resource management in a video on-demand server |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| EP1761864A2 true EP1761864A2 (en) | 2007-03-14 |
| EP1761864A4 EP1761864A4 (en) | 2007-09-19 |
Family
ID=35463558
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP05757201A Withdrawn EP1761864A4 (en) | 2004-06-01 | 2005-06-01 | Method and system for resource management in a video on-demand server |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP1761864A4 (en) |
| WO (1) | WO2005119490A2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20090100496A1 (en) * | 2006-04-24 | 2009-04-16 | Andreas Bechtolsheim | Media server system |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4132788B2 (en) * | 2001-11-15 | 2008-08-13 | 三菱電機株式会社 | Data communication device |
| US20040003101A1 (en) * | 2002-06-26 | 2004-01-01 | Roth David J. | Caching control for streaming media |
| US8010985B2 (en) * | 2004-06-01 | 2011-08-30 | General Instrument Corporation | Method and system for resource management in a video on-demand server |
| US20050278760A1 (en) * | 2004-06-01 | 2005-12-15 | Don Dewar | Method and system for controlling streaming in an on-demand server |
-
2005
- 2005-06-01 WO PCT/US2005/019293 patent/WO2005119490A2/en not_active Ceased
- 2005-06-01 EP EP05757201A patent/EP1761864A4/en not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| WO2005119490A3 (en) | 2006-10-26 |
| EP1761864A4 (en) | 2007-09-19 |
| WO2005119490A2 (en) | 2005-12-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8010985B2 (en) | Method and system for resource management in a video on-demand server | |
| KR100228937B1 (en) | Media streamer | |
| US5815662A (en) | Predictive memory caching for media-on-demand systems | |
| US7882260B2 (en) | Method of data management for efficiently storing and retrieving data to respond to user access requests | |
| US9813745B2 (en) | Method and apparatus for hierarchical distribution of video content for an interactive information distribution system | |
| KR100207882B1 (en) | Media streamer | |
| US10405048B2 (en) | Methods and apparatus for supporting VOD requests in a system with hierarchical content stores | |
| CA2362727C (en) | Queuing architecture with multiple queues and method for statistical disk scheduling for video servers | |
| US7188357B1 (en) | Video-on demand video server disk/memory streaming selection methodology | |
| US20050262245A1 (en) | Scalable cluster-based architecture for streaming media | |
| Ghose et al. | Scheduling video streams in video-on-demand systems: A survey | |
| US20020073172A1 (en) | Method and apparatus for storing content within a video on demand environment | |
| EP1761864A2 (en) | Method and system for resource management in a video on-demand server | |
| EP1175776B1 (en) | Video on demand system | |
| To et al. | Fast Startup and Interactive Retrievals of Broadcast Videos |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20061214 |
|
| AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU MC NL PL PT RO SE SI SK TR |
|
| AX | Request for extension of the european patent |
Extension state: AL BA HR LV MK YU |
|
| DAX | Request for extension of the european patent (deleted) | ||
| RBV | Designated contracting states (corrected) |
Designated state(s): DE FR GB |
|
| A4 | Supplementary search report drawn up and despatched |
Effective date: 20070820 |
|
| RIC1 | Information provided on ipc code assigned before grant |
Ipc: H04L 29/06 20060101AFI20070813BHEP |
|
| 17Q | First examination report despatched |
Effective date: 20071122 |
|
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: MCKINLEY, BRITTAIN Owner name: MOTOROLA MOBILITY LLC Owner name: RUTAN, MARK J. |
|
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: MOTOROLA MOBILITY LLC |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
| 18D | Application deemed to be withdrawn |
Effective date: 20160105 |
|
| P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230520 |