FILTERING QUERIED DATA ON DATA STORES
First Claim
1. A method of fulfilling requests targeting a data set on a data store having a processor, the method comprising:
- executing on the processor instructions configured to;
upon receiving a data item, store the data item in the data set; and
upon receiving a request specifying at least one filter criterion;
retrieve the data items of the data set satisfying the at least one filter criterion to generate a filtered data subset, andsend the filtered data subset in response to the request.
2 Assignments
0 Petitions
Accused Products
Abstract
A data set may be distributed over many data stores, and a query may be distributively evaluated by several data stores with the results combined to form a query result (e.g., utilizing a MapReduce framework). However, such architectures may violate security principles by performing sophisticated processing, including the execution of arbitrary code, on the same machines that store the data. Instead of processing queries, a data store may be configured only to receive requests specifying one or more filtering criteria, and to provide the data items satisfying the filtering criteria. A compute node may apply a query by generating a request including one o more filter criteria, providing the request to a data node, and applying the remainder of the query (including sophisticated processing, and potentially the execution of arbitrary code) to the data items provided by the data node, thereby improving the security and efficiency of query processing.
96 Citations
20 Claims
-
1. A method of fulfilling requests targeting a data set on a data store having a processor, the method comprising:
executing on the processor instructions configured to; upon receiving a data item, store the data item in the data set; and upon receiving a request specifying at least one filter criterion; retrieve the data items of the data set satisfying the at least one filter criterion to generate a filtered data subset, and send the filtered data subset in response to the request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
17. A method of applying a query to a data set stored by a data store, the method performed by a device having a processor and comprising:
executing on the processor instructions configured to; from the query, generate a request specifying at least one filter criterion; send the request to the data store; and upon receiving from the data store a filtered data subset in response to the request, apply the query to the filtered data subset. - View Dependent Claims (18, 19)
-
20. A computer-readable storage medium comprising instructions that, when executed on a processor of a data store comprising a processor, a data item buffer, and a data item processor set comprising at least one data item processor having a state and at least one filtering condition and configured to:
-
upon receiving a data item, update the state of the data item processor; and upon the state of the data item processor satisfying the at least one filtering condition, authorize the data item to be sent; and the data store having access to a data set comprising at least one index specifying, for at least one filter criterion value of at least one filter criterion, a data item set identifying a data item partition of data items having the filter criterion value for the filter criterion, the at least one index selected from an index set comprising; an event index specifying an represented by respective data items, a time index specifying a time of an event represented by respective data items, and a user index specifying at least one user associated with an event represented by respective data items, fulfill requests received from a requester and targeting the data set by; upon receiving a data item; adding the data item to the data item buffer; and when the data items stored in the buffer exceeds a data item buffer size threshold; indexing the data item in at least one index according to at least one filter criterion by; identifying a data item set comprising a data item partition of data items having the filter criterion value of the data item for the filter criterion; and adding the data item to the data item partition of the data item set; and emptying the data item buffer; and upon receiving a request specifying at least one filter criterion; estimate a filtered data subset size of the filtered data subset; send the filtered subset data size to the requester; and upon receiving from the requester a filtered data subset authorization; for respective filter criteria, using an index corresponding to the filter criterion, identifying a data item set for data items having the filter criterion value of the filter criterion; retrieving the data item partition of the data item set to generate a filtered data subset; and sending only the data items satisfying the at least one filter criterion by; providing respective data items to the data item processor set, and sending the data items authorized to be sent by the data item processor set.
-
Specification