The present invention relates generally to electrical computers and specifically to transferring data between multiple computers.
Computer cache is a high speed storage mechanism, usually comprising a portion of a computer's volatile memory. Computers use cache to store data for quick retrieval. Computers can then reuse the cached data without repeating the steps of querying a database for duplicate data. Computers locate and retrieve cached data faster than performing new database queries. Storing recently used data or frequently used data in cache enhances the performance and speed of a computer.
In a distributed computer server network, it is customary to disseminate newly cached data from one server to all other servers on the network. When a server obtains data from a database, the server stores the data in its cache, then “pushes” the data to all other servers on the network. Each server stores a copy of the data in its own cache. Pushing data to every server uses bandwidth, which has the effect of slowing down traffic on the distributed network. Furthermore, storing the same data on every server uses up cache on servers that might not even need the data.
Thus, a need exists for a system and method for servers in a distributed network to acquire or “pull” cached data from the distributed network only when neeeded.
The On-Demand Cache Acquisition Tool, or “OCAT” meets the need identified above. The OCAT is a computer implemented system and process for acquiring data from a cache in a distributed network of computers, comprising: receiving a query for the data; sending the query to a remote server in the distributed network; receiving a reply from the remote server indicating that the data is in a cache coupled to the remote server; requesting a copy of the data from the remote server; receiving the copy of the data from the remote server; and storing the data in a local memory.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will be understood best by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
The principles of the present invention are applicable to a variety of computer hardware and software configurations. The term “computer hardware” or “hardware,” as used herein, refers to any machine or apparatus that is capable of accepting, performing logic operations on, storing, or displaying data, and includes without limitation processors and memory; the term “computer software” or “software,” refers to any set of instructions operable to cause computer hardware to perform an operation. A “computer,” as that term is used herein, includes without limitation any useful combination of hardware and software, and a “computer program” or “program” includes without limitation any software operable to cause computer hardware to accept, perform logic operations on, store, or display data. A computer program may, and often is, comprised of a plurality of smaller programming units, including without limitation subroutines, modules, functions, methods, and procedures. Thus, the functions of the present invention may be distributed among a plurality of computers and computer programs. The invention is described best, though, as a single computer program that configures and enables one or more general-purpose computers to implement the novel aspects of the invention. For illustrative purposes, the inventive computer program will be referred to as the “On-Demand Cache Acquisition Tool” or “OCAT”.
Additionally, OCAT is described below with reference to an exemplary distributed network of hardware devices, as depicted in
On-Demand Cache Acquisition Tool (“OCAT”) 200 typically is stored in a memory, represented schematically as memory 220 in
Data Acquisition Component 400 starts when initiated by Monitoring Component 300 (410). Data Acquisition Component 400 forwards the data query as text via JMS Messaging System and Enterprise Bus System 240 to server computers 105 and 110 on distributed network 100 (412). Data Acquisition Component 400 waits for a text response (414), if any, from server computers 105 and 110 indicating that the requested data is available (416). Data Acquisition Component 400 records the elapsed time of response from server computers 105 and 110 (418) and identifies the server computer with the fastest response time (420). Data Acquisition Component 400 requests and obtains a copy of the cached data from the server with the fastest response time (422). If neither server computer 105 nor 110 respond, Data Acquisition Component 400 requests and obtains the data from Database 250 (424). Data Acquisition Component 400 saves the data in local Cache 230 (426) and stops (428).
A preferred form of the invention has been shown in the drawings and described above, but variations in the preferred form will be apparent to those skilled in the art. The preceding description is for illustration purposes only, and the invention should not be construed as limited to the specific form shown and described. The scope of the invention should be limited only by the language of the following claims.