Abstract:
Methods, systems, and apparatus are described for processing mutations for a remote database. In one aspect, a method includes receiving a log of database mutations from a client device, the log of database mutations indicating changes previously made to a client version of a database stored on the client device, and each database mutation specifying: an entity included in the database; an operation for the entity; and a client version number for the entity; identifying, in the log of database mutations, two or more database mutations that each specify a same client version number for a same entity; determining, based on a conflict resolution policy, that the two or more database mutations are eligible for collapsing; and collapsing the two or more database mutations into a single database mutation.
Abstract:
A server system having one or more processors and memory receives, from a requestor, a select distinct query. In response to the query, the server system identifies a set of index portions according to requestor-specified filter criteria. The server system identifies one or more distinct value combinations for entities satisfying the filter criteria, including: obtaining an initial value of a query cursor; retrieving candidate value combinations; comparing candidate value combinations to identify distinct value combinations, if any, in accordance with the query; and updating the current value of the query cursor. The server system repeats the retrieving candidate value combinations and the comparing candidate value combinations one or more times for the set of index portions until at least a respective distinct value combination has been identified and transmits information corresponding to the respective distinct value combination to the requestor.
Abstract:
A search server system having one or more processors and memory receives a search query including filter criteria. The filter criteria specify operands and a logical relationship. In response to the search query the server identifies index portions sorted in a same sort order. The server identifies matching entities that match the search query by identifying index entries having a first identifier and matching filter(s) of a first operand and identifying, index entries having a second identifier that is sequentially adjacent to the first identifier in the sort order and matching filter(s) of a second operand. When index portion(s) associated with the first operand include index entries having a respective identifier between the first identifier and the second identifier and matching the filter(s) of the first operand, the server marks a respective entity associated with the respective identifier as matching the search query and sends search results to the client.
Abstract:
Methods, systems, and apparatus are described for processing mutations for a remote database. In one aspect, a method includes receiving a log of database mutations from a client device, the log of database mutations indicating changes previously made to a client version of a database stored on the client device, and each database mutation specifying: an entity included in the database; an operation for the entity; and a client version number for the entity; identifying, in the log of database mutations, two or more database mutations that each specify a same client version number for a same entity; determining, based on a conflict resolution policy, that the two or more database mutations are eligible for collapsing; and collapsing the two or more database mutations into a single database mutation.
Abstract:
Methods, systems, and apparatus are described for processing mutations for a remote database. In one aspect, a method includes receiving a log of database mutations from a client device, the log of database mutations indicating changes previously made to a client version of a database stored on the client device, and each database mutation specifying: an entity included in the database; an operation for the entity; and a client version number for the entity; identifying, in the log of database mutations, two or more database mutations that each specify a same client version number for a same entity; determining, based on a conflict resolution policy, that the two or more database mutations are eligible for collapsing; and collapsing the two or more database mutations into a single database mutation.
Abstract:
A server system having one or more processors and memory sends, to a first database, a first request for data based on first data-retrieval criteria. The first database is schemaless and operates in accordance with first database processing capabilities. The server system receives, in response to the first request, a first set of data from the first database, where the first set of data is selected by the first database in accordance with the first data-retrieval criteria. The server system generates a second database from the first set of data selectively retrieved from the first database. The second database has an associated schema and operates in accordance with second database processing capabilities different from the first database processing capabilities. The server system provides access to the first set of data in the second database in accordance with the second database processing capabilities.
Abstract:
A method and a test system for specifying a predetermined degree of inconsistency for test data are disclosed. The test system obtains a test policy, which specifies a predetermined degree of inconsistency between write operations and subsequent read operations on a set of data and subsequently receives a request to provide test data to an application. In response to the request to provide test data to the application the test system generates a set of test data including a plurality of entities retrieved from the set of data, based at least in part on the test policy. The test data includes a respective entity that is not consistent with a previous write operation. The test system further provides the set of test data to the application. The application optionally processes the set of test data to produce results, which are used to determine performance of the application.
Abstract:
A server system having one or more processors and memory receives a first query from a requestor and obtains a first query-processing plan including a first plurality of query-processing steps for processing the query. Supported query-processing steps comprise query-processing steps in a set of supported query-processing steps, and unsupported query-processing steps comprise query-processing steps not in the set of supported query-processing steps. In accordance with a determination that the first plurality of query-processing steps includes one or more of the supported query-processing steps and one or more unsupported query-processing steps including a respective unsupported query-processing step, the server system performs the one or more supported query-processing steps to produce intermediate results and generates a first response to the first query that includes the intermediate results and a representation of the respective unsupported query-processing step. The server system transmits the first response to the requestor.