Cache management
First Claim
1. A computer-implemented method for managing a cache, the computer-implemented method comprising performing computer-implemented operations at a client device for:
- receiving, at the client device, a request to obtain data stored at a server computer;
determining, by the client device, that caching is enabled at the client device based upon at least one of;
a user-selectable cache mode being enabled, orthe client device having a cache mode;
requesting, by the client device, the data stored at the server computer;
in response to the request for the data stored at the server, receiving hashes corresponding to the data instead of the requested data;
searching the cache for the hashes by;
determining that the hashes are received from the server computer, each of the requested hashes comprising unique data corresponding to the requested data; and
accessing the cache; and
in response to a determination that the cache does not include the hashes;
determining whether one or more local peers in communication with the client device has the data corresponding to the hashes;
determining which local peers have which portions of the data corresponding to the hashes; and
requesting respective portions of the data from the identified local peers.
2 Assignments
0 Petitions
Accused Products
Abstract
Concepts and technologies are described herein for cache management. In accordance with the concepts and technologies disclosed herein, the server computer can be configured to communicate with a client device configured to execute a cache module to maintain a cache storing data downloaded from and/or uploaded to the server computer by the client device. The server computer can be configured to receive requests for data stored at the server computer. The server computer can be configured to respond to the request with hashes that correspond to the requested data. The client device can search the cache for the hashes, obtain the data from the cache if the hashes are found, and/or download the data from the server computer if the hashes are not found. The client device also can be configured to update the cache upon uploading the data to the server computer.
-
Citations
18 Claims
-
1. A computer-implemented method for managing a cache, the computer-implemented method comprising performing computer-implemented operations at a client device for:
-
receiving, at the client device, a request to obtain data stored at a server computer; determining, by the client device, that caching is enabled at the client device based upon at least one of; a user-selectable cache mode being enabled, or the client device having a cache mode; requesting, by the client device, the data stored at the server computer; in response to the request for the data stored at the server, receiving hashes corresponding to the data instead of the requested data; searching the cache for the hashes by; determining that the hashes are received from the server computer, each of the requested hashes comprising unique data corresponding to the requested data; and accessing the cache; and in response to a determination that the cache does not include the hashes; determining whether one or more local peers in communication with the client device has the data corresponding to the hashes; determining which local peers have which portions of the data corresponding to the hashes; and requesting respective portions of the data from the identified local peers. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A client computer system:
-
a network interface unit in the client computer system; a memory device in the client computer system, the memory device containing computer readable instructions; and a processor in the client computer system, the processor communicatively coupled to the memory device and to the network interface unit, the processor executing the computer readable instructions to; receive via the network interface unit a request to obtain data stored at a server computer; determine whether caching is enabled at the client computer system and the server computer; in response to determining that caching is not enabled at the client computer system and the server computer based upon a refusal to use a hash by the client computer system and the server computer, request, via the network interface unit, the data from the server computer; in response to determining that caching is enabled at the client computer system based upon at least one of a user-selectable cache mode being enabled or the client computer system having a cache mode, and at the server computer based upon the server computer having the cache mode; request, via the network interface unit, hashes from the server computer, the hashes corresponding to the data; search a cache for the hashes by; determining that the hashes are received from the server computer, each of the requested hashes comprising unique data corresponding to the requested data; and accessing the cache; in response to a determination that the cache does not include the hashes; determine whether one or more local peers in communication with the client device has the data corresponding to the hashes; determine which local peers have which portions of the data corresponding to the hashes; and request respective portions of the data from the identified local peers. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer-implemented method for managing a cache of data, the computer-implemented method comprising performing computer-implemented operations at a server for:
-
receiving a request for a hash from a client device; determining that caching is enabled at the client device based on a user-selectable cache mode being enabled; determining whether to send the hash or data corresponding to the hash based upon at least one of;
a size of the data compared to a size of the hash, a time required to generate the hash if the hash is not already stored at the server, or a number of communications required between the client device and the server if the data is not stored in the cache, wherein determining whether to send the hash or the data based on the number of required communications comprises determining the number of communications required between the client and the server if the data is not stored in the cache;if it is determined to send the hash then sending the hash to the client device, wherein; if the determination whether to send the hash or data is based on the number of communications required between the client device and the server, then sending the hash if fewer communications to send the hash are required relative to the number of communications required to send the data; and if it is determined to send the data, then sending the data to the client device. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification