Non-blocking distinct grouping of database entries with overflow
First Claim
Patent Images
1. An apparatus, comprising:
- a non-blocking grouping mechanism that receives a query from a user, groups entries of data according to the query, and returns distinct entries of data to the user substantially concurrently with processing following grouping of data, wherein individual rows of data that match the query are output to the user prior to receiving all data matching the query.
2 Assignments
0 Petitions
Accused Products
Abstract
A grouping mechanism is provided which can return distinct groups of entries of data that satisfy a users query in a non-blocking fashion. Each distinct group can normaly be returned to the user substantially concurrently with the following entries being received and processed. The grouping mechanism supports an overflow mechanism which can transfer parts of the data between a primary memory to a secondary memory to alleviate shortage of primary memory. This non-blocking mechanism is useful as a part of a dataflow model data processing system.
-
Citations
12 Claims
-
1. An apparatus, comprising:
- a non-blocking grouping mechanism that receives a query from a user, groups entries of data according to the query, and returns distinct entries of data to the user substantially concurrently with processing following grouping of data, wherein individual rows of data that match the query are output to the user prior to receiving all data matching the query.
- View Dependent Claims (2, 3, 4)
-
5. An apparatus, comprising:
- a non-blocking grouping mechanism that groups entries of data, and returns distinct entries of data substantially concurrently with processing following entries of data to be grouped;
an overflow mechanism by which data that includes the groups of entries of data that were grouped by the non-blocking grouping mechanism can be written from a primary memory to a secondary memory when the primary memory reaches an overflow condition; and
a return mechanism by which the data can be returned from the secondary memory back to the primary memory, and whereupon the data is being returned to the user substantially concurrently with the rest of the data being processed by the non-blocking grouping mechanism;
a select mechanism by which a prescribed number of output groups are requested by the user, wherein operation of all of the non-blocking grouping mechanism, the overflow mechanism, and the return mechanism are halted when the requested prescribed number of output groups is reached.
- a non-blocking grouping mechanism that groups entries of data, and returns distinct entries of data substantially concurrently with processing following entries of data to be grouped;
-
6. A method of providing concurrent grouping, comprising:
- receiving a query from a user;
receiving input entries of data for the query;
filtering out recurring entries of data from the input entries of data; and
returning distinct entries of data from the input entries of data to the user substantially concurrently with the receiving input entries of data, wherein the distinct entries of data match the query and are returned to the user before all data matching the query is processed. - View Dependent Claims (7, 8, 9)
- receiving a query from a user;
-
10. A method of grouping entries of data, comprising:
- prior to a potential overflow within a primary memory, grouping each input row of data and returning the data in a non-blocking fashion; and
in case of the overflow, ensuring that a user eventually receives the correct remaining rows, wherein in the non-blocking fashion individual rows of data that match a query are output to the user prior to a processing node processing all data from the query.
- prior to a potential overflow within a primary memory, grouping each input row of data and returning the data in a non-blocking fashion; and
-
11. A method of grouping entries of data, comprising:
- segmenting the groups into clusters that limit a potential overflow to one cluster at a time;
prior to the potential overflow, all clusters perform work in a non-blocking fashion; and
in case of the overflow, transferring clusters one at a time from a primary memory to a secondary memory, while remaining non-transferred clusters still function in a non-blocking fashion, wherein in the non-blocking fashion data matching a query is output concurrently while data potentially matching the query is being processed.
- segmenting the groups into clusters that limit a potential overflow to one cluster at a time;
-
12. A method of grouping entries of data, comprising:
- prior to a potential overflow within a primary memory, grouping each input row of data and returning the data in a non-blocking fashion; and
in case of the overflow in which at least some of the data is transferred from the primary memory to a secondary memory, this data on the secondary memory is later processed in a non-blocking fashion concurrently with processing the remaining data, wherein in the non-blocking fashion data matching a query is output concurrently while data being received for the query is still being processed.
- prior to a potential overflow within a primary memory, grouping each input row of data and returning the data in a non-blocking fashion; and
Specification