IP Library Granted Patent US 8,010,985
Granted Patent B2
US 8,010,985 · App. 11/143,428 · Granted Aug 30, 2011

Method and system for resource management in a video on-demand server

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,010,985
App. No.
11/143,428
Granted
Aug 30, 2011
Kind
B2
Abstract

An on-demand server configured to dynamically control and optimize memory utilization while minimizing access to disk storage by monitoring content addressable memory (CAM) usage so as to remove the content from resident CAM memory and page the same adaptively and to eliminate creating separate files for trick playback of content streamed to a customer. The method and system dynamically uses the current concurrency count of the contents to optimize memory utilization so as to swap content in and out of memory as the concurrency values change in conjunction with an on-demand memory based server to provided advantages of optimizing the usage of server resources.

Claims (34)

1. An on-demand, memory-based server for requesting content from a content storage device and streaming the requested content to a receiving device on a network, the server comprising:

a server memory for storing requested content from the content storage device; and

a resource manager for managing resources of the server, the resource manager being arranged to manage the steps of:

receiving a request for content from the receiving device;

determining a concurrency count for the requested content, wherein the concurrency count is the number of streams requesting that content;

determining, based on the determined concurrency count, whether to store the requested content from the content storage device as resident content or segmented content, wherein the resident content contained in the server memory comprises the entire requested content, wherein the segmented content contained in the server memory does not comprise the entire requested content, and wherein the segmented content contained in the server memory comprises a window around a current stream location of the requested content;

storing the requested content from the content storage device in the server memory as resident content or segmented content, based on the determining; and

streaming the requested content from the server memory to the receiving device, whereby multiple simultaneous streams of audio, video and/or data may be streamed by the server.

2. A method of streaming multiple simultaneous streams of audio, video and/or data content from an on-demand, memory-based server, the server comprising a server memory for storing requested content from a content storage device, the method comprising the steps of:

receiving a request for content from a receiving device on a network;

determining a concurrency count for the requested content, wherein the concurrency count is the number of streams requesting that content;

determining, based on the determined concurrency count, whether to store the requested content from the content storage device as resident content or segmented content, wherein the resident content contained in the server memory comprises the entire requested content, wherein the segmented content contained in the server memory does not comprise the entire requested content, and wherein the segmented content contained in the server memory comprises a window around a current stream location of the requested content;

storing the requested content from the content storage device in the server memory as resident content or segmented content, based on the determining; and

streaming the requested content from the server memory to the receiving device.

3. The server of claim 1 , wherein the resource manager is further arranged to manage a step of determining bandwidth usage between the content storage device and the server; and

wherein the step of storing the requested content from the content storage device in the server memory as resident content or segmented content is further based on the determined concurrency count and bandwidth usage.

4. The server of claim 1 , wherein the resource manager is further arranged to manage steps of:

ranking requested content by its concurrency count; and

allocating the requested content for storage in the server memory as resident content in order from highest concurrency count towards lowest concurrency count.

5. The server of claim 4 , wherein the server memory has a memory limit and the resource manager is further arranged to manage the step of, when the memory limit is exceeded before all requested content has been allocated as resident content in the server memory, allocating or converting the requested content to segmented content in order from lowest concurrency count towards highest concurrency count, such that all requested content may be stored in the server memory.

6. The server of claim 1 , wherein the resource manager is further arranged to manage the steps of monitoring bandwidth usage between the content storage device and the server and adjusting an available trick mode play rate for a stream of segmented content in order to maintain the bandwidth usage below an acceptable reference level.

7. An on-demand, memory based system, comprising:

a content storage device for storing content to be streamed; and

the on-demand, memory-based server of claim 1 .

8. The method of claim 2 , further comprising the steps of:

determining bandwidth usage between the content storage device and the server; and

storing the requested content from the content storage device in the server memory as resident content or segmented content based on the determined concurrency count and bandwidth usage.

9. The method of claim 2 , further comprising the steps of:

ranking requested content by its concurrency count; and

allocating the requested content for storage in the server memory as resident content in order from highest concurrency count towards lowest concurrency count.

10. The method of claim 9 , wherein the server memory has a memory limit and the method further comprises the step of, when the memory limit is exceeded before all requested content has been allocated as resident content in the server memory, allocating or converting the requested content to segmented content in order from lowest concurrency count towards highest concurrency count, such that all requested content may be stored in the server memory.

11. The method of claim 2 , further comprising the steps of:

monitoring bandwidth usage between the content storage device and the server; and

adjusting an available trick mode play rate for a stream of segmented content in order to maintain the bandwidth usage below an acceptable reference level.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034371/0612 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2013
From: GENERAL INSTRUMENT CORPORATION
To: GENERAL INSTRUMENT HOLDINGS, INC.
Reel/Frame 030764/0575 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2013
From: GENERAL INSTRUMENT HOLDINGS, INC.
To: MOTOROLA MOBILITY LLC
Reel/Frame 030866/0113 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2013
From: GENERAL INSTRUMENT CORPORATION
To: GENERAL INSTRUMENT HOLDINGS, INC.
Reel/Frame 030725/0476 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2013
From: GENERAL INSTRUMENT HOLDINGS, INC.
To: MOTOROLA MOBILITY LLC
Reel/Frame 030725/0642 →