LOCK-FREE GENERATION OF COLUMNS WITH MINIMAL DICTIONARIES AFTER PARALLEL AGGREGATION
First Claim
1. A computer program product comprising a machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
- generating a result column, the generating comprising a plurality of worker jobs running in parallel to read tasks from a shared queue as part of a query plan operation, the query plan operation comprising a group-by column within an input set of input columns, the group-by column comprising an original dictionary for all values contained within the group-by column;
creating a new dictionary for the result column, the new dictionary preserving a same ordering as the original dictionary;
determining that the new dictionary has fewer entries than the original dictionary for the group-by column such that mapping is required between old value identifiers within the group-by column and new value identifiers within the result column; and
renaming the old value identifiers to the new value identifiers using a mapping vector.
2 Assignments
0 Petitions
Accused Products
Abstract
A new dictionary can be created for a result column in a query plan operation executed on a database. The result column can be generated by multiple worker jobs running in parallel to read tasks from a shared queue as part of a query plan operation that includes a group-by column within an input set of input columns. The group-by column can include an original dictionary for all values contained within the group-by column If the new dictionary has fewer entries than the original dictionary for the group-by column such that mapping is required between old value identifiers within the group-by column and new value identifiers within the result column, the old value identifiers are renamed to the new value identifiers using a mapping vector.
3 Citations
20 Claims
-
1. A computer program product comprising a machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
-
generating a result column, the generating comprising a plurality of worker jobs running in parallel to read tasks from a shared queue as part of a query plan operation, the query plan operation comprising a group-by column within an input set of input columns, the group-by column comprising an original dictionary for all values contained within the group-by column; creating a new dictionary for the result column, the new dictionary preserving a same ordering as the original dictionary; determining that the new dictionary has fewer entries than the original dictionary for the group-by column such that mapping is required between old value identifiers within the group-by column and new value identifiers within the result column; and renaming the old value identifiers to the new value identifiers using a mapping vector. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system comprising:
computer hardware configured to perform operations comprising; generating a result column, the generating comprising a plurality of worker jobs running in parallel to read tasks from a shared queue as part of a query plan operation, the query plan operation comprising a group-by column within an input set of input columns, the group-by column comprising an original dictionary for all values contained within the group-by column; creating a new dictionary for the result column, the new dictionary preserving a same ordering as the original dictionary; determining that the new dictionary has fewer entries than the original dictionary for the group-by column such that mapping is required between old value identifiers within the group-by column and new value identifiers within the result column; and renaming the old value identifiers to the new value identifiers using a mapping vector. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
14. A computer-implemented method comprising:
-
generating a result column, the generating comprising a plurality of worker jobs running in parallel to read tasks from a shared queue as part of a query plan operation, the query plan operation comprising a group-by column within an input set of input columns, the group-by column comprising an original dictionary for all values contained within the group-by column; creating a new dictionary for the result column, the new dictionary preserving a same ordering as the original dictionary; determining that the new dictionary has fewer entries than the original dictionary for the group-by column such that mapping is required between old value identifiers within the group-by column and new value identifiers within the result column; and renaming the old value identifiers to the new value identifiers using a mapping vector. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification