Asynchronous data store operations including selectively returning a value from cache or a value determined by an asynchronous computation
First Claim
1. In a processing system comprised of a server, a method for the server to provide data values, the method comprising:
- the server maintaining a cache of objects communicatively coupled with the server;
the server executing an asynchronous computation to determine the value of a first object;
returning a value of the first object from the cache of objects in response to a request for the first object occurring before the asynchronous computation has determined the value of the first object;
returning a value of the first object determined by the asynchronous computation, in response to a request for the first object occurring after the asynchronous computation has determined the value of the first object;
providing a datatype which includes a field for a value and a field for a future; and
invoking computer code to lookup at least one data value corresponding to a key which returns an object of the datatype wherein the field for a value comprises a cached value corresponding to the key and the field for a future comprises a future which asynchronously calculates an updated value corresponding to the key.
1 Assignment
0 Petitions
Accused Products
Abstract
A processing system server and methods for performing asynchronous data store operations. The server includes a processor which maintains a cache of objects in communication with the server. The processor executes an asynchronous computation to determine the value of a first object. In response to a request for the first object occurring before the asynchronous computation has determined the value of the first object, a value of the first object is returned from the cache. In response to a request for the first object occurring after the asynchronous computation has determined the value of the first object, a value of the first object determined by the asynchronous computation is returned. The asynchronous computation may comprise at least one future, such as a ListenableFuture, or at least one process or thread. Execution of an asynchronous computation may occur with a frequency correlated with how frequently the object changes or how important it is to have a current value of the object. The asynchronous computation may receive different values from at least two servers and may determine the value of an object based on time stamps.
14 Citations
25 Claims
-
1. In a processing system comprised of a server, a method for the server to provide data values, the method comprising:
-
the server maintaining a cache of objects communicatively coupled with the server; the server executing an asynchronous computation to determine the value of a first object; returning a value of the first object from the cache of objects in response to a request for the first object occurring before the asynchronous computation has determined the value of the first object; returning a value of the first object determined by the asynchronous computation, in response to a request for the first object occurring after the asynchronous computation has determined the value of the first object; providing a datatype which includes a field for a value and a field for a future; and invoking computer code to lookup at least one data value corresponding to a key which returns an object of the datatype wherein the field for a value comprises a cached value corresponding to the key and the field for a future comprises a future which asynchronously calculates an updated value corresponding to the key. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A processing system comprising:
-
a server including at least one processor; persistent memory; a network interface device for communicating with one or more networks; and wherein the at least one processor is communicatively coupled with the persistent memory and the network interface device, the at least one processor, responsive to executing computer instructions, performing operations comprising; maintaining a cache of objects communicatively coupled with the server; executing an asynchronous computation to determine the value of a first object; providing a datatype which includes a field for a value and a field for a future; invoking computer code to lookup at least one data value corresponding to a key which returns an object of the datatype wherein the field for a value comprises a cached value corresponding to the key and the field for a future comprises a future which asynchronously calculates an updated value corresponding to the key; looking up, using the invoked computer code, a value of the first object and returning a value of the first object from the cache of objects, in response to receiving a key corresponding to the first object and a request for the first object occurring before the asynchronous computation has determined the value of the first object; and looking up, using the invoked computer code, a value of the first object and returning a value of the first object determined by the asynchronous computation, in response to receiving a key corresponding to the first object and a request for the first object occurring after the asynchronous computation has determined the value of the first object. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
Specification