Data store with lock-free stateless paging capability
First Claim
1. A computer-implemented method for limiting a number of results returned from a data store in response to a query, comprising the steps of:
- receiving, by a data store, a query comprising one or more query conditions, wherein said data store contains one or more data items, each having an ordinal ranking;
determining, by said data store, if said query further comprises a marker that indicates the greatest ordinal ranking among ordinal rankings of results in a previous page of results;
responsive to determining that said query does not comprise a marker, said data storedetermining an initial subset of data items of said one or more data items within said data store that satisfy said query conditions and that have lowest ordinal ranking among said one or more data items within said data store;
generating a particular marker indicating a greatest ordinal ranking of ordinal rankings of said data items within said initial subset; and
returning an initial page of results comprising said initial subset of data items and said particular marker for said initial page; and
responsive to determining that said query comprises a marker, said data storedetermining a subsequent subset of data items within said data store that satisfy said query conditions and that have lowest ordinal ranking among data items within said data store that have ordinal ranking greater than said greatest ordinal ranking indicated by said marker, wherein said marker is said particular marker;
updating said particular marker to indicate a greatest ordinal ranking among said ordinal rankings of said data items within said subsequent subset of data items; and
returning a subsequent page of results comprising said subsequent subset of data items and said updated particular marker for said subsequent page;
wherein submitting said updated particular marker to said data store within a subsequent query ensures that a subsequent page of results is disjoint from a previous page of results.
3 Assignments
0 Petitions
Accused Products
Abstract
Disclosed are a method and apparatus for limiting the number of results returned by a data store in response to a query. Upon receiving an initial query, the data store returns a page of results that includes a subset of the data items within the data store satisfying the conditions of the query. The data store also provides a marker indicating the extent of the set of data items. If a subsequent query that requests additional results which satisfy the same query conditions and that includes the marker is received, the data store returns a page of results that includes a subset of data items that are disjoint from the initial subset, and provides an updated marker which indicates the extent of the union of the initial and subsequent subsets. If still further results are desired from the data store, an additional query containing the updated marker may be submitted.
78 Citations
34 Claims
-
1. A computer-implemented method for limiting a number of results returned from a data store in response to a query, comprising the steps of:
-
receiving, by a data store, a query comprising one or more query conditions, wherein said data store contains one or more data items, each having an ordinal ranking; determining, by said data store, if said query further comprises a marker that indicates the greatest ordinal ranking among ordinal rankings of results in a previous page of results; responsive to determining that said query does not comprise a marker, said data store determining an initial subset of data items of said one or more data items within said data store that satisfy said query conditions and that have lowest ordinal ranking among said one or more data items within said data store; generating a particular marker indicating a greatest ordinal ranking of ordinal rankings of said data items within said initial subset; and returning an initial page of results comprising said initial subset of data items and said particular marker for said initial page; and responsive to determining that said query comprises a marker, said data store determining a subsequent subset of data items within said data store that satisfy said query conditions and that have lowest ordinal ranking among data items within said data store that have ordinal ranking greater than said greatest ordinal ranking indicated by said marker, wherein said marker is said particular marker; updating said particular marker to indicate a greatest ordinal ranking among said ordinal rankings of said data items within said subsequent subset of data items; and returning a subsequent page of results comprising said subsequent subset of data items and said updated particular marker for said subsequent page; wherein submitting said updated particular marker to said data store within a subsequent query ensures that a subsequent page of results is disjoint from a previous page of results. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A computer for limiting the number of results returned from a data store containing data items in response to a query, comprising:
-
a memory; a processor configured to implement instructions stored in the memory, the memory storing executable instructions; said processor configured for receiving a query comprising one or more query conditions wherein said data store contains one or more data items each having an ordinal ranking; said processor configured for determining if said query further comprises a marker that indicates the greatest ordinal ranking among ordinal rankings of results in a previous page of results; said processor configured for, responsive to determining that said query does not comprise a marker, determining an initial subset of data items of said one or more data items within said data store that satisfy said query conditions and that have lowest ordinal ranking among said one or more data items within said data store; generating a particular marker indicating a greatest ordinal ranking of ordinal rankings of said data items within said initial subset; and returning an initial page of results comprising said initial subset of data items and said particular marker for said initial page; said processor configured for, responsive to determining that said query comprises a marker, determining a subsequent subset of data items within said data store that satisfy said query conditions and that have lowest ordinal ranking among data items within said data store that have ordinal ranking greater than said greatest ordinal ranking indicated by said particular marker, wherein said marker is said particular marker; updating said particular marker to indicate a greatest ordinal ranking among said ordinal rankings of said data items within said subsequent subset of data items; and returning a subsequent page of results comprising said subsequent subset of data items and said updated particular marker for said subsequent page; wherein submitting said updated particular marker to said data store within a subsequent query ensures that a subsequent page of results is disjoint from a previous page of results. - View Dependent Claims (26, 27, 28, 29, 30)
-
-
31. A computer-implemented method for limiting the number of results returned from a data store containing data items in response to a query, comprising the steps of:
-
receiving by a data store having a plurality of data items, a query comprising one or more query conditions; returning, by said data store, a page of results comprising a subset of said plurality of data items from said data store, wherein each of said data items in said subset has an ordinal ranking among said plurality of data items within said data store, satisfies said query conditions, and has lowest ordinal ranking among the remaining data items not in the subset; and providing, by said data store, with said page of results a marker that indicates the greatest ordinal ranking among said ordinal rankings of said data items in subset in said page of results; wherein submitting said marker to said data store within a subsequent query ensures that a subsequent page of results is disjoint from said page of results. - View Dependent Claims (32)
-
-
33. A computer-implemented method for limiting the number of data items returned from a data store containing data items in response to at least one query, comprising the steps of:
-
receiving, by a data store, an initial query comprising one or more query conditions, wherein said data store contains one or more data items each having an ordinal ranking; determining, by said data store, an initial page of results comprising an initial subset of said data items within said data store that satisfy said query conditions, said subset of data items having lowest ordinal ranking; generating, using said initial page of results, a marker that indicates the greatest ordinal ranking among said ordinal rankings of said data items within said initial page of results; returning, by said data store, said marker and said initial page of results; and if additional results are desired from said data store; receiving, by said data store, a subsequent query comprising said query conditions and said marker; returning, by said data store, a subsequent page of results comprising a subsequent subset of said data items within said data store satisfying said query conditions and having lowest ordinal ranking among data items with ordinal ranking greater than said greatest ordinal ranking indicated by said marker and an updated marker that indicates a new greatest ordinal ranking among ordinal rankings of said data items in said subsequent page of results; wherein one or more additional queries may be submitted with said updated marker if additional results are desired from said data store; and wherein submitting said updated marker to said data store within a subsequent query ensures that a subsequent page of results is disjoint from a previous page of results.
-
-
34. A computer-implemented method for limiting the number of results returned by a data store containing data items in response to a query having query conditions, comprising the steps of:
-
upon receiving an initial query, a data store returning an initial page of results that includes an initial subset of data items from said data store, wherein each of said data items has an ordinal ranking within said data store, that satisfy said query conditions, said initial subset of data items having lowest ordinal ranking within said data store; said data store generating an initial marker that indicates the greatest ordinal ranking among said ordinal rankings of said initial subset of data items in said initial page of results; when a subsequent query is received that requests additional results satisfying said initial query conditions and that includes said initial marker, said data store returning; a subsequent page of results that includes a subsequent subset of data items having lowest ordinal ranking among said data items contained in said data store with ordinal ranking greater than said greatest ordinal ranking; and a subsequent marker indicating the greatest ordinal ranking among said ordinal rankings of said data items in said subsequent page of results; wherein submitting said subsequent marker to said data store within a subsequent query ensures that a subsequent page of results is disjoint from a previous page of results.
-
Specification