U.S. patent application number 11/361301 was filed with the patent office on 2006-09-07 for avalanche control for video on demand session setup.
Invention is credited to Kirk Blattman, Danny M. Nessett, W. Paul Sherer, David Yates.
Application Number | 20060200578 11/361301 |
Document ID | / |
Family ID | 36928082 |
Filed Date | 2006-09-07 |
United States Patent
Application |
20060200578 |
Kind Code |
A1 |
Sherer; W. Paul ; et
al. |
September 7, 2006 |
Avalanche control for video on demand session setup
Abstract
A technique for managing session setup requests involves
operating in a normal mode when the arrival rate of session setup
requests is below a normal transition boundary, and transitioning
from the normal mode to a coalescing mode when the arrival rate of
session setup requests rises above a coalescing transition
boundary. In the normal mode, the session manager processes each of
the session setup requests individually; whereas in the coalescing
mode, multiple session setup requests are batched and processed
collectively. The session manager may be transitioned from the
normal mode to the coalescing mode when the session setup request
arrival rate rises above a coalescing transition boundary, and the
session manager may be transitioned from the coalescing mode to the
normal mode when the session setup request arrival rate falls below
a normal transition boundary.
Inventors: |
Sherer; W. Paul; (Danville,
CA) ; Blattman; Kirk; (San Ramon, CA) ;
Nessett; Danny M.; (Fremont, CA) ; Yates; David;
(Menlo Park, CA) |
Correspondence
Address: |
Wilson & Ham;PMB: 348
2530 Berryessa Road
San Jose
CA
95132
US
|
Family ID: |
36928082 |
Appl. No.: |
11/361301 |
Filed: |
February 23, 2006 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
60655328 |
Feb 23, 2005 |
|
|
|
Current U.S.
Class: |
709/233 ;
709/231 |
Current CPC
Class: |
H04L 12/1881 20130101;
H04L 65/80 20130101; H04N 21/6377 20130101; H04L 65/4084 20130101;
H04N 21/658 20130101; H04N 21/6408 20130101; H04L 63/10 20130101;
H04L 65/1043 20130101; H04L 65/4092 20130101; H04N 21/262 20130101;
H04L 67/145 20130101; H04N 21/238 20130101; H04L 67/142 20130101;
H04L 29/06027 20130101; H04L 67/14 20130101; H04L 65/605
20130101 |
Class at
Publication: |
709/233 ;
709/231 |
International
Class: |
G06F 15/16 20060101
G06F015/16 |
Claims
1. A method for managing session setup requests for video on demand
sessions, comprising: a) operating in a normal mode when a session
setup request arrival rate is below a normal transition boundary;
and b) transitioning from the normal mode to a coalescing mode when
the session setup request arrival rate rises above a coalescing
transition boundary.
2. The method of claim 1, wherein: the normal mode comprises
processing each session setup request individually; and the
coalescing mode comprises coalescing a plurality of session setup
requests into a batch of session setup requests.
3. The method of claim 2, wherein the coalescing mode further
comprises: j) processing the batch of session setup requests
collectively.
4. The method of claim 3, wherein the coalescing mode further
comprises: k) forming a first batch of session setup requests; and
l) forming at least a second batch of session setup requests before
initiating the processing of the first batch of session setup
requests.
5. The method of claim 1, further comprising: c) after step b),
transitioning from the coalescing mode to the normal mode when the
session setup request arrival rate falls below the normal
transition boundary.
6. The method of claim 1, wherein the coalescing transition
boundary and the normal transition boundary have the same
value.
7. The method of claim 1, wherein the coalescing transition
boundary is greater than the normal transition boundary, and the
method further comprises: d) prior to step b) continuing operation
in the normal mode when the session setup request arrival rate: i)
rises above the normal transition boundary, and ii) lies below the
coalescing transition boundary.
8. The method of claim 5, wherein the coalescing transition
boundary is greater than the normal transition boundary, and the
method further comprises: e) prior to step c), continuing operation
in the coalescing mode when the session setup request arrival rate:
i) falls below the coalescing transition boundary, and ii) lies
above the normal transition boundary.
9. The method of claim 1, wherein the session setup request arrival
rate comprises a rate at which session setup requests are received
by a session manager, and the method further comprises: f)
monitoring arrival of the session setup requests at the session
manager; and g) controlling transition between the normal mode and
the coalescing mode based on the monitoring.
10. The method of claim 1, wherein the session setup request
arrival rate comprises a rate at which session setup requests are
received by a session manager, and the method further comprises: i)
during operation of the session manager in the normal mode or the
coalescing mode, dynamically varying at least one of the normal
transition boundary and the coalescing transition boundary.
11. The method of claim 10, wherein dynamically varying at least
one of the normal transition boundary and the coalescing transition
boundary controls a frequency of transitions between the normal
mode and the coalescing mode.
12. The method of claim 1, wherein at least one of the coalescing
transition boundary and the normal transition boundary is
dynamically varied according to a subscriber volume to a real-time
transmission of digital video content.
13. The method of claim 1, wherein at least one of the coalescing
transition boundary and the normal transition boundary is
dynamically varied according to an availability of network
resources.
14. Processor-accessible storage media comprising
processor-executable instructions, that when executed, direct a
computer system to perform the method as recited in claim 1.
15. A method for processing requests for video on demand sessions,
comprising: a) monitoring session setup requests received by a
session manager; b) determining a session setup request arrival
rate, wherein the session setup request arrival rate comprises a
rate of arrival of the session setup requests at the session
manager; c) operating the session manager in a normal mode when the
session setup request arrival rate is below a coalescing transition
boundary; d) transitioning operation of the session manager from
the normal mode to a coalescing mode when the session setup request
arrival rate rises above the coalescing transition boundary; e)
continuing operation of the session manager in the coalescing mode
when: i) the session setup request arrival rate falls below the
coalescing transition boundary, and ii) the session setup request
arrival rate lies above a normal transition boundary, wherein the
normal transition boundary is less than the coalescing transition
boundary; and f) transitioning operation of the session manager
from the coalescing mode to the normal mode when the session setup
request arrival rate falls below the normal transition
boundary.
16. The method of claim 15, wherein step c) comprises continuing
operation in the normal mode when the session setup request arrival
rate: i) rises above the normal transition boundary, and ii) lies
below the coalescing transition boundary.
17. The method of claim 15, wherein: the normal mode comprises
processing each session setup request individually, the coalescing
mode comprises coalescing a plurality of session setup requests
into a batch of session setup requests and processing the batch of
session setup requests collectively.
18. A session manager for managing session setup requests for video
on demand sessions, comprising: a state machine configured to
transition the session manager from a normal mode of operation to a
coalescing mode of operation when a session setup request arrival
rate rises above a coalescing transition boundary.
19. The method of claim 18, wherein: the normal mode comprises
processing each session setup request individually, the coalescing
mode comprises coalescing a plurality of session setup requests
into a batch of session setup requests and processing the batch of
session setup requests collectively.
20. The session manager of 19, wherein the state machine is further
configured to transition the session manager from the coalescing
mode to the normal mode when the session setup request arrival rate
falls from at least the coalescing transition boundary to below a
normal transition boundary.
21. The session manager of claim 20, wherein: the coalescing
transition boundary is greater than the normal transition boundary,
and the state machine is further configured to operate the session
manager in the normal mode when the session setup request arrival
rate: i) rises above the normal transition boundary, and ii) lies
below the coalescing transition boundary.
22. The session manager of claim 21, wherein: the coalescing
transition boundary is greater than the normal transition boundary,
and the state machine is further configured to operate the session
manager in the coalescing mode when the session setup request
arrival rate: i) falls below the coalescing transition boundary,
and ii) lies above the normal transition boundary.
23. The session manager of claim 22, wherein: each of the session
setup requests includes a channel number associated with a video on
demand session; and further comprising setting up a session,
wherein setting up a session comprises at least one of: i)
translating the channel number to a content identifier, wherein the
content identifier identifies content related to the video on
demand session, ii) authorizing a client's entitlement to access
the content identified by the content identifier, and iii)
retaining network resources for the video on demand session.
Description
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application is entitled to the benefit of provisional
U.S. Patent Application Ser. No. 60/655,328, filed Feb. 23, 2005,
the disclosure of which is incorporated by reference herein in its
entirety.
[0002] This application is related to the co-filed application
entitled "QUICK SESSION SETUP FOR VIDEO ON DEMAND WITH INFORMATION
CACHING" having Application Ser. No. ______, filed Feb. 23,
2006.
FIELD OF THE INVENTION
[0003] The invention relates generally to interactive video
services via digital video networks, and more particularly to
systems and methods for processing requests for video on demand
sessions.
BACKGROUND OF THE INVENTION
[0004] Providers of television-based entertainment are attempting
to expand the range of services that they offer to subscribers in
order to increase revenues. In addition to television content such
as that found on and conventional cable networks, some providers
also offer interactive video services, such as video on demand
(VOD). The provision of interactive video services is stimulating
the further development of digital network technology, which in
turn will enable providers to increase the number and kinds of
video services offered to subscribers.
[0005] VOD allows users to select and watch video content over a
network as part of an interactive television experience. VOD
systems support "streaming," in which content is available to the
subscriber while the video streams over the network, and/or
"downloading," in which the content is downloaded to a subscriber
device, such as a set-top box, before the content is available to
the subscriber.
[0006] In general, streaming systems need greater network bandwidth
and thus more network resources. It is possible to provide
streaming VOD services over a wide area network (WAN) to service a
fairly large community or geographic area, however, the
responsiveness to the subscriber may be reduced to unacceptable
levels. For example, the establishment of a VOD session using
conventional techniques typically requires 20 or more messages
between VOD elements, once a subscriber signals his/her intention
to establish a video on demand session. This in turn can induce
session setup delays of a second or more.
[0007] Furthermore, in certain situations many clients may request
the establishment of a VOD session at approximately the same time,
which results in a high volume or "avalanche" of session setup
requests. A burst or sudden increase in the volume of session setup
requests can overload equipment involved in session setup, thereby
delaying the creation of some of the requested VOD sessions. If the
burst in the volume of session setup requests is prolonged,
additional requests will arrive while prior requests are still
queued. This creates a backup of unprocessed session setup
requests. For some VOD applications, such as network personal video
recorder (NPVR), delay in processing session setup requests is
unacceptable.
[0008] In light of the above, what is needed is a system and method
for managing the processing of session setup requests.
SUMMARY OF THE INVENTION
[0009] A technique for managing session setup requests involves
operating in a normal mode when the arrival rate of session setup
requests is below a normal transition boundary, and transitioning
from the normal mode to a coalescing mode when the arrival rate of
session setup requests rises above a coalescing transition
boundary. In the normal mode, the session manager processes each of
the session setup requests individually; whereas in the coalescing
mode, multiple session setup requests are batched and processed
collectively. In an embodiment, the session manager is transitioned
from the normal mode to the coalescing mode when the session setup
request arrival rate rises above a coalescing transition boundary
and the session manager is transitioned from the coalescing mode to
the normal mode when the session setup request arrival rate falls
below a normal transition boundary.
[0010] By processing session setup requests in batches while in the
coalescing mode, the processing of avalanches or bursts of session
setup requests may be streamlined, thereby preventing a backup in
processing session setup requests and decreasing delays in
providing VOD sessions to clients.
[0011] Other aspects and advantages of the invention will become
apparent from the following detailed description, taken in
conjunction with the accompanying drawings, illustrating by way of
example the principles of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] FIG. 1 is a schematic representation of an exemplary video
on demand system architecture, according to one aspect of the
invention.
[0013] FIG. 2 is a schematic representation of an exemplary video
server system for quick session setup of a video on demand session,
according to the invention.
[0014] FIG. 3 is a block diagram of a video server system, having
cached database and network resource information, for quick session
setup of a video on demand session, according to an embodiment of
the invention.
[0015] FIG. 4 is a block diagram showing a session manager for
quick session setup of a video on demand session, the session
manager having internal database and resource manager
functionality, according to another embodiment of the
invention.
[0016] FIG. 5 is a flow diagram schematically representing steps
involved in an exemplary method for setting up a video on demand
session, according to another embodiment of the invention.
[0017] FIG. 6 is a flow diagram schematically representing an
exemplary process for providing a video on demand session to a
client, according to another embodiment of the invention.
[0018] FIG. 7 is a flow diagram schematically representing steps
involved in an exemplary method for caching database and network
resource information for quick session setup of a video on demand
session, according to another embodiment of the invention.
[0019] FIG. 8 is a flow diagram schematically representing steps
involved in an exemplary method for updating cached database
information for quick session setup of a video on demand session,
according to another embodiment of the invention.
[0020] FIG. 9 is a process flow diagram of a method for managing
session setup for video on demand sessions, according to another
aspect of the invention.
[0021] FIG. 10A is a schematic representation of an exemplary video
on demand system architecture showing a plurality of session setup
requests received by the session manager, according to another
aspect of the invention.
[0022] FIG. 10B is a schematic representation of an exemplary
session manager state machine for a video server system, showing
transitions between normal and coalescing states of the session
manager, according to another aspect of the invention.
[0023] FIG. 11A is a graphic representation of transitions between
a normal mode and a coalescing mode of the session manager,
according to another aspect of the invention.
[0024] FIG. 11B is a graphic representation of transitions between
normal and coalescing modes of the session manager with hysteretic
mode transition, according to another aspect of the invention.
[0025] FIG. 11C is a schematic representation of an exemplary
session manager state machine, according to another embodiment of
the invention.
[0026] FIG. 12 is a block diagram showing a session manager having
a state machine for transitioning the session manager between
normal and coalescing states, according to another embodiment of
the invention.
[0027] FIG. 13A is a flow diagram schematically representing steps
involved in an exemplary method for managing session setup requests
for video on demand sessions, according to another embodiment of
the invention.
[0028] FIG. 13B is a flow diagram schematically representing steps
involved in an exemplary method for managing session setup requests
by a session manager operable in normal and coalescing modes with
hysteretic mode transition, according to another embodiment of the
invention.
[0029] FIG. 14 is a flow diagram schematically representing steps
involved in an exemplary method for operating a session manager in
normal mode or coalescing mode, according to another embodiment of
the invention.
[0030] Throughout the description, similar reference numbers may be
used to identify similar elements.
DETAILED DESCRIPTION OF THE INVENTION
[0031] According to one aspect of the invention, and in contrast to
the prior art, session setup requests from multiple clients
received by the session manager are monitored and the session
manager may transition between different operational modes
according to the session setup request arrival rate. When the
session setup request arrival rate attains a value in relation to
one or more threshold or boundary levels, the mode of operation of
the session manager may be transitioned by a state machine between
a normal mode and a coalescing mode. In the coalescing mode,
multiple session setup requests are coalesced into a batch, and the
session setup requests within a given batch are processed
collectively as a group, thereby streamlining the processing of
session setup requests and preventing delays in VOD session setup
during periods of high session setup request arrival rate. The
request from the client for session setup is received directly by a
session manager, and the session manager may cache information
related to session setup.
[0032] The term "video" as used herein may optionally include audio
and/or associated content control information. The term "content"
as used herein may be used to refer to digital video content, which
may be delivered to a client over a network. A "network" for
distributing digital video content may include a packet-based
distribution network, wherein the packet-based distribution network
may utilize, for example, IP, Ethernet, ATM, or a combination
thereof to communicate the digital video content to the client. A
"network" for distributing digital video content may also include a
hybrid fiber coaxial (HFC) network, as is well known in the field
of cable television distribution.
[0033] FIG. 1 is a schematic representation of an exemplary video
on demand system architecture 10, according to one aspect of the
invention. The video on demand system may include a distribution
network 20 that is capable of both broadcast/multicast and video on
demand communications. The distribution network may be implemented
with multiple network elements (not separately shown in FIG. 1) for
facilitating broadcast/multicast and video on demand
communications, as is well known in the art.
[0034] As illustrated in FIG. 1, a video server system 30 is
coupled to the distribution network 20. The video server system may
provide digital video content to multiple clients 40 utilizing a
broadcast/multicast scheme over the distribution network. Further,
each of the clients may be capable of receiving digital video
content for multiple channels from the video server system. Each of
the channels may be identified by a corresponding channel
number.
[0035] In the embodiment of FIG. 1, the video server system 30
includes a stream server 50 for streaming data streams to clients
40 during broadcast/multicast or a VOD session. The video server
system also includes a session manager 32 for managing set up and
execution of a VOD session. Typically, the session manager is
integrated with, or internal to, the stream server. In other
embodiments, the session manager may be a separate component (i.e.,
a separate server). The session manager is configured to provide
for quick session setup of a VOD session in response to a session
setup request from the client, as is described in more detail
hereinbelow.
[0036] FIG. 2 is a schematic representation of an exemplary video
server system 30 configured to implement quick session setup for a
video on demand session, according to one aspect of the invention.
The video server system includes a session manager 32, a channel to
content map 34, an entitlement database 36, and a resource manager
38. The session manager manages transactions involved in session
setup. The video on demand session may involve, for example, a NPVR
session.
[0037] The transactions involved in session setup begin when a
session setup request is sent from the client 40 and received by
the session manager 32. In an embodiment, the session setup request
includes a channel number, which has been inserted into the session
setup request by the client. The transactions involved in session
setup are described fully hereinbelow, e.g., with reference to
FIGS. 2 and 6.
[0038] The channel to content map 34 is in signal communication
with the session manager 32. The channel to content map includes a
real-time database of associations between the channel numbers and
content identifiers, wherein the channel to content map associates
each channel number with a different content identifier, and the
content identifiers identify video content related to a requested
VOD session. In an embodiment, the channel to content map includes
content identifier to content source information that indicates the
location of the source of the content identified by the content
identifier. The source of the content may be, for example, a point
within the video server system at which content is ingested into
the video server system or a server within the video server system
at which the content is stored. Although the channel to content map
is shown in FIG. 2 as being separate from the session manager, in
an embodiment, the channel to content map may be integrated with
the session manager (see, e.g., FIG. 4), with the stream server 50
(FIG. 1), or with other components of VOD infrastructure. Each of
these configurations for the channel to content map is within the
scope of the invention. In an embodiment, the channel to content
map is located on a server that is remote to the server on which
the session manager is located. In this case, the session manager
communicates with the channel to content map utilizing a network
messaging protocol.
[0039] With further reference to FIG. 2, the entitlement database
36 is in signal communication with the session manager 32. The
entitlement database includes a database of entitlement information
that is used to authorize entitlement of a particular client 40 to
access the video content related to a requested VOD session.
Typically, the entitlement database may be external to the session
manager; for example, the entitlement database may be implemented
on a separate or remote server. When the entitlement database is
located on a separate server or remote server, the session manager
communicates with the entitlement database utilizing a network
messaging protocol. Alternatively, the entitlement database may be
implemented locally within the session manager (see, e.g., FIG.
4).
[0040] The resource manager 38 is in signal communication with the
session manager 32, and includes resource reservation information,
for a requested VOD session, which is provided to the session
manager. The resource reservation information may be related to
reservation, or pre-reservation, of network resources (see, for
example, FIG. 6, steps 216a, and 216b, respectively). In an
embodiment, the resource manager is located on a server that is
remote to the server on which the session manager is located. In
this case, the session manager communicates with the resource
manager utilizing a network messaging protocol.
[0041] It is to be understood that, as used herein in the context
of network resources, the terms "reservation" and "reserving" refer
to the retention or retaining of network resources for a single VOD
session, and in particular, where the session manager 32 contacts
the resource manager 38 separately for each session setup request
received by the session manager. As used herein in the context of
network resources, the terms "pre-reservation" and "pre-reserving"
refer to the retention or retaining of network resources for one or
more subsequent VOD sessions, wherein the session manager does not
need to contact the resource manager separately for each session
setup request received by the session manager.
[0042] It is to be further understood that, as used herein in the
context of network resources, the terms "retention" and "retaining"
may be used to refer generically to include both the
"pre-reservation" and "reservation" of network resources, as
defined hereinabove, for one or more VOD sessions. The phrase
"resource reservation information" may be used herein to refer
generically to information associated with either the
"pre-reservation" or "reservation" of network resources. Similarly,
the phrase "resource reservation request" as used herein refers
generically to a request for "resource reservation information"
associated with either the "pre-reservation" or "reservation" of
network resources.
[0043] Typically, the resource manager 38 function may be
implemented in components other than the session manager 32.
However, in an embodiment of the invention, the resource manager
function may be implemented internally within the session manager
(see, e.g., FIG. 4). The session manager is still further in
communication with the client 40. The stream server 50 (see, FIG.
1) is omitted from FIG. 2 for the sake of clarity.
[0044] Transactions between the session manager 32 and each of the
client 40, the channel to content map 34, the entitlement database
36, and the resource manager 38, which are involved in quick (VOD)
session setup according to the invention, will now be described
with further reference to FIG. 2. A subscriber to digital video
content provided by the VOD system architecture 10 (FIG. 1) may
instruct the client 40 to establish a VOD session by sending a
session setup request to the session manager, whereby the session
manager receives the session setup request directly from the
client, as indicated by transaction 1. As an example, a subscriber
may instruct the client 40 to establish the VOD session via a
client component, such as a set-top box (not shown).
[0045] Although only a single session manager 32 is shown in FIG.
2, it is to be understood that the video server system 30 may
comprise a plurality of session managers. In an embodiment of the
invention, the session setup request may be unicast to a specific
session manager for processing of the session setup request. In an
alternative embodiment, the session setup request may be
broadcast/multicast to a plurality of the session managers, one of
which accepts the session setup request for processing.
[0046] In an embodiment, each VOD session is associated with
broadcast/multicast digital video content that the client 40
receives on one of a plurality of broadcast/multicast channels,
wherein each of the plurality of broadcast/multicast channels is
identified by a channel number. The session setup request received
by the session manager 32 includes the channel number.
[0047] After the session manager 32 receives the session setup
request from the client 40, the session manager accesses the
channel to content map 34 in transaction 2 of FIG. 2. As described
hereinabove, the channel to content map comprises a real-time
database of associations between channel numbers and content
identifiers, wherein the content identifiers identify content
related to the requested VOD session. The session manager consults
the channel to content map, which translates the channel number in
the session setup request into a content identifier, wherein the
content identifier identifies the underlying content being
broadcast/multicast on that channel number.
[0048] With further reference to FIG. 2, transaction 2 may take one
of a plurality of different forms, according to various embodiments
of the invention. As an example only, and not to limit the
invention in any way, transaction 2 may be executed each time the
session manager 32 receives a quick session setup request. In an
embodiment, transaction 2 involves an exchange of messages between
the channel to content map and the session manager. In an
alternative embodiment of the invention, the session manager may
cache channel to content map information. In the latter situation,
transaction 2 may represent protocol messaging activity that
implements a channel to content map cache coherency algorithm. The
channel to content map cache coherency algorithm manages the
transfer of information between the channel to content map 34 and
the session manager, wherein the channel to content map may be
remote from the session manager. Caching of channel to content map
information for the purpose of quick session setup of a VOD session
according to an aspect of the invention, is described fully
hereinbelow (see, for example, FIG. 3 and FIG. 7).
[0049] Once the session manager 32 translates the channel number of
the session setup request into a content identifier, the session
manager sends an entitlement request to the entitlement database 36
to determine whether the client 40 is authorized to access the
content identified by the content identifier, as indicated by
transaction 3. As a non-limiting example, transaction 3 may include
authorizing the client's entitlement to execute various NPVR
functions on the content identified by the content identifier. Such
NPVR functions may include, for example, pause, fast forward, slow
forward, fast/slow rewind, and jump to frame.
[0050] The entitlement request from the session manager 32 to the
entitlement database 36 may include the channel number, the content
identifier, or both the channel number and the content identifier,
since entitlement decisions authorizing the client 40 to access the
identified content may depend on either one or both of the channel
number and the content identifier.
[0051] With further reference to FIG. 2, transaction 3 may take one
of a plurality of different forms, according to various embodiments
of the invention. As an example only, and not to limit the
invention in any way, transaction 3 may require the session manager
32 to send an entitlement request message to the entitlement
database 36 on each occasion that the session manager receives a
quick session setup request. In an alternative embodiment of the
invention, the session manager may cache entitlement information.
In the latter situation, transaction 3 represents the protocol
messaging activity that implements an entitlement cache coherency
algorithm for caching entitlement information by the session
manager. The entitlement cache coherency algorithm manages the
transfer of information between the entitlement database and the
session manager, wherein the entitlement database may be remote
from the session manager. Caching of entitlement information for
the purpose of quick session setup of a VOD session according to an
aspect of the invention, is described fully hereinbelow (see, for
example, FIG. 3 and FIG. 7).
[0052] If the client 40 is entitled to access the identified
content for the requested VOD session, the session manager 32 may
retain network resources managed by the session manager itself for
the VOD session. Thereafter, via transaction 4 (FIG. 2), the
session manager contacts the resource manager 38 to retain any
additional network resources that may be required for the VOD
session. As non-limiting examples, the resource manager may reserve
or pre-reserve network bandwidth, modulation equipment resources,
and a digital channel over which the content for the VOD session is
transmitted. The resource manager function may typically be
implemented externally to the session manager, i.e., in equipment
other than the session manager. However, in a accordance with the
invention, the resource manager function may be implemented by the
session manager.
[0053] In embodiments wherein the resource manager 38 function is
implemented externally to the session manager 32, the session
manager may contact the resource manager to reserve network
resources on each occasion that the session manger receives a quick
session setup request. Alternatively, the session manager may
pre-reserve network resources for one or more subsequent VOD
sessions. In either situation, the session manager exchanges
messages with the resource manager (transaction 4) for retention
(i.e., reservation or pre-reservation) of network resources for the
VOD session.
[0054] Differences in the execution of transaction 4 for the two
situations described above are as follows. When the session manager
32 contacts the resource manager 38 on separate occasions for each
quick session setup request, transaction 4 represents a request for
the resources required for a single VOD session. Whereas, when the
session manager uses pre-reservation of network resources,
transaction 4 represents the exchange of information necessary to
pre-reserve resources for one or more subsequent VOD sessions.
[0055] Furthermore, in the case of pre-reservation of network
resources, transaction 4 may further represent the exchange of
information necessary to inform the resource manager 38 when each
VOD session terminates. By informing the resource manager when each
VOD session terminates, network resources may be re-allocated and
used for other VOD sessions to be provided by the video server
system 30.
[0056] With still further reference to FIG. 2, once the session
manager 32 has retained all necessary network resources for the VOD
session, the session manager assigns a video on demand session
identifier (or "session identifier") to the data stream that will
use the retained network resources, and the session manager returns
the information related to session setup to the client 40 in
transaction 5. Thereafter, the VOD session may be established.
[0057] FIG. 3 is a block diagram showing an exemplary embodiment of
a video server system 30 for quick session setup of a video on
demand session, according to an embodiment of the invention. The
video server system includes a session manager 32 in communication
with each of the channel to content map 34, the entitlement
database 36, and the resource manager 38, substantially as
described with reference to FIG. 2. The session manager is further
in communication with the client 40 for receiving a session setup
request from the client. One or more of the channel to content map,
the entitlement database, and the resource manager may be remote
from, or external to, the session manager.
[0058] With further reference to FIG. 3, the session manager 32
further comprises a processor 60 and a memory 70. The memory may
comprise cached information related to session setup by the session
manager. For example, the memory may comprise one or more of the
following: a channel to content map information cache 72, an
entitlement information cache 74, and a resource reservation
information cache 76. The channel to content map information cache,
the entitlement information cache, and the resource reservation
information cache may include cached channel to content map
information, cached entitlement information, and cached resource
reservation information, respectively. The session manager may
further include a cache manager 78 for managing at least one of the
channel to content map information cache, the entitlement
information cache, and the resource reservation information cache.
Although the session manager is described as caching certain
information, other information related to session setup can be
cached by the session manager.
[0059] Each of the cached channel to content map information, the
cached entitlement information, and the cached resource reservation
information may be processed substantially as described elsewhere
herein, e.g., with reference to FIG. 2 and FIG. 6. However, in the
embodiment depicted in FIG. 3, the channel to content map
information, the entitlement information, and cached resource
reservation information held in cache may be accessed more rapidly,
thereby decreasing the time required by the session manager 32 to
set up a VOD session. According to one aspect of the invention, the
time required by the session manager to set up a VOD session may be
less than 1 second.
[0060] FIG. 4 is a block diagram showing a session manager 32 for
quick session setup of a video on demand session, according to
another embodiment of the invention. The session manager comprises
a channel to content map 34, an entitlement database 36, and a
resource manager 38, wherein each of the channel to content map,
the entitlement database, and the resource manager are integrated
with, or reside within, the session manager. The functionality of
the session manager, the channel to content map, the entitlement
database, and the resource manager in the embodiment of FIG. 4 may
be substantially as described hereinabove, e.g., with respect to
FIG. 2. The session manager is shown in relation to clients 40,
while the distribution network 20 is omitted from FIG. 4 for the
sake of clarity.
[0061] Various configurations intermediate between those shown in
FIGS. 2 and 4 are also contemplated under the invention. As
non-limiting examples, a video server system 30 according to one
exemplary embodiment of the invention may comprise: 1) a session
manager 32 having an internal channel to content map 34, a remote
entitlement database 36, and an internal resource manager 38; or 2)
a session manager having a remote channel to content map, an
internal entitlement database, and an internal resource manager.
Other configurations for the video server system and session
manager are also within the scope of the invention, as may be
apparent to the skilled artisan.
[0062] FIG. 5 is a flow diagram schematically representing steps
involved in an exemplary method for setting up a video on demand
session requested by a client, according to another embodiment of
the invention. At block 102, a quick session setup request for
establishing a VOD session is sent from the client 40, wherein the
session setup request may be received by the session manager 32.
According to one aspect of the invention, and in contrast to the
prior art, the quick session setup request received by the session
manager is received directly from the client. As noted hereinabove,
the session setup request received by the session manager includes
a channel number associated with the VOD session, wherein the
channel number associated with the VOD session is inserted in the
quick session setup request by the client.
[0063] At block 104 (FIG. 5) the channel number is translated into
a content identifier. The content identifier identifies content
related to the VOD session, as described hereinabove (e.g., with
respect to FIG. 2). Translation of the channel number into the
content identifier may be implemented by the channel to content map
34 (see, e.g., FIGS. 2-4). Thereafter, at block 106 the client's 40
entitlement to access the content identified by the content
identifier may be authorized. Authorization of the client's
entitlement to access the identified content may be executed by the
entitlement database 36, for example, as described hereinabove with
respect to transaction 3 of FIG. 2. At block 108, network resources
for the VOD session may be retained for the VOD session. Retention
of the network resources for the VOD session may be implemented by
the resource manager 38, substantially as described hereinabove
(see, e.g., FIGS. 2-4).
[0064] According to one aspect of the invention, all of the tasks
described with reference to blocks 102-108 of FIG. 5 may be
completed within a time period of less than one second. Thus, this
technique enables setting up a VOD session with only a sub-second
delay once a subscriber initiates a session setup request via the
client 40.
[0065] FIG. 6 is a flow diagram schematically representing tasks
involved in an exemplary process for providing a video on demand
session to a client, according to another embodiment of the
invention. At block 202 a session setup request may be initiated by
a client 40, e.g., via a client device, such as a set-top box
(STB). The session setup request includes a channel number inserted
by the client. At block 204, the session setup request is received
by at least one session manager 32. At block 206, the session setup
request is accepted for processing by one of the session managers.
At block 208 the session manager 32 accesses channel to content map
information via the channel to content map 34. The channel to
content map comprises a real-time database which associates each of
a plurality of the channel numbers with a different content
identifier. In an embodiment, the channel to content map
information, or a portion thereof, may reside within the session
manager, e.g., as cached channel to content map information. At
block 210, the channel number in the session setup request is
translated into a content identifier.
[0066] At block 212 the session manager 32 accesses entitlement
information. Accessing the entitlement information may comprise
sending an authorization request, via the session manager, to the
entitlement database 38, wherein the authorization request
comprises at least one of the channel number and the content
identifier. In an embodiment, accessing the entitlement information
may comprise sending the authorization request to the entitlement
database in response to each of a plurality of the session setup
requests received by the session manager. In an embodiment, the
entitlement information, or a portion thereof, may reside within
the session manager, e.g., as cached entitlement information.
[0067] At block 214, the client's 40 authorization to access
identified content for the VOD session is determined. Determination
of the client's authorization to access the identified content may
be based on the channel number, the content identifier, or both the
channel number and the content identifier.
[0068] At blocks 216a/216b the session setup procedure may diverge
according to how the resource manager 32 manages the network
resources required for providing the VOD session to the client 40.
At block 216a, the network resources for providing the VOD session
to the client have been pre-reserved for one or more subsequent VOD
sessions and the pre-reserved resources are utilized in the session
setup process. At block 216b, in contrast, the network resources
for providing the VOD session to the client are reserved separately
for each VOD session. As described hereinabove with reference to
FIG. 2, when the network resources for providing the VOD session to
the client are reserved separately for each VOD session, the
session manager contacts the resource manager 38 on each occasion
that the session manager receives a session setup request from a
client.
[0069] Blocks 218a/220a and 218b/220b of the process of FIG. 6
involve similar steps, wherein at blocks 218a/218b a VOD session
identifier is assigned to a data stream for the VOD session; and at
blocks 220a /220b the data stream is transmitted to the client 40
via the network resources pre-reserved or reserved, at block 216a
or block 216b, respectively. At block 222, the VOD session is
provided to the client 40. Thereafter, in the case of the "a"
branch of the flow diagram of FIG. 6, the resource manager 38 is
informed by the session manager 32 when each VOD session is
terminated (block 224). By informing the resource manager when each
VOD session terminates, network resources may be re-allocated to
subsequent VOD sessions.
[0070] To minimize the delay in setting up VOD sessions, the
session manager 32 may cache resources or information managed by
remote servers, such as those managing channel to content map 34,
entitlement database 36, and resource manager 38 functionality. By
implementing such resource and information caching, significant
improvements in the efficiency and responsiveness of the session
manager can be made when processing session setup requests.
[0071] FIG. 7 is a flow diagram schematically representing tasks
involved in an exemplary technique for caching database information
and network resource information for quick session setup of a video
on demand session, according to another embodiment of the
invention. At block 302, database information is accessed. The
database information may be accessed by the session manager 32 that
has received a session setup request for the VOD session. The
database information may include channel to content map information
for translating a channel number within the session setup request
to a content identifier. The channel to content map information may
be accessed from a remote server (see, e.g., FIG. 3). The database
information may additionally or alternatively include entitlement
information for authorizing the client's 40 entitlement to access
the content (e.g., digital video content) identified by the content
identifier. The entitlement information may also be accessed from a
remote server.
[0072] At block 304, resource reservation information is accessed.
The resource reservation information may be accessed by the session
manager 32 that has received, and accepted, a session setup request
for a VOD session. The resource reservation information may be
related to reservation, or pre-reservation, of network resources to
be used in providing the VOD session. The network resources may be
used for streaming the content to the client 40 during the VOD
session. As an example, the reserved or pre-reserved network
resources may include network bandwidth, modulation equipment
resources, and a digital channel over which the content for the VOD
session is transmitted.
[0073] At block 306 the channel to content map information, the
entitlement database information, and the resource reservation
information, may be cached by the session manager 32 to provide a
channel to content map information cache 72, an entitlement
information cache 74, and a resource reservation information cache
76. Caching channel to content map information may involve
implementing a channel to content map cache coherency algorithm for
managing transfer of channel to content map information from the
channel to content map 34 to the session manager, and caching the
channel to content map information by the session manager.
Similarly, caching entitlement information may involve implementing
a cache coherency algorithm for managing transfer of entitlement
information from the entitlement database 36 to the session
manager, and caching the entitlement information by the session
manager. Each of the channel to content map information cache, the
entitlement information cache, and the resource reservation
information cache may reside within the memory 70 of the session
manager (see, e.g., FIG. 3).
[0074] At block 308, the channel to content map information cache
72, the entitlement information cache 74, and the resource
reservation information cache 76 may be updated. According to one
aspect of the invention, cached information held by the session
manager 32 may be updated independently of a session setup request
for the VOD session. That is to say, updates to cached information
may occur as the result of events not directly related to the
receipt by the session manager of a quick session setup request.
Additionally, although the session manager is described as caching
certain information, other information related to session setup can
be cached by the session manager.
[0075] Updating the channel to content map information cache 72,
the entitlement information cache 74, and the resource reservation
information cache 76 may be accomplished via various mechanisms.
For example, information related to session setup may comprise
database information on a remote server, and updating information
held in cache by the session manager 32 may comprise periodically
uploading the entire database, or a portion of the database, to the
session manager. As a non-limiting example, updating information
held in cache by the session manager may comprise uploading a
sub-set of the database to the session manager, wherein the sub-set
of the database may be determined by a service group of clients 40
previously serviced by the session manager in the establishment of
VOD sessions.
[0076] According to another example, database information may be
uploaded from a database of a remote server in response to a
pre-determined percentage change of the database from a prior
reference point. The prior reference point may comprise, as an
example, a defined prior time point or condition. As an example,
the pre-determined percentage change of the database may be
measured with respect to the database content at the time of a
prior upload event. Such a database may include, e.g., the channel
to content map 34 or the entitlement database 36.
[0077] As a further example, the cached information may comprise
resource reservation information in the session manager cache that
is updated when a variable time interval has elapsed, for example,
where the variable time interval is dependent on the availability
of network resources. According to still another example, wherein
the cached information may again include resource reservation
information, updating the cached resource reservation information
may result in re-allocating network resources between multiple
session managers 32 on the basis of a network resource requirement
of each of the session managers. In yet another example, updating
information held in cache by the session manager may involve
changing cached resource reservation information such that network
resources that were previously retained for one or more VOD
sessions are revoked when a quantity of available network resources
falls below a configurable minimum threshold.
[0078] According to yet another aspect of the invention, updating
information held in cache by the session manager 32 may occur
according to whether a mismatch exists between information held at
a remote server and that held in cache by the session manager. An
exemplary technique for updating cached information related to
session setup (e.g., channel to content map information,
entitlement information, and resource reservation information) is
described hereinbelow with reference to FIG. 8. Naturally, each of
the above techniques or mechanisms for updating cached information
related to VOD session setup is within the scope of the
invention.
[0079] Various mechanisms or methods for triggering the update of
cached information are also possible in accordance with the
invention. As a non-limiting example, updating cached information
related to session setup may be triggered when the session manager
32 first comes online. In another non-limiting example, updating of
cached information related to session setup may be triggered after
a constant time interval, or a variable time interval, has
elapsed.
[0080] FIG. 8 is a flow diagram schematically representing steps
involved in an exemplary technique for updating cached information
related to session setup of a video on demand session, according to
another embodiment of the invention. The information to be updated
may include information related to session setup, such as channel
to content map information, entitlement information, and resource
reservation information. The cached information may be updated by
uploading information to the session manager 32 from one or more
remote servers, such as a channel to content map 34 database
server, an entitlement database 36 server, or a resource manager 38
server, located remote from the session manager 32 (see, e.g., FIG.
2).
[0081] With further reference to FIG. 8, at block 402 a digest, or
summary, of the information held by one or more of the remote
servers may be uploaded from the remote server(s) to the session
manager 32. For example, a remote server might compute a digest
(e.g., an MD5 or SHA-1 hash) of its database, or a portion thereof,
and send the digest to the session manager. At block 404, the
digest received from the remote server may be used by the session
manager to compare the information held by the remote server with
the cached information held by the session manager. At decision
block 406, if a mismatch exists between the compared information
(Y), updated information may be uploaded from the remote server to
the session manager (block 408), whereby the information cached by
the session manager is reconstituted from the authoritative copy in
the remote server. Conversely, if there is no mismatch between the
compared information (N), the information is not uploaded from the
remote server and flow may proceed back to block 402 for
reiteration. Various mechanisms for updating and uploading cached
information to the session manager are described hereinabove (e.g.,
with reference to FIG. 7).
[0082] FIG. 9 is a process flow diagram of a method for managing
session setup for video on demand sessions. At block 900,
information related to session setup is cached for a session
manager. At block 902, the cached information is utilized to setup
a video on demand session for a client in response to a session
setup request that is received from the client
[0083] Aspects of the invention for streamlining the processing of
session setup requests for video on demand sessions requested by
multiple clients will now be described with reference to FIGS.
10A-14. FIG. 10A is a schematic representation of an exemplary
video server system 30 configured to implement VOD session setup in
response to an avalanche of session setup requests, according to
another aspect of the invention. The video server system includes a
session manager 32, a channel to content map 34, an entitlement
database 36, and a resource manager 38, substantially as described
hereinabove (e.g., with reference to FIG. 2). The session manager
manages transactions 1-4 involved in processing session setup
requests. Transactions 1-4 may be executed essentially as described
hereinabove (e.g., with reference to FIG. 2 and FIG. 6).
Transaction 5 is omitted from FIG. 10A for the sake of clarity.
[0084] In a normal mode of operation of the session manager 32,
each session setup request is individually processed according to
transactions 1-4. In contrast, in a coalescing mode of operation of
the session manager, multiple session setup requests are batched or
grouped into batches, and the session setup requests within each
batch are processed collectively according to one or more of
transactions 1-4. As an example, all of the session setup requests
within a given batch may be concurrently processed according to
transaction 1. The normal and coalescing modes of operation of the
session manager are described in greater detail hereinbelow (see,
e.g., FIG. 10B and FIGS. 11A-B).
[0085] FIG. 10B is a schematic representation of an exemplary state
machine 80 for the session manager 32. The state machine may be
integrated with, or reside within, the session manager (see, e.g.,
FIG. 12). The state machine controls transition(s) between the
normal mode 82 of operation of the session manager and the
coalescing mode 84 of operation of the session manager. Transitions
between the normal and coalescing modes of the session manager are
controlled by the state machine according to the session setup
request arrival rate, wherein the session setup request arrival
rate is a measure of the rate of arrival of session setup requests
at the session manager. The arrival of session setup requests may
be monitored by a request monitor (see, e.g., FIG. 12).
[0086] In an embodiment, the state machine 80 transitions from the
normal mode 82 to the coalescing mode 84 when the session setup
request arrival rate exceeds a transition boundary and transitions
from the coalescing mode to the normal mode when the session setup
request arrival rate is less than a transition boundary. In some
embodiments, the state machine may be configured to control
transitions between the normal and coalescing modes in response to
more than one transition boundary. As an example, in an embodiment,
the state machine may be configured to control transitions between
the normal and coalescing modes in response to a normal transition
boundary and a coalescing transition boundary (see, e.g., FIGS.
11A-B). In an embodiment, the coalescing transition boundary is
greater than the normal transition boundary (see, e.g., FIG.
11B).
[0087] FIG. 11A is a graphic representation of transitions between
the normal mode 82 and the coalescing mode 84 of the session
manager 32, as controlled by the state machine 80, according to an
aspect of the invention. The ordinate/y axis represents the session
setup request arrival rate (SSRAR). In the embodiment of FIG. 11A,
transitions between the normal mode 82 and the coalescing mode 84
may occur on the basis of a single threshold or boundary value of
the session setup request arrival rate. The single boundary value
of the session setup request arrival rate may represent both the
normal transition boundary and the coalescing transition boundary,
i.e., in an embodiment, the normal transition boundary may have the
same session setup request arrival rate value as the coalescing
transition boundary. In this embodiment, the normal transition
boundary/coalescing transition boundary threshold is represented in
FIG. 11B by the broken line. When the session manager first comes
online, it may operate in normal mode. For example, the state
machine and the session manager may be configured such that the
normal mode is the default operation mode by which the session
manager processes session setup requests.
[0088] In FIG. 11A, the normal mode 82 is represented by the broken
curve. When the session setup request arrival rate increases to a
level which exceeds the normal transition boundary/coalescing
transition boundary, the state machine 80 transitions from the
normal mode to the coalescing mode 84, as shown by the solid curve
in FIG. 11A. In the embodiment of FIG. 11A, operation of the
session manager 32 continues in coalescing mode while the session
setup request arrival rate lies above the normal transition
boundary/coalescing transition boundary. When the session setup
request arrival rate falls below the normal transition
boundary/coalescing transition boundary, the state machine induces
transition from the coalescing mode to the normal mode. Thereafter,
the session manager may continue to operate in the normal mode
while the session setup request arrival rate remains below the
normal transition boundary/coalescing transition boundary. If the
session setup request arrival rate oscillates around the
normal/coalescing transition boundary, the state machine will
oscillate between the normal and coalescing modes. A high frequency
of transitions between the normal mode and the coalescing mode is
generally not a desirable operating characteristic.
[0089] According to one aspect of the invention, the normal
transition boundary value and/or the coalescing transition boundary
value may be dynamically varied such that the frequency of
transitions, between the normal mode 82 and the coalescing mode 84,
are controlled; for example, such that the transition frequency is
decreased.
[0090] FIG. 11B is a graphic representation of transitions between
the normal mode 82 and the coalescing mode 84 of the session
manager 32, according to another aspect of the invention. In the
embodiment of FIG. 11B, the coalescing transition boundary
represents a session setup request arrival rate value greater than
the session setup request arrival rate value of the normal
transition boundary. No units for the session setup request arrival
rate are shown or implied in FIGS. 11A-B.
[0091] The session manager 32 may initially operate in the normal
mode, e.g., as a default operation mode. The normal mode 82 is
represented by the broken curve. In the embodiment of FIG. 11B, as
the session setup request arrival rate rises above the normal
transition boundary, the session manager continues to operate in
the normal mode. Once the session setup request arrival rate
exceeds the coalescing transition boundary, the session manager
transitions to coalescing mode 84 (as represented by the solid
curve). The session manager continues to operate in the coalescing
mode even after the session setup request arrival rate falls below
the coalescing transition boundary. As the session setup request
arrival rate continues to fall, the session manager transitions to
normal mode only after the session setup request arrival rate falls
below the normal transition boundary. Thereafter, if the session
setup request arrival rate again rises above the normal transition
boundary, but remains below the coalescing transition boundary,
operation continues in the normal mode.
[0092] The embodiment of FIG. 11B may show hysteretic mode
transition, in which there may be a first lag period (abscissa/x
axis) between the time when the session setup request arrival rate
rises above the normal transition boundary and the time of
transition from normal to coalescing mode; and a second lag period
between the time when the session setup request arrival rate falls
below the coalescing transition boundary and the time of transition
from coalescing to normal mode. By setting the coalescing
transition boundary higher than the normal transition boundary, the
session manager will not oscillate between the normal mode and the
coalescing mode even if the session setup request arrival rate
oscillates around one of these boundaries.
[0093] FIG. 11C is a schematic representation of an exemplary state
machine 80, which is configured to induce hysteretic mode
transitions between the normal mode and the coalescing mode as
described with reference to FIG. 11B. In the embodiment of FIG.
11C, the state machine controls transitions from the normal mode 82
to the coalescing mode 84 when the session setup request arrival
rate exceeds the coalescing transition boundary, and transitions
from the coalescing mode to the normal mode when the session setup
request arrival rate is less than the normal transition boundary.
As described above, the coalescing transition boundary is set at a
higher session setup request arrival rate value than the session
setup request arrival rate value of the normal transition
boundary.
[0094] FIG. 12 is a block diagram showing a session manager 32,
which is configured for transitioning between the normal mode 82
and the coalescing mode 84, according to an embodiment of the
invention. The session manager includes processor 60, the state
machine 80, and a request monitor 90. The state machine may be
configured for transitioning the session manager between the normal
mode and the coalescing mode according to a of session setup
request arrival rate received by the session manager, for example,
as described with reference to FIG. 10B and FIGS. 11A-B.
[0095] The request monitor 90 is in signal communication with the
state machine 80 and is configured for monitoring the arrival of
session setup requests at the session manager 32. As a non-limiting
example, the request monitor may "count" the session setup requests
received by the session manager by observing the time of arrival of
each session setup request at the session manager; and, based on
the observed arrival time of each session setup request, the
request monitor may estimate the session setup request arrival rate
by a moving average estimator. As another non-limiting example, the
request monitor may include a leaky bucket counter to determine
whether the session setup request arrival rate has risen above or
fallen below the normal transition boundary and the coalescing
transition boundary. The leaky bucket counter may record an
increment of one each time a session setup request arrives at the
session manager, while the counter is periodically decremented by a
fixed value. Other configurations and mechanisms for monitoring the
arrival of session setup requests and for estimating the session
setup request arrival rate are also within the scope if the
invention. In the embodiment of FIG. 12, the session manager 32 may
further include a memory 70 (FIG. 3) and one or more caches of
information related to processing session setup requests, as shown
and described hereinabove, e.g., with reference to FIG. 3.
[0096] FIG. 13A is a flow diagram schematically representing steps
involved in an exemplary method for processing session setup
requests for video on demand sessions, according to another
embodiment of the invention. At block 502, the session manager 32
operates in the normal mode 82 to process session setup requests
received by the session manager from clients 40. In the normal
mode, the session manager processes each session setup request
individually or separately. The normal mode may be the default mode
of operation for the session manager.
[0097] With further reference to FIG. 13A, block 502, the session
manager 32 may continue to operate in the normal mode 82 while the
session setup request arrival rate remains below the normal
transition boundary. In some embodiments, the session manager may
continue to operate in the normal mode while the session setup
request arrival rate is above the normal transition boundary but
below the coalescing transition boundary, wherein the coalescing
transition boundary is greater than the normal transition boundary.
In other embodiments, the normal transition boundary and the
coalescing transition boundary may be at the same level, i.e., the
normal transition boundary and the coalescing transition boundary
have the same session setup request arrival rate value.
[0098] At block 504, the session manager 32 transitions from the
normal mode 82 to the coalescing mode 84 when the session setup
request arrival rate rises above the coalescing transition
boundary. In the coalescing mode, the session manager combines, or
batches, multiple session setup requests into a batch, wherein the
session setup requests in each batch are processed collectively by
the session manager. In some embodiments, the session setup
requests may be batched categorically according to various request
parameters or criteria. As an example only, and not to limit the
invention, a batch of session setup requests may be batched
according to a request parameter such as: time of receipt of the
session setup requests by the session manager, geographic location
of clients 40 sending the session setup requests, the nature of
digital video content being requested in the session setup
requests. In an embodiment, the coalescing mode may include forming
a first batch of session setup requests, and thereafter, forming at
least a second batch of session setup requests before the
processing of the first batch of session setup requests has been
initiated.
[0099] According to another aspect of the invention, the session
setup requests received by the session manager 32 may be batched
according to a subscriber priority level of the clients sending the
session setup requests. For example, clients may be associated with
various subscriber priority levels, such as gold, silver, and
bronze, according to their subscription rates. The session setup
requests received from higher priority clients, e.g., gold, may be
batched preferentially (e.g., sooner) than session setup requests
received from lower priority clients, e.g., bronze.
[0100] FIG. 13B is a flow diagram schematically representing steps
involved in an exemplary method for managing session setup requests
by a session manager 32 exhibiting hysteretic mode transition
between the normal mode 82 and the coalescing mode 84, according to
another embodiment of the invention. At block 602, session setup
requests received by the session manager are monitored. The session
setup requests received by the session manager may be monitored by
a request monitor 90. The session setup requests received by the
session manager may be monitored by observing the time of arrival
of each session setup request. Alternatively, each of the session
setup requests received by the session manager may be counted,
e.g., using a leaky bucket counter which is incremented by one when
each session setup request is received by the session manager. The
request monitor may be integral with the session manager (see,
e.g., FIG. 12).
[0101] At block 604, the session setup request arrival rate at the
session manager 32 may be determined. The session setup request
arrival rate may be determined by the request monitor 90. In
embodiments wherein the session setup requests received by the
session manager are monitored by observing the time of arrival of
each session setup request, the session setup request arrival rate
may be determined using a moving average estimator. Alternatively,
in embodiments wherein each session setup request received by the
session manager is counted by an increment of one, the session
setup request arrival rate may be estimated using a leaky bucket
counter wherein the counter is periodically decremented by a fixed
value of counted session setup requests.
[0102] At block 606, the session manager 32 is operated in the
normal mode 82 while the session setup request arrival rate remains
below the coalescing transition boundary. In some embodiments,
operation in the normal mode may continue even though the session
setup request arrival rate may be above the normal transition
boundary (see, e.g., FIG. 11B). At block 608, the mode of operation
of the session manager transitions to the coalescing mode 84 when
the session setup request arrival rate is above the coalescing
transition boundary.
[0103] At block 610, operation in the coalescing mode 84 continues
after the session setup request arrival rate has fallen below the
coalescing transition boundary provided that the session setup
request arrival rate is above the normal transition boundary. At
block 612 operation transitions back to the normal mode 82 when the
session setup request arrival rate falls below the normal
transition boundary. Transitions from the coalescing mode to the
normal mode at block 608, and from the coalescing mode to the
normal mode at block 612, may both be controlled by the state
machine 80 (see, e.g., FIG. 10B).
[0104] FIG. 14 is a flow diagram schematically representing steps
involved in an exemplary method for operating a session manager 32
in normal mode 82 or coalescing mode 84, according to another
embodiment of the invention. At block 702, the session manager
operates in the normal mode. The normal mode, in which each session
setup request received by the session manager is processed
separately, may be the default operation mode of the session
manager. For example, the normal mode may be used when the session
manager first comes online. At block 704, the session setup request
arrival rate may be estimated, for example, as described
hereinabove with respect to FIG. 13B, block 604.
[0105] At decision block 706, if the session setup request arrival
rate is estimated to be above the coalescing transition boundary
(Y), the session manager is transitioned to the coalescing mode (at
block 708). Conversely, if the estimated session setup request
arrival rate is not above the coalescing transition boundary (N),
operation may continue in normal mode (block 702).
[0106] At block 710, the optional task of dynamically varying the
coalescing transition boundary and/or the normal transition
boundary may be performed. Thereafter, the decision at block 706
may be reiterated in light of a revised coalescing transition
boundary value. In an embodiment, one or both of the coalescing
transition boundary and the normal transition boundary may be
dynamically varied in order to control the frequency of transitions
between the normal mode 82 and the coalescing mode 84. The
coalescing transition boundary and/or the normal transition
boundary may be dynamically varied at anytime during operation of
the session manager 32 in either the normal mode or the coalescing
mode.
[0107] As a non-limiting example, at least one of the coalescing
transition boundary and the normal transition boundary may be
dynamically varied, at block 710, according to an availability of
network resources for VOD sessions. As another non-limiting
example, at least one of the coalescing transition boundary and the
normal transition boundary may be dynamically varied according to a
subscriber volume to a real-time broadcast/multicast of digital
video content. By increasing the coalescing transition boundary,
transition from the normal mode 82 to the coalescing mode 84 will
occur at a higher value of the session setup request arrival rate.
By decreasing the normal transition boundary, transition from the
coalescing mode 84 to the normal mode 82 will occur at a lower
value of the session setup request arrival rate. A wider boundary
gap resulting from increasing the coalescing transition boundary
and/or decreasing the normal transition boundary will dampen
oscillation between the normal mode and the coalescing mode as the
session setup request arrival rate fluctuates around either the
normal transition boundary or the coalescing transition
boundary.
[0108] Various other mechanisms and parameters may also be used for
varying the coalescing transition boundary and normal transition
boundary, according to the invention. It is to be understood that
the invention is not limited to those embodiments described
hereinabove. Additional mechanisms and techniques for controlling
the processing of session setup requests may be apparent to the
skilled artisan in light of the teachings contained herein.
[0109] In an embodiment, transition to coalescing mode triggers an
action other than, or in addition to, batch processing of session
setup requests. The action may be any action that enables an
avalanche of session setup requests to be more efficiently and/or
quickly processed. For example, the transition to coalescing mode
may trigger accessing other processing resources to process the
session setup requests. The other processing resources could come
from the local stream server or some other computer device that is
in signal communication with the session manager.
[0110] Those skilled in the art will recognize that the invention
may be implemented in software, firmware, hardware, or a
combination thereof. The above-described embodiments of the
invention may also be implemented, for example, by
processor-executable instructions. For example, memory 70 (see,
FIG. 3) may include processor-executable instructions that may be
executed by processor 60 to perform tasks, e.g., as described with
reference to FIGS. 13A-B, and FIG. 14. The instructions may reside
in various types of computer readable media. Accordingly, another
aspect of the present invention concerns a programmed product,
comprising computer readable media tangibly embodying a program of
machine-readable instructions executable by processor 60 to perform
the various techniques and methods in accordance with embodiments
of the present invention.
[0111] In some embodiments, the computer readable media may
comprise, for example, RAM, or a magnetic data storage diskette.
The processor-executable instructions may also be stored on a
variety of machine readable storage media, such as a DASD storage
(e.g., a conventional "hard drive" or a RAID array), magnetic tape,
electronic read-only memory, an optical storage device (e.g., CD
ROM, WORM, DVD, digital optical tape), paper "punch" cards, or
other suitable computer readable media, including transmission
media such as digital communication links. In an illustrative
embodiment of the invention, the machine-readable instructions may
comprise lines of compiled C, C++, or similar language code
commonly used by those skilled in the art.]
[0112] Although specific embodiments of the invention have been
described and illustrated, the invention is not to be limited to
the specific forms or arrangements of parts or functional elements
as described and illustrated herein. The invention is limited only
by the claims.
* * * * *