Network bandwidth and object obsolescence sensitive scheduling method and apparatus for objects distributed broadcasting
First Claim
1. In a network comprising a plurality of servers which are each a source of data, a plurality of clients which each request data maintained in said servers, and a proxy which caches data received from said servers, a method for determining when to update data cached by said proxy, said method comprising the steps of:
- receiving an indication of available network bandwidth between said plurality of servers and said proxy for performing updates of said data cached by said proxy;
receiving an indication of frequency with which at least one of said plurality of servers are updated;
maintaining a number of channels subscribed to by said clients and a channel size of each of the channels;
maintaining client request data, including a number of client requests for each of the channels;
deriving, from said indication of frequency and said client request data, obsolescence numbers associated with each channel, each of the obsolescence numbers reflecting the number of client requests for each channel that have received outdated data and reflecting how current said outdated data is; and
dynamically calculating when to update said data cached by said proxy based upon said indication of available network bandwidth and said obsolescence numbers.
1 Assignment
0 Petitions
Accused Products
Abstract
A proxy strategy not only caches objects but actively sets update schedules for channel information disseminated from different servers. Based on available bandwidth, this proxy strategy formulates a mathematical function that can be solved to establish the proxy update schedules by maximizing the overall currency of information received by the clients. Clients whose update requests do not result in receiving the most upto-date information for a given channel may also be recorded. After the next scheduled proxy update for a given channel, the proxy actively sends the most up-to-date information for this channel to the recorded clients. The client interest for a given channel is measured based on the client updates the proxy received since last scheduled update for this channel, and the currency of information received by these clients. A dynamic update can be performed by the proxy for channels with high client interest before their respective scheduled updates based on the available bandwidth. Upon performing a dynamic update for a given channel, the proxy can delay the next schedule update for this channel by a whole regular proxy update interval.
-
Citations
17 Claims
-
1. In a network comprising a plurality of servers which are each a source of data, a plurality of clients which each request data maintained in said servers, and a proxy which caches data received from said servers, a method for determining when to update data cached by said proxy, said method comprising the steps of:
-
receiving an indication of available network bandwidth between said plurality of servers and said proxy for performing updates of said data cached by said proxy;
receiving an indication of frequency with which at least one of said plurality of servers are updated;
maintaining a number of channels subscribed to by said clients and a channel size of each of the channels;
maintaining client request data, including a number of client requests for each of the channels;
deriving, from said indication of frequency and said client request data, obsolescence numbers associated with each channel, each of the obsolescence numbers reflecting the number of client requests for each channel that have received outdated data and reflecting how current said outdated data is; and
dynamically calculating when to update said data cached by said proxy based upon said indication of available network bandwidth and said obsolescence numbers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. In a network comprising a plurality of servers which are each a source of data, a plurality of clients which each request data maintained in said servers, and a proxy which caches data received from said servers, a method for providing an up-to-date version of cached data comprising the steps of:
-
receiving an indication of available network bandwidth between said plurality of servers and said proxy for performing updates of data cached by said proxy;
receiving an indication of frequency with which at least one of said plurality of servers are updated;
maintaining a number of channels subscribed to by said clients and a channel size of each of the channels;
maintaining client request data, including a number of client requests for each of the channels;
deriving, from said indication of frequency and said client request data, obsolescence numbers associated with each channel, each of the obsolescence numbers reflecting the number of client requests for each channel that have received outdated data and reflecting how current said outdated data is;
dynamically calculating when to update data cached by said proxy based upon said indication of available network bandwidth and said obsolescence numbers;
updating cached data based upon said calculating step;
determining whether a requesting one of said clients has received said up-to-date version of cached data;
providing said requesting one of said clients with available cached data when said requesting one of said clients makes said request; and
providing said requesting one of said clients with said up-to-date version of cached data when available. - View Dependent Claims (12, 13)
maintaining a list of clients that have received cached data which differs from up-to-date data; and
providing said clients with said up-to-date data upon receipt by said proxy.
-
-
13. A program storage device, readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for providing an up-to-date version of cached data, according to the method steps of claim 11.
-
14. A proxy which caches data received from servers and which provides said data to clients responsive to requests from said clients for said data, said proxy comprising:
-
means for receiving an indication of available network bandwidth between said servers and said proxy for performing updates of data cached by said proxy;
means for receiving an indication of frequency with which at least one of said plurality of servers are updated;
means for maintaining a number of channels subscribed to by said clients and a channel size of each of the channels;
means for maintaining client request data, including a number of client requests for each of the channels;
means for deriving, from said indication of frequency and said client request data, obsolescence numbers associated with each channel, each of the obsolescence numbers reflecting the number of client requests for each channel that have received outdated data and reflecting how current said outdated data is;
and means for dynamically calculating when to update data cached by said proxy based upon said indication of available network bandwidth and said obsolescence numbers. - View Dependent Claims (15)
-
-
16. In a network comprising a plurality of servers which are each a source of data, a plurality of clients which each request data maintained in said servers, and a proxy which caches data received from said servers, a program storage device, readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for determining when to update data cached by said proxy, said method comprising the steps of:
-
receiving an indication of available network bandwidth between said plurality of servers and said proxy for performing updates of said data cached by said proxy;
receiving an indication of frequency with which at least one of said plurality of servers are updated;
maintaining a number of channels subscribed to by said clients and a channel size of each of the channels;
maintaining client request data, including a number of client requests for each of the channels;
deriving, from said indication of frequency and said client request data, obsolescence numbers associated with each channel, each of the obsolescence numbers reflecting accesses of each channel that have received outdated data and reflecting an outdatedness of said accesses; and
dynamically calculating when to update said data cached by said proxy based upon said indication of available network bandwidth and said obsolescence numbers.
-
-
17. In a network comprising a plurality of servers which are each a source of data, a plurality of clients which each request data maintained in said servers, and a proxy which caches data received from said servers, a program storage device, readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for providing an up-to-date version of cached data comprising the steps of:
-
receiving an indication of available network bandwidth between said plurality of servers and said proxy for performing updates of data cached by said proxy;
receiving an indication of frequency with which at least one of said plurality of servers are updated;
maintaining a number of channels subscribed to by said clients and a channel size of each of the channels;
maintaining client request data, including a number of client requests for each of the channels;
deriving, from said indication of frequency and said client request data, obsolescence numbers associated with each channel, each of the obsolescence numbers reflecting accesses of each channel that have received outdated data and reflecting an outdatedness of said accesses;
dynamically calculating when to update data cached by said proxy based upon said indication of available network bandwidth and said obsolescence numbers;
updating cached data based upon said calculating step;
determining whether a requesting one of said clients has received said up-to-date version of cached data;
providing said requesting one of said clients with available cached data when said requesting one of said clients makes said request; and
providing said requesting one of said clients with said up-to-date version of cached data when available.
-
Specification