Method and system for dynamically prefetching information via a server hierarchy
First Claim
1. A processing system for enhancing a flow of data from servers to clients along a network, the processing system comprising:
- proxy servers associated with the network;
a content server associated with the network;
clients configured for communicating with one or more of said proxy servers;
a statistics table being stored in at least one of said proxy servers, the statistics table storing parent object identifiers and associated child object identifiers, the statistics table containing first counts of parent objects, the first counts representing the frequency in which parent objects are referenced by the clients, the statistics table containing second counts of child objects, the second counts representing the frequency in which the corresponding child objects are referenced after select ones of said parent objects are referenced; and
generating means for generating a prefetch hint information list by accepting inputs of the first counts and the corresponding second counts to derive the prefetch hint information list, said generating means including;
calculating means for calculating a ratio of the second count to the first count for each of said parent object identifiers;
comparing means for comparing the ratio to a hint threshold, the comparing means grouping or associating child objects and associated parent objects on the prefetch hint information list if the ratio exceeded the hint threshold; and
prefetching means for prefetching child objects based on the prefetch hint information and parent objects actually requested by the clients, the prefetching means comprises a first prefetch handler being stored in at least one of said proxy servers;
the prefetching means including computing means for computing a prefetch value, and evaluating means for evaluating the prefetch value computed by the computing means;
said computing means computing a prefetch value for each child object identifier on the prefetch hint information list;
said evaluating means evaluating the prefetch values of multiple child objects and prioritizing the caching of child objects associated with the highest prefetch values on the prefetch hint information list, the first prefetch handler managing available space in a prefetch cache associated with one of said proxy servers.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and system for prefetching data for clients associated with a proxy server hierarchy and an enhanced content server data transfer to the clients. The method for prefetching data identifies data access patterns and prefetches select information based on a dynamic interpretation of the data access patterns. The content server or proxy server identifies data access reference patterns of clients associated with the content server or the proxy server hierarchy. The data access patterns are preferably stored in a statistics table. The content server generates prefetch hint information based on inputs from the statistics table. The prefetch hint information annotates requested information or objects requested by the clients. The prefetch hint information optimally is updated as the requested information passes through the proxy server hierarchy. The prefetch hint information annotates the requested information requested by the clients. The ultimate decision to prefetch select information for the clients is made based on the prefetch hint information and prefetch hint values. The prefetch hint value is calculated based on local node-specific factors, such as storage constraints and access time.
-
Citations
18 Claims
-
1. A processing system for enhancing a flow of data from servers to clients along a network, the processing system comprising:
-
proxy servers associated with the network; a content server associated with the network; clients configured for communicating with one or more of said proxy servers; a statistics table being stored in at least one of said proxy servers, the statistics table storing parent object identifiers and associated child object identifiers, the statistics table containing first counts of parent objects, the first counts representing the frequency in which parent objects are referenced by the clients, the statistics table containing second counts of child objects, the second counts representing the frequency in which the corresponding child objects are referenced after select ones of said parent objects are referenced; and generating means for generating a prefetch hint information list by accepting inputs of the first counts and the corresponding second counts to derive the prefetch hint information list, said generating means including; calculating means for calculating a ratio of the second count to the first count for each of said parent object identifiers; comparing means for comparing the ratio to a hint threshold, the comparing means grouping or associating child objects and associated parent objects on the prefetch hint information list if the ratio exceeded the hint threshold; and prefetching means for prefetching child objects based on the prefetch hint information and parent objects actually requested by the clients, the prefetching means comprises a first prefetch handler being stored in at least one of said proxy servers;
the prefetching means including computing means for computing a prefetch value, and evaluating means for evaluating the prefetch value computed by the computing means;
said computing means computing a prefetch value for each child object identifier on the prefetch hint information list;
said evaluating means evaluating the prefetch values of multiple child objects and prioritizing the caching of child objects associated with the highest prefetch values on the prefetch hint information list, the first prefetch handler managing available space in a prefetch cache associated with one of said proxy servers. - View Dependent Claims (2, 3, 4)
-
-
5. A processing system for enhancing a flow of data from servers to clients along a network, the processing system comprising:
-
proxy servers associated with the network; a content server associated with the network; clients configured for communicating with one or more of said proxy servers; a statistics table being stored in at least one of said proxy servers, the statistics table storing parent object identifiers and associated child object identifiers, the statistics table containing first counts of parent objects, the first counts representing the frequency in which parent objects are referenced by the clients, the statistics table containing second counts of child objects, the second counts representing the frequency in which the corresponding child objects are referenced after select ones of said parent objects are referenced; and generating means for generating a prefetch hint information list by accepting inputs of the first counts and the corresponding second counts to derive the prefetch hint information list, said generating means including; calculating means for calculating a ratio of the second count to the first count for each of said parent object identifiers; comparing means for comparing the ratio to a hint threshold, the comparing means grouping or associating child objects and associated parent objects on the prefetch hint information list if the ratio exceeded the hint threshold; and prefetching means for prefetching child objects based on the prefetch hint information and parent objects actually requested by the clients, the prefetching means comprises a first prefetch handler being stored in at least one of said proxy serves and a second prefetch handler being stored in at least one of said clients, respectively;
the prefetching means including computing means for computing a prefetch value, and evaluating means for evaluating the prefetch value computed by the computing means;
said computing means computing a prefetch value for each child object identifier on the prefetch hint information list and prioritizing the caching of child objects with the highest prefetch values on the prefetch hint information list, the prefetch handling means managing available space in the prefetch cache. - View Dependent Claims (6, 7, 8)
-
-
9. A processing system for enhancing a flow of data from servers to clients along a network, the processing system comprising:
-
proxy servers associated with the network; a content server associated with the network; clients configured for communicating with one or more of said proxy servers; a statistics table being stored in at least one of said proxy servers, the statistics table storing parent object identifiers and associated child object identifiers, the statistics table containing first counts of parent objects, the first counts representing the frequency in which parent objects are referenced by the clients, the statistics table containing second counts of child objects, the second counts representing the frequency in which the corresponding child objects are referenced after select ones of said parent objects are referenced; and generating means for generating a prefetch hint information list by accepting inputs of the first counts and the corresponding second counts to derive the prefetch hint information list, said generating means including; calculating means for calculating a ratio of the second count to the first count for each of said parent object identifiers; comparing means for comparing the ratio to a hint threshold, the comparing means grouping or associating child objects and associated parent objects on the prefetch hint information list if the ratio exceeded the hint threshold; and prefetching means for prefetching child objects based on the prefetch hint information and parent objects actually requested by the clients, and prefetch updating means for updating the prefetch hint information list;
the prefetch updating means comparing the first counts to first local threshold counts and second local threshold counts, the first local threshold counts based on statistics from one server, the second local threshold counts based on statistics from another server, said prefetch updating means invoking the generating means for each of the child object identifiers for which the first counts exceeds both the first local threshold counts and the second local threshold counts;
the prefetch updating means keeping the original prefetch hint information list if the first counts do not exceed the first local threshold counts. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A processing system for enhancing a flow of data from servers to clients along a network, the processing system comprising:
-
proxy servers associated with the network; a content server associated with the network; clients configured for communicating with one or more of said proxy servers in order to request one object from another object, the one and another object coupled together by one of a plurality of logical links prior to providing said request; a statistics table being stored in the content server and at least one of said proxy servers, the statistics table storing parent object identifiers and associated child object identifiers, the statistics table containing first counts of parent objects, the first counts representing the frequency in which parent objects are requested by one of said logical links by the clients, the statistics table containing second counts of child objects, the second counts representing the frequency in which the corresponding child objects are proximately, temporally referenced after select ones of said parent objects are referenced; generating means accepting inputs of first counts, second counts, child object identifiers, and parent object identifiers from the statistics table, the generating means including evaluating means for evaluating the access relationship between parent objects and their associated child objects, the evaluating means placing child object identifiers on a prefetch hint information list if the child objects are referenced with adequate frequencies proximately and subsequently prior to references by the clients to corresponding parent objects, said generating means including; calculating means for calculating ratios of the second counts to the first counts for each of said parent object identifiers, and comparing means for individually comparing the ratios to a hint threshold, the comparing means grouping or associating child objects and associated parent objects on the prefetch hint information list for parent objects that exceed the hint threshold; and prefetching means for prefetching child objects via one of said logical links based on the prefetch hint information and parent objects actually requested by the clients. - View Dependent Claims (16, 17, 18)
-
Specification