Processing of Deterministic User-Defined Functions Using Multiple Corresponding Hash Tables
First Claim
1. ) An apparatus comprising:
- at least one processor;
a memory coupled to the at least one processor;
a deterministic user-defined function (UDF) residing in the memory and executed by the at least one processor, the deterministic UDF accessing at least one database table; and
a deterministic user-defined function processing mechanism residing in the memory and executed by the at least one processor, the deterministic user-defined function processing mechanism collecting historical access patterns that indicate how the deterministic UDF accesses the at least one database table, and allocating a plurality of hash tables to the deterministic UDF based on the historical access patterns.
1 Assignment
0 Petitions
Accused Products
Abstract
A deterministic UDF processing mechanism processes user-defined functions (UDFs) using multiple hash tables. Data access patterns for a UDF are collected, and an appropriate hash table set is then determined for the UDF from the data access patterns. If a UDF accesses some similar columns and some disjoint columns, the similar columns are grouped together, and one or more hash tables are allocated to the similar columns. Disjoint columns are allocated their own hash tables. In addition, the allocation of hash tables may be adjusted based on historical access patterns collected over time. By dynamically allocating and adjusting sets of hash tables to a deterministic UDF, the performance of the UDF is greatly increased.
-
Citations
19 Claims
-
1. ) An apparatus comprising:
-
at least one processor; a memory coupled to the at least one processor; a deterministic user-defined function (UDF) residing in the memory and executed by the at least one processor, the deterministic UDF accessing at least one database table; and a deterministic user-defined function processing mechanism residing in the memory and executed by the at least one processor, the deterministic user-defined function processing mechanism collecting historical access patterns that indicate how the deterministic UDF accesses the at least one database table, and allocating a plurality of hash tables to the deterministic UDF based on the historical access patterns. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. ) A computer-implemented method for processing a deterministic user-defined function (UDF), the method comprising the steps of:
-
(A) collecting historical access patterns that indicate how the deterministic UDF accesses at least one database table; and (B) allocating a plurality of hash tables to the deterministic UDF based on the historical access patterns. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. ) A computer-implemented method for processing a deterministic user-defined function (UDF), the method comprising the steps of:
-
(A) collecting historical access patterns that indicate how the deterministic UDF accessed a plurality of columns in at least one database table; (B) evaluating columns passed to the deterministic UDF from the historical access patterns; (C) grouping from step (B) similar columns together and disjoint columns apart; (D) allocating one of a plurality of hash tables to each group of columns in step (C); (E) dynamically adjusting the allocation of the plurality of hash tables in step (D) according to the historical access patterns as the historical access patterns change over time; (F) determining from user-specified criteria whether to save the allocation of the plurality of hash tables for use with a plurality of queries wherein the user-specified criteria includes performance characteristics, user option to turn on or off, user-specified conditions, application identifier, user identifier, and custom conditions; and (G) if the user-specified criteria specifies to save the allocation of the plurality of hash tables for use with the plurality of queries, saving the allocation of the plurality of hash tables for use with the plurality of queries.
-
-
14. ) An article of manufacture comprising:
-
a deterministic user-defined function processing mechanism that collects historical access patterns that indicate how a deterministic user-defined function (UDF) accesses at least one database table, and allocates a plurality of hash tables to the deterministic UDF based on the historical access patterns; and recordable media bearing the deterministic user-defined function processing mechanism. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification