Patents by Inventor Ian R. Finlay

Ian R. Finlay has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20160378833
    Abstract: According to one embodiment of the present invention, a system may execute database queries and may comprise a computer system including at least one processor. The system may select a column of a first table as a candidate column for creating a dictionary, create tokens for a foreign key in a second table that corresponds to a primary key in the first table, generate the dictionary for the selected column using the created tokens as indexes in the dictionary and modify a query accessing the column of the first table to retrieve column values based on the dictionary. Embodiments of the present invention further include a method and computer program product executing database queries in substantially the same manner described above.
    Type: Application
    Filed: June 29, 2015
    Publication date: December 29, 2016
    Inventors: Naresh K. Chainani, Garth A. Dickie, Ian R. Finlay, Robin D. Grosman
  • Publication number: 20160378783
    Abstract: According to one embodiment of the present invention, a system may execute database queries and may comprise a computer system including at least one processor. The system may select a column of a first table as a candidate column for creating a dictionary, create tokens for a foreign key in a second table that corresponds to a primary key in the first table, generate the dictionary for the selected column using the created tokens as indexes in the dictionary and modify a query accessing the column of the first table to retrieve column values based on the dictionary. Embodiments of the present invention further include a method and computer program product executing database queries in substantially the same manner described above.
    Type: Application
    Filed: April 26, 2016
    Publication date: December 29, 2016
    Inventors: Naresh K. Chainani, Garth A. Dickie, Ian R. Finlay, Robin D. Grosman
  • Publication number: 20160371336
    Abstract: To perform a join operation on database objects, data structures contained in a first database object are distributed across database partitions in accordance with a partitioning scheme. Data structures of the first database object are associated with respective indices computed complementarily to the partitioning scheme. Other indices are computed from the respective data structures of a second database object. The join operation is performed at each of the database partitions on the data structures in the respective first and second database objects having the indices and the other indices in common.
    Type: Application
    Filed: June 18, 2015
    Publication date: December 22, 2016
    Inventors: Garth A. Dickie, Ian R. Finlay
  • Publication number: 20160371337
    Abstract: To perform a join operation on database objects, data structures contained in a first database object are distributed across database partitions in accordance with a partitioning scheme. Data structures of the first database object are associated with respective indices computed complementarily to the partitioning scheme. Other indices are computed from the respective data structures of a second database object. The join operation is performed at each of the database partitions on the data structures in the respective first and second database objects having the indices and the other indices in common.
    Type: Application
    Filed: May 12, 2016
    Publication date: December 22, 2016
    Inventors: Garth A. Dickie, Ian R. Finlay
  • Publication number: 20160188623
    Abstract: An illustrative embodiment for optimizing scans using a Bloom filter synopsis, defines metadata to encode distinct values in a range of values associated with a particular portion of a managed object in a database management system into a probabilistic data structure of a Bloom filter that stores an indicator, encoded in a fixed size bit map with one or more bits, indicating whether an element of the particular portion of the managed object is a member of a set of values summarized in the Bloom filter using a value of 1 or definitely not in the set using a value of 0. The Bloom filter is compressed to create a compressed Bloom filter. The Bloom filter is added to the metadata associated with the managed object and used when testing for values associated with predicates.
    Type: Application
    Filed: November 20, 2015
    Publication date: June 30, 2016
    Inventors: Ian R. Finlay, Jeffrey M. Keller, Adam J. Storm, Calisto P. Zuzarte
  • Publication number: 20160179896
    Abstract: The method includes identifying at least one of a minimum value, a maximum value, and a Bloom filter value for a row of data in a metadata table, wherein the metadata table contains metadata corresponding to a row of data in a main table. The method includes adjusting at least one of an identified first minimum value to a second minimum value, an identified first maximum value to a second maximum value, and an identified first Bloom filter value to a second Bloom filter value.
    Type: Application
    Filed: June 12, 2015
    Publication date: June 23, 2016
    Inventors: Ian R. Finlay, Christian M. Garcia-Arellano, Adam J. Storm, Calisto P. Zuzarte
  • Publication number: 20160179858
    Abstract: The method includes identifying at least one of a minimum value, a maximum value, and a Bloom filter value for a row of data in a metadata table, wherein the metadata table contains metadata corresponding to a row of data in a main table. The method includes adjusting at least one of an identified first minimum value to a second minimum value, an identified first maximum value to a second maximum value, and an identified first Bloom filter value to a second Bloom filter value.
    Type: Application
    Filed: December 18, 2014
    Publication date: June 23, 2016
    Inventors: Ian R. Finlay, Christian M. Garcia-Arellano, Adam J. Storm, Calisto P. Zuzarte
  • Publication number: 20160117343
    Abstract: Methods and apparatus, including computer program products, implementing and using techniques for predicate application using partial compression dictionary match. A search strategy is developed for each predicate to be applied to compressed data. The compressed data is searched using the search strategy to locate the compression symbols identified in the search strategy. In response to locating a compression symbol from the search strategy in the compressed data, a respective row and applying the predicate is decompressed and a respective row that matches the predicate is returned to a database engine or an application.
    Type: Application
    Filed: October 22, 2014
    Publication date: April 28, 2016
    Inventor: Ian R. Finlay
  • Publication number: 20160118998
    Abstract: Apparatus and systems, including computer program products, implementing and using techniques for predicate application using partial compression dictionary match. A search strategy is developed for each predicate to be applied to compressed data. The compressed data is searched using the search strategy to locate the compression symbols identified in the search strategy. In response to locating a compression symbol from the search strategy in the compressed data, a respective row and applying the predicate is decompressed and a respective row that matches the predicate is returned to a database engine or an application.
    Type: Application
    Filed: April 14, 2015
    Publication date: April 28, 2016
    Inventor: Ian R. Finlay
  • Publication number: 20160055208
    Abstract: According to present invention embodiments, methods, systems, and computer readable media of executing a database query are provided. One or more predicates are generated based on implicit filtering present within the database query, wherein each predicate specifies a condition with respect to a predicate value. An access path is selected for the database query based on the one or more predicates and the one or more predicates are integrated within the selected access plan. The database query is executed in accordance with the selected access plan. At least one predicate value based on data accessed is updated, as the database query is being executed, to increase filtering of data during remaining execution of the database query.
    Type: Application
    Filed: April 7, 2015
    Publication date: February 25, 2016
    Inventors: Thomas A. Beavin, Garth A. Dickie, Ian R. Finlay, Terence P. Purcell
  • Publication number: 20160055210
    Abstract: According to present invention embodiments, methods, systems, and computer readable media of executing a database query are provided. One or more predicates are generated based on implicit filtering present within the database query, wherein each predicate specifies a condition with respect to a predicate value. An access path is selected for the database query based on the one or more predicates and the one or more predicates are integrated within the selected access plan. The database query is executed in accordance with the selected access plan. At least one predicate value based on data accessed is updated, as the database query is being executed, to increase filtering of data during remaining execution of the database query.
    Type: Application
    Filed: August 21, 2014
    Publication date: February 25, 2016
    Inventors: Thomas A. Beavin, Garth A. Dickie, Ian R. Finlay, Terence P. Purcell
  • Publication number: 20160034531
    Abstract: According to one embodiment of the present invention, a method of transferring filters for operations in a distributed system comprises generating at each source node a first filter of a first size. The first filter indicates elements of objects that need not be processed for an operation. Each source node generates one more second filters of a second size less than the first size. Each generated second filter is based on a prior generated filter with each location representing a plurality of locations from the prior generated filter. A second filter is transferred from each source node to each of destination node. The elements of the objects to remove for the operation are determined based on the transferred second filters. Embodiments of the present invention further include a system and computer program product for transferring filters in a distributed system in substantially the same manners described above.
    Type: Application
    Filed: July 31, 2014
    Publication date: February 4, 2016
    Inventors: Ronald J. Barber, Naresh K. Chainani, Kiran K. Chinta, Ian R. Finlay, Vijayshankar Raman, Liping Zhang
  • Publication number: 20160034587
    Abstract: According to one embodiment of the present invention, a method of transferring filters for operations in a distributed system comprises generating at each source node a first filter of a first size. The first filter indicates elements of objects that need not be processed for an operation. Each source node generates one more second filters of a second size less than the first size. Each generated second filter is based on a prior generated filter with each location representing a plurality of locations from the prior generated filter. A second filter is transferred from each source node to each of destination node. The elements of the objects to remove for the operation are determined based on the transferred second filters. Embodiments of the present invention further include a system and computer program product for transferring filters in a distributed system in substantially the same manners described above.
    Type: Application
    Filed: March 11, 2015
    Publication date: February 4, 2016
    Inventors: Ronald J. Barber, Naresh K. Chainani, Kiran K. Chinta, Ian R. Finlay, Vijayshankar Raman, Liping Zhang
  • Patent number: 7974968
    Abstract: A pre-pass and direct call mechanism which replaces the interpreter. The mechanism moves static decisions out of the repeated runtime path, into a pre-pass operation. Advantageously, the mechanism reduces runtime overhead, and improves overall performance of the DBMS during runtime, while maintaining the considerable investment in opcode generation and plan representation, already invested in the implementation of the DBMS.
    Type: Grant
    Filed: May 6, 2008
    Date of Patent: July 5, 2011
    Assignee: International Business Machines Corporation
    Inventors: Ian R. Finlay, Douglas James Doole
  • Patent number: 7752160
    Abstract: The retrieval of distinct tuples in a relational database management system. In response to a request from a consumer process for distinct tuples in a relational database table matching a defined criteria, a distinct operator component sequentially requests tuples from a source component. The source component access the database table and returns a tuple in the sequence to the distinct operator component. The distinct operator component passes each tuple in the sequence to an auxiliary logger. The auxiliary component receives a tuples from the distinct component and determines if it is distinct from other previously received tuples in the sequence to verify its uniqueness to the distinct operator. Tuples that are verified as unique by the auxiliary logger are returned to the consumer process by the distinct operator upon verification.
    Type: Grant
    Filed: July 2, 2002
    Date of Patent: July 6, 2010
    Assignee: International Business Machines Corporation
    Inventors: Ian R. Finlay, Tony Wen Hsun Lai, Daniel C. Zilio, Calisto Paul Zuzarte
  • Patent number: 7680821
    Abstract: An optimized query processing system and method for a database system. The database system includes a table of data and an index correlated to both the query and to the table. The optimized query processing system includes an index accessing module adapted to access the index to determine if the table contains an entry satisfying a query predicate; and a tablescan module for scanning substantially the entire table and retrieving data satisfying the query. A method is also disclosed for generating database diagnostic data.
    Type: Grant
    Filed: August 7, 2002
    Date of Patent: March 16, 2010
    Assignee: International Business Machines Corporation
    Inventors: Ian R. Finlay, Calisto P. Zuzarte
  • Publication number: 20080263017
    Abstract: The retrieval of distinct tuples in a relational database management system. In response to a request from a consumer process for distinct tuples in a relational database table matching a defined criteria, a distinct operator component sequentially requests tuples from a source component. The source component access the database table and returns a tuple in the sequence to the distinct operator component. The distinct operator component passes each tuple in the sequence to an auxiliary logger. The auxiliary component receives a tuples from the distinct component and determines if it is distinct from other previously received tuples in the sequence to verify its uniqueness to the distinct operator. Tuples that are verified as unique by the auxiliary logger are returned to the consumer process by the distinct operator upon verification.
    Type: Application
    Filed: July 1, 2008
    Publication date: October 23, 2008
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Ian R. Finlay, Tony Wen Hsun Lai, Daniel C. Zilio, Calisto Paul Zuzarte
  • Publication number: 20080208799
    Abstract: A pre-pass and direct call mechanism which replaces the interpreter. The mechanism moves static decisions out of the repeated runtime path, into a pre-pass operation. Advantageously, the mechanism reduces runtime overhead, and improves overall performance of the DBMS during runtime, while maintaining the considerable investment in opcode generation and plan representation, already invested in the implementation of the DBMS.
    Type: Application
    Filed: May 6, 2008
    Publication date: August 28, 2008
    Applicant: International Business Machines Corporation
    Inventors: Ian R. Finlay, Douglas James Doole
  • Patent number: 7392245
    Abstract: A pre-pass and direct call mechanism which replaces the interpreter. The mechanism moves static decisions out of the repeated runtime path into a pre-pass operation. Advantageously, the mechanism reduces runtime overhead and improves overall performance of the DBMS during runtime, while maintaining the considerable investment in opcode generation and plan representation.
    Type: Grant
    Filed: July 28, 2000
    Date of Patent: June 24, 2008
    Assignee: International Business Machines Corporation
    Inventors: Ian R. Finlay, Douglas James Doole
  • Patent number: 7085751
    Abstract: A query processing system having a data manager, and a query manager also includes a buffer. The query manager calls the data manager to access data based on a query. Where there is no predicate check or consumption operation on the record accessed, the data manager will notionally return the record to the query manager. However, the data manager accomplishes the return by writing the relevant portions of the record to a buffer. The data manager maintains stabilization of the page containing the record while the buffer is being written to. The data manager continues to access records on the stabilized page and to write such records to the buffer where appropriate. The query manager retrieves the records from the buffer after the data manager has completed its operation resulting from the query manager call.
    Type: Grant
    Filed: January 10, 2001
    Date of Patent: August 1, 2006
    Assignee: International Business Machines Corporation
    Inventors: Ian R. Finlay, Bruce G. Lindsay, Guy M. Lohman, David C. Sharpe, Daniel C. Zilio