Patent application number | Description | Published |
20090198738 | System and Method for an Adaptive List Prefetch - A method, system, and computer program product are provided for retrieving records into a main memory. A first number of gaps and a first total gap size are received for a list of records from a database subsystem. A determination is made of a first average gap size using the first number of gaps and the first total gap size. A determination is made as to whether the first average gap size is greater than a prestaging threshold value. Responsive to the first average gap size being equal to or less than the prestaging threshold value, a prestaging flag is set for the list of records. Then, the list of records is retrieved into the main memory using prestaging. | 08-06-2009 |
20100042607 | METHOD, APPARATUS, AND COMPUTER PROGRAM PRODUCT FOR ADAPTIVE QUERY PARALLELISM PARTITIONING WITH LOOK-AHEAD PROBING AND FEEDBACK - A database query is partitioned into an initial partition including a plurality of parallel groups, and is executed, via an execution plan, based on the initial partition. A sampling subset of data is identified from the plurality of parallel groups. Substantially in parallel with the executing of the query, the execution plan is executed on the sampling subset of data as a sampling thread. The execution plan is modified based on feedback from the execution of the execution plan on the sampling subset of data. | 02-18-2010 |
20100042624 | METHOD FOR SORTING DATA - Techniques for sorting a sequence of one or more input objects are provided. The techniques include identifying a property that is exhibited by a sequence of one or more input objects, determining whether each input object from the sequence of one or more input objects exhibits the property, storing each of the one or more input objects into a buffer, wherein an input object is stored in a first buffer if it exhibits the property and an input object is stored in a second buffer if it does not exhibit the property, sorting each of the one or more input objects in each buffer, and merging the one or more input objects in each buffer into a sequence of one or more input objects. | 02-18-2010 |
20100042631 | METHOD FOR PARTITIONING A QUERY - Techniques for partitioning a query are provided. The techniques include establishing one or more criterion for partitioning a query, wherein the query comprises one or more tables, materializing a first of the one or more tables, partitioning the first of the one or more tables until the one or more criterion have been satisfied, and partitioning and joining a remainder of the one or more tables of the query. | 02-18-2010 |
20100223269 | SYSTEM AND METHOD FOR AN EFFICIENT QUERY SORT OF A DATA STREAM WITH DUPLICATE KEY VALUES - An apparatus and method for efficiently performing a query sort on a data set with duplicate key values is disclosed. The method includes identifying unique key values for a key in a data set after determining that a number of duplicate key values for the key exceed a predefined threshold. The method also includes recording an association of each unique key value with a record in the data set and sorting unique key values. The method further includes storing the unique key values in a sorted order, wherein each unique key value is associated with an appropriate record in the data set. | 09-02-2010 |
20110022815 | STORAGE ALLOCATION - Techniques for storage allocation of a data record are provided. The techniques include attempting to identify a first location for storing a data record, wherein the data record comprises one or more data record attributes, if the first location is identified, selecting the first location for storing the data record, and if the first location is not identified, identifying a second location for storing the data record using a cost penalty function and selecting the second location for storing the data record based on the cost penalty function. | 01-27-2011 |
20110196857 | Generating Materialized Query Table Candidates - Techniques for generating a set of one or more materialized query table (MQT) candidates for a workload are provided. The techniques include receiving a workload, wherein the workload comprises a set of one or more queries, generating one or more best matching MQTs (BMQTs) based on one or more query blocks of the one or more queries by removing syntax that is not qualified for a MQT re-write, determining one or more frequently used multi-joins in the workload, using the one or more BMQTs and the one or more frequently used multi-joins to generate a set of one or more workload MQTs (WMQTs), and grouping one or more WMQTs and one or more BMQTs into one or more groups to merge into a set of a smaller number of MQTs and to cover the workload. | 08-11-2011 |
20120084278 | SCAN SHARING FOR QUERY PREDICATE EVALUATIONS IN COLUMN-BASED IN-MEMORY DATABASE SYSTEMS - A plurality of queries of an in-memory column-oriented database are obtained. Each of the queries has at least one column predicate. For each of the queries, it is determined which of a plurality of columns in the in-memory column-oriented database need to be scanned. The plurality of queries are grouped into a plurality of scan groups, based at least in part on the determining step. The column predicates are evaluated for those of the queries in a given one of the scan groups in accordance with a scheduling scheme. The grouping step and the scheduling scheme take into account real time scan information. | 04-05-2012 |
20130262424 | DATABASE SYSTEM TRANSACTION MANAGEMENT - Systems, methods, and products for database system transaction management are provided herein. One aspect provides for annotating via a computing device at least one data object residing on the computing device utilizing at least one transaction tag, the at least one transaction tag being configured to indicate a status of an associated data object; processing at least one database transaction utilizing a transactional memory process, wherein access to the at least one data object is determined based on the status of the at least one data object; and updating the status of the at least one data object responsive to an attempted access of the at least one data object by the at least one database transaction. Other embodiments and aspects are also described herein. | 10-03-2013 |
20130318067 | HARDWARE-ACCELERATED RELATIONAL JOINS - Techniques are provided for hardware-accelerated relational joins. A first table comprising one or more rows is processed through a hardware accelerator. At least one join column in at least one of the one or more rows of the first table is hashed to set at least one bit in at least one bit vector. A second table comprising one or more rows is processed through a hardware accelerator. At least one join column in at least one of the one or more rows of the second table is hashed to generate at least one hash value. At least one bit vector is probed using the at least one hash value. A joined row is constructed responsive to the probing step. The row-construction step is performed in the hardware accelerator. | 11-28-2013 |
20140019422 | ENCODED DATA PROCESSING - Techniques are provided for encoded data processing which allows for continuous data processing as encoded data changes. Data is decomposed into one or more blocks with each block containing at least one data record. At least one data record within a given block is encoded with a first encoding process selected from one or more encoding processes. The first encoding process is associated with the given data block. Techniques evaluate whether or not to implement an encoding change for a given block when updating a given data record in the given block. Responsive to the evaluation, the given block is re-encoded with a second encoding process. Responsive to the re-encoding, the association of the given block is updated. A map is formed to convert the given data record encoded with the first encoding process to the second encoding process so as to preserve comparative relationships of the given data record. | 01-16-2014 |
20140019472 | ENCODED DATA PROCESSING - Techniques for encoded data processing which allow for continuous data processing as encoded data changes. Data is decomposed into one or more blocks with each block containing at least one data record. At least one data record within a given block is encoded with a first encoding process selected from one or more encoding processes. The first encoding process is associated with the given data block. Techniques evaluate whether or not to implement an encoding change for a given block when updating a given data record in the given block. Responsive to the evaluation, the given block is re-encoded with a second encoding process. Responsive to the re-encoding, the association of the given block is updated. A map is formed to convert the given data record encoded with the first encoding process to the second encoding process so as to preserve comparative relationships of the given data record. | 01-16-2014 |
20140032509 | ACCELERATED ROW DECOMPRESSION - A method comprises streaming one or more pages of a database to a hardware accelerator, extracting one or more rows from each of the one or more pages of the database, determining whether a given one of the extracted rows is compressed, decompressing the given one of the extracted rows responsive to the determination and outputting the decompressed row. The decompressing step is performed in the hardware accelerator. The hardware accelerator may be a field-programmable gate array. The method allows for hardware accelerated row decompression. | 01-30-2014 |
20140032516 | ACCELERATED ROW DECOMPRESSION - An apparatus comprises a hardware accelerator coupled to a memory. The hardware accelerator comprises one or more decompression units. The one or more decompression units are reconfigurable. The hardware accelerator may be a field-programmable gate array. The hardware accelerator may also comprise one or more reconfigurable scanner units. The one or more decompression units, in the aggregate, are operative to decompress one or more rows of a database at a bus speed of the coupling between the hardware accelerator and the memory. Two or more decompression units are operative to decompress two or more rows of a database in parallel. The apparatus allows for hardware accelerated row decompression. | 01-30-2014 |
20140067845 | FACILITATING FIELD PROGRAMMABLE GATE ARRAY ACCELERATIONS OF DATABASE FUNCTIONS - Methods and arrangements for facilitating accelerations of database functions. A field programmable gate array is incorporated. At least one query control block is incorporated in the field programmable gate array, and database management system operations are accelerated via the field programmable gate array. The accelerating includes employing the at least one query control block to execute a query without reconfiguring the field programmable gate array. | 03-06-2014 |
20140067851 | FACILITATING FIELD PROGRAMMABLE GATE ARRAY ACCELERATIONS OF DATABASE FUNCTIONS - Methods and arrangements for facilitating accelerations of database functions. A field programmable gate array is incorporated. At least one query control block is incorporated in the field programmable gate array, and database management system operations are accelerated via the field programmable gate array. The accelerating includes employing the at least one query control block to execute a query without reconfiguring the field programmable gate array. | 03-06-2014 |
20140188908 | RADIX SORT WITH READ-ONLY KEY - Methods and arrangements for a radix sort with a read only key. A plurality of keys are received, an array and a link table are populated for the first digit of the keys based upon the keys; and an array and a link table are populated for each successive digit of the keys based upon the array and link table populated for the preceding digit of the keys. Embodiments may be implemented in both hardware (FPGAs, ASICs, information handling devices, etc.) and software. Other embodiments are also disclosed and claimed. | 07-03-2014 |
20140188909 | RADIX SORT WITH READ-ONLY KEY - Methods and arrangements for a radix sort with a read only key. A plurality of keys are received, an array and a link table are populated for the first digit of the keys based upon the keys; and an array and a link table are populated for each successive digit of the keys based upon the array and link table populated for the preceding digit of the keys. Embodiments may be implemented in both hardware (FPGAs, ASICs, information handling devices, etc.) and software. Other embodiments are also disclosed and claimed. | 07-03-2014 |
20140279891 | REPLICATION GROUP PARTITIONING - Methods and systems for replication group partitioning include analyzing historical workload data for a plurality of data elements to generate one or more transaction patterns and generating a recommended partitioning of the plurality of data elements into one or more replication groups, based on the one or more transaction patterns, that are optimized toward a partitioning goal. | 09-18-2014 |
20140279892 | REPLICATION GROUP PARTITIONING - Systems for replication group partitioning include a workload profiling module configured to analyze historical workload data for a plurality of data elements to identify and categorize one or more transaction patterns; and a recommendation module configured to generate a recommended partitioning of the plurality of data elements into one or more replication groups, based on the one or more transaction patterns, that are optimized toward a partitioning goal. | 09-18-2014 |
20150026197 | OFFLOADING PROJECTION OF FIXED AND VARIABLE LENGTH DATABASE COLUMNS - In an exemplary embodiment of this disclosure, a computer-implemented method includes determining that a database query warrants a first projection operation to project a plurality of input rows to a plurality of projected rows, where each of the plurality of input rows has one or more variable-length columns. A first projection control block is constructed, by a computer processor, to describe the first projection operation. The first projection operation is offloaded to a hardware accelerator. The first projection control block is provided to the hardware accelerator, and the first projection control block enables the hardware accelerator to perform the first projection operation at streaming rate. | 01-22-2015 |
20150026198 | HARDWARE PROJECTION OF FIXED AND VARIABLE LENGTH COLUMNS OF DATABASE TABLES - In an exemplary embodiment of this disclosure, a computer-implemented method includes receiving, at a hardware accelerator, a first instruction to project a first plurality of database rows, where each of the first plurality of database rows has one or more variable-length columns. The first plurality of database rows are projected, by a computer processor, to produce a first plurality of projected rows. This projection is performed at streaming rate. | 01-22-2015 |
20150026199 | HARDWARE PROJECTION OF FIXED AND VARIABLE LENGTH COLUMNS OF DATABASE TABLES - In an exemplary embodiment of this disclosure, a computer-implemented method includes receiving, at a hardware accelerator, a first instruction to project a first plurality of database rows, where each of the first plurality of database rows has one or more variable-length columns. The first plurality of database rows are projected, by a computer processor, to produce a first plurality of projected rows. This projection is performed at streaming rate. | 01-22-2015 |
20150026220 | OFFLOADING PROJECTION OF FIXED AND VARIABLE LENGTH DATABASE COLUMNS - In an exemplary embodiment of this disclosure, a computer-implemented method includes determining that a database query warrants a first projection operation to project a plurality of input rows to a plurality of projected rows, where each of the plurality of input rows has one or more variable-length columns. A first projection control block is constructed, by a computer processor, to describe the first projection operation. The first projection operation is offloaded to a hardware accelerator. The first projection control block is provided to the hardware accelerator, and the first projection control block enables the hardware accelerator to perform the first projection operation at streaming rate. | 01-22-2015 |
20150046427 | ACCELERATING MULTIPLE QUERY PROCESSING OPERATIONS - Embodiments include methods, systems and computer program products a for offloading multiple processing operations to an accelerator includes receiving, by a processing device, a database query from an application. The method also includes performing analysis on the database query and selecting an accelerator template from a plurality of accelerator templates based on the analysis of the database query. The method further includes transmitting an indication of the accelerator template to the accelerator and executing at least a portion of the database query on the accelerator. | 02-12-2015 |
20150046428 | SCALABLE ACCELERATION OF DATABASE QUERY OPERATIONS - Embodiments include methods, systems and computer program products for offloading multiple processing operations to an accelerator. Aspects include receiving a database query from an application, performing an analysis on the query, and identifying a plurality of available accelerators. Aspects further include retrieving cost information for one or more templates available on each of the plurality of available accelerators, determining a query execution plan based on the cost information and the analysis on the query, and offloading one or more query operations to at least one of the plurality of accelerators based on the query execution plan. | 02-12-2015 |
20150046430 | SCALABLE ACCELERATION OF DATABASE QUERY OPERATIONS - Embodiments include methods, systems and computer program products for offloading multiple processing operations to an accelerator. Aspects include receiving a database query from an application, performing an analysis on the query, and identifying a plurality of available accelerators. Aspects further include retrieving cost information for one or more templates available on each of the plurality of available accelerators, determining a query execution plan based on the cost information and the analysis on the query, and offloading one or more query operations to at least one of the plurality of accelerators based on the query execution plan. | 02-12-2015 |
20150046453 | TUNABLE HARDWARE SORT ENGINE FOR PERFORMING COMPOSITE SORTING ALGORITHMS - Embodiments include methods, systems and computer program products for performing a composite sort on a tunable hardware sort engine includes determining desired sort performance parameters, configuring a composite sort engine based on the desired sort performance parameters, and receiving a plurality of keys having a payload associated with each of the plurality of keys. The method also includes reserving DRAM storage for each of the payloads, generating a tag for each of the plurality of keys, the tag identifying the DRAM storage reserved for each of the payloads, and storing the payloads in the portions of the DRAM storage. The method further includes generating a composite key for each of the plurality of keys, sorting the composite keys by the composite sort engine, and retrieving the payloads associated with the sorted composite keys from the DRAM storage. The method also includes outputting the payloads associated the sorted composite keys. | 02-12-2015 |
20150046475 | HARDWARE IMPLEMENTATION OF A TOURNAMENT TREE SORT ALGORITHM - Embodiments include methods, systems and computer program products for performing a tournament tree sort on a hardware accelerator. The method includes receiving a plurality of key values by the hardware accelerator, storing each the plurality of keys into a location on a memory of the hardware accelerator, and creating a pointer to each of the locations of the plurality of keys. The method also includes storing the pointer to each of the plurality of keys into a first array stored by the hardware accelerator, sorting the plurality of keys by ordering the pointers in the first array and by using a second array for storing the pointers, wherein the sorting identifies a winning key from the plurality of keys in the memory, and outputting the winning key. | 02-12-2015 |
20150046476 | TUNABLE HARDWARE SORT ENGINE FOR PERFORMING COMPOSITE SORTING ALGORITHMS - Embodiments include methods, systems and computer program products for performing a composite sort on a tunable hardware sort engine includes determining desired sort performance parameters, configuring a composite sort engine based on the desired sort performance parameters, and receiving a plurality of keys having a payload associated with each of the plurality of keys. The method also includes reserving DRAM storage for each of the payloads, generating a tag for each of the plurality of keys, the tag identifying the DRAM storage reserved for each of the payloads, and storing the payloads in the portions of the DRAM storage. The method further includes generating a composite key for each of the plurality of keys, sorting the composite keys by the composite sort engine, and retrieving the payloads associated with the sorted composite keys from the DRAM storage. The method also includes outputting the payloads associated the sorted composite keys. | 02-12-2015 |
20150046478 | HARDWARE IMPLEMENTATION OF A TOURNAMENT TREE SORT ALGORITHM - Embodiments include methods, systems and computer program products for performing a tournament tree sort on a hardware accelerator. The method includes receiving a plurality of key values by the hardware accelerator, storing each the plurality of keys into a location on a memory of the hardware accelerator, and creating a pointer to each of the locations of the plurality of keys. The method also includes storing the pointer to each of the plurality of keys into a first array stored by the hardware accelerator, sorting the plurality of keys by ordering the pointers in the first array and by using a second array for storing the pointers, wherein the sorting identifies a winning key from the plurality of keys in the memory, and outputting the winning key. | 02-12-2015 |
20150046486 | ACCELERATING MULTIPLE QUERY PROCESSING OPERATIONS - Embodiments include methods, systems and computer program products a for offloading multiple processing operations to an accelerator includes receiving, by a processing device, a database query from an application. The method also includes performing analysis on the database query and selecting an accelerator template from a plurality of accelerator templates based on the analysis of the database query. The method further includes transmitting an indication of the accelerator template to the accelerator and executing at least a portion of the database query on the accelerator. | 02-12-2015 |
20150186268 | EXTENDIBLE INPUT/OUTPUT DATA MECHANISM FOR ACCELERATORS - Embodiments include methods, systems and computer program products for providing an extendable job structure for executing instructions on an accelerator. The method includes creating a number of data descriptor blocks, each having a fixed number of memory location addresses and a pointer to a next of the number of the data descriptor block. The method further includes creating a last data descriptor block having the fixed number of memory location addresses and a last block indicator. Based on determining that additional memory is required for executing instructions on the accelerator, the method includes modifying the last data descriptor block to become a data extender block having a pointer to one of one or more new data descriptor blocks and creating a new last data descriptor block. | 07-02-2015 |
20150248452 | OPTIMIZATION OF MIXED DATABASE WORKLOAD SCHEDULING AND CONCURRENCY CONTROL BY MINING DATA DEPENDENCY RELATIONSHIPS VIA LOCK TRACING - The present disclosure relates generally to the field of determining data access patterns associated with different workloads. In various examples, determining data access patterns associated with different workloads may be implemented in the form of systems, methods and/or algorithms. The present disclosure also relates generally to the field of scheduling workloads (and/or recommending scheduling for workloads) based upon the determined data access patterns associated with the different workloads. In various examples, scheduling workloads (and/or recommending scheduling for workloads) may be implemented in the form of systems, methods and/or algorithms. | 09-03-2015 |