Patents by Inventor Terence Patrick Purcell

Terence Patrick Purcell 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).

  • Patent number: 8364677
    Abstract: A method and apparatus for generating partition keys in an information handling system having a partitioned database. Partition keys are generated by concatenating a partition subrange identifier specifying a subrange of key values and a sequence number specifying a particular key value within a subrange. Partition keys are assigned with the aid of a partition key control table that stores subrange and available key block information and is updated whenever key blocks are reserved or the database is repartitioned. An activity indicator maintained for each partition indicates recent activity in the partition. In response to a request for a partition key, a partition is selected for key assignment having the least recent activity as indicated by its activity indicator. Specific activity indicators disclosed include a timestamp for each partition in the control table, as well as a count of the threads in a particular application instance concurrently accessing a partition.
    Type: Grant
    Filed: August 1, 2008
    Date of Patent: January 29, 2013
    Assignee: International Business Machines Corporation
    Inventors: Richard J. Brodfuehrer, Terence Patrick Purcell, Michael S. Wang, Kim Jon Worm
  • Patent number: 8200657
    Abstract: Processing non-Boolean term conditions in database queries. A query that is a request for data in a database is received and includes at least one uneven non-Boolean term condition that spans multiple tables in the database. The non-Boolean term condition is split into separate portions, each of the portions providing a Boolean term that can be satisfied by accessing one table in the database. The separate portions are executed independently to find at least one data result in the database that satisfies the Boolean term of each separate portion, and the data result from each separate portion are combined into a final result that satisfies the query.
    Type: Grant
    Filed: September 26, 2008
    Date of Patent: June 12, 2012
    Assignee: International Business Machines Corporation
    Inventors: Terence Patrick Purcell, Thomas Abel Beavin
  • Patent number: 8140522
    Abstract: 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.
    Type: Grant
    Filed: August 12, 2008
    Date of Patent: March 20, 2012
    Assignee: International Business Machines Corporation
    Inventors: Hong Min, Yefim Shuf, Terence Patrick Purcell, You-Chin Fuh, Chunfeng Pei, Ou Jin
  • Patent number: 7970756
    Abstract: A system for executing a query on data that has been partitioned into a plurality of partitions is provided. The system includes providing partitioned data including one or more columns and the plurality of partitions. The partitioned data includes a limit key value associated with each column for a given partition. The system further includes receiving a query including a predicate on one of the one or more columns of the partitioned data; and utilizing the predicate on the one of the one or more columns in a pruning decision on at least one of the one or more partitions based on the limit key values associated with the plurality of partitions.
    Type: Grant
    Filed: November 10, 2008
    Date of Patent: June 28, 2011
    Assignee: International Business Machines Corporation
    Inventors: Thomas Abel Beavin, Sauraj Goswami, Terence Patrick Purcell
  • Patent number: 7953726
    Abstract: Processing a multiple table query includes: determining if any tables in the query require materialization; for each table in the query that requires materialization, deriving at least one join predicate on a join column; determining if any tables earlier in a join sequence for the query has same join predicates; and applying the at least one derived join predicate to an earlier table in the join sequence, if there is at least one table earlier in the join sequence that has the same join predicate. This significantly reduces the number of rows that are joined before arriving at the final result.
    Type: Grant
    Filed: August 3, 2008
    Date of Patent: May 31, 2011
    Assignee: International Business Machines Corporation
    Inventor: Terence Patrick Purcell
  • Patent number: 7930294
    Abstract: 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.
    Type: Grant
    Filed: August 12, 2008
    Date of Patent: April 19, 2011
    Assignee: International Business Machines Corporation
    Inventors: Yefim Shuf, Hong Min, Terence Patrick Purcell, Ou Jin, Fen-Ling Lin, Brian Thinh-Vinh Tran, Patrick Dooling Bossman
  • Patent number: 7895185
    Abstract: A method, computer program product, and system for managing row identifier (RID) list processing on an index are provided. The method, computer program product, and system provide for accessing one or more key values in the index based on one or more keys specified in a query, retrieving a plurality of row identifiers corresponding to the one or more key values from the index, and predicting an actual number of row identifiers to be retrieved from the index based on the one or more key values accessed and the plurality of row identifiers retrieved.
    Type: Grant
    Filed: September 28, 2006
    Date of Patent: February 22, 2011
    Assignee: International Business Machines Corporation
    Inventors: Ying-Lin Chen, You-Chin Fuh, Fen-Ling Lin, Terence Patrick Purcell, Ying Zeng
  • Publication number: 20100042607
    Abstract: 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.
    Type: Application
    Filed: August 12, 2008
    Publication date: February 18, 2010
    Applicant: International Business Machines Corporation
    Inventors: Hong Min, Yefim Shuf, Terence Patrick Purcell, You-Chin Fuh, Chunfeng Pei, Ou Jin
  • Publication number: 20100042631
    Abstract: 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.
    Type: Application
    Filed: August 12, 2008
    Publication date: February 18, 2010
    Applicant: International Business Machines Corporation
    Inventors: Yefim Shuf, Hong Min, Terence Patrick Purcell, Ou Jin, Fen-Ling Lin, Brian Thinh-Vinh Tran, Patrick Dooling Bossman
  • Publication number: 20100030800
    Abstract: A method and apparatus for generating partition keys in an information handling system having a partitioned database. Partition keys are generated by concatenating a partition subrange identifier specifying a subrange of key values and a sequence number specifying a particular key value within a subrange. Partition keys are assigned with the aid of a partition key control table that stores subrange and available key block information and is updated whenever key blocks are reserved or the database is repartitioned. An activity indicator maintained for each partition indicates recent activity in the partition. In response to a request for a partition key, a partition is selected for key assignment having the least recent activity as indicated by its activity indicator. Specific activity indicators disclosed include a timestamp for each partition in the control table, as well as a count of the threads in a particular application instance concurrently accessing a partition.
    Type: Application
    Filed: August 1, 2008
    Publication date: February 4, 2010
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Richard J. Brodfuehrer, Terence Patrick Purcell, Michael S. Wang, Kim Jon Worm
  • Patent number: 7565342
    Abstract: Provided are a techniques for processing a query including semi-joins. At execution time, a next semi-join is selected from the semi-joins for execution in a current round of semi-join executions. A reporting threshold is determined that indicates a number of record-identifiers to be retrieved for the determined semi-join. The selected semi-join is executed until the determined number of record identifiers are retrieved.
    Type: Grant
    Filed: September 9, 2005
    Date of Patent: July 21, 2009
    Assignee: International Business Machines Corporation
    Inventors: You-Chin Fuh, Fen-Ling Lin, Andrei Fedorovich Lurie, Terence Patrick Purcell, Yoichi Tsuji, Li Xia
  • Patent number: 7536379
    Abstract: An improved mechanism for processing a multiple table query includes: determining if any tables in the query require materialization; for each table in the query that requires materialization, deriving at least one join predicate on a join column; determining if any tables earlier in a join sequence for the query has same join predicates; and applying the at least one derived join predicate to an earlier table in the join sequence, if there is at least one table earlier in the join sequence that has the same join predicate. This significantly reduces the number of rows that are joined before arriving at the final result.
    Type: Grant
    Filed: December 15, 2004
    Date of Patent: May 19, 2009
    Assignee: International Business Machines Corporation
    Inventor: Terence Patrick Purcell
  • Publication number: 20090070303
    Abstract: A system for executing a query on data that has been partitioned into a plurality of partitions is provided. The system includes providing partitioned data including one or more columns and the plurality of partitions. The partitioned data includes a limit key value associated with each column for a given partition. The system further includes receiving a query including a predicate on one of the one or more columns of the partitioned data; and utilizing the predicate on the one of the one or more columns in a pruning decision on at least one of the one or more partitions based on the limit key values associated with the plurality of partitions.
    Type: Application
    Filed: November 10, 2008
    Publication date: March 12, 2009
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: THOMAS ABEL BEAVIN, SAURAJ GOSWAMI, TERENCE PATRICK PURCELL
  • Publication number: 20090063458
    Abstract: A method for minimizing the sorting of data comprises retrieving a database having an index of entries arranged according to a first, second, and third data entries. Additionally, partitioning the index of entries into a first partially-ordered list, wherein the first partially-ordered list comprises information arranged in the form of the first, second, and third data entries. The first partially-ordered list share the same first data entry. Furthermore, partitioning the index of entries into a second partially-ordered list, wherein the second partially-ordered list comprises information arranged in the form of first data entry, second data entry, third data entry. The first data entry within the second partially-ordered list is not the same as the first data entry in the first partially-ordered list. Additionally, querying the first partially-ordered list without querying the second partially-ordered list according to a set of query instructions.
    Type: Application
    Filed: August 31, 2007
    Publication date: March 5, 2009
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Thomas A. BEAVIN, Terence Patrick PURCELL
  • Patent number: 7499917
    Abstract: Processing non-Boolean term conditions in database queries. A query that is a request for data in a database is received and includes at least one uneven non-Boolean term condition that spans multiple tables in the database. The non-Boolean term condition is split into separate portions, each of the portions providing a Boolean term that can be satisfied by accessing one table in the database. The separate portions are executed independently to find at least one data result in the database that satisfies the Boolean term of each separate portion, and the data result from each separate portion are combined into a final result that satisfies the query.
    Type: Grant
    Filed: January 28, 2005
    Date of Patent: March 3, 2009
    Assignee: International Business Machines Corporation
    Inventors: Terence Patrick Purcell, Thomas Abel Beavin
  • Publication number: 20090019040
    Abstract: Processing non-Boolean term conditions in database queries. A query that is a request for data in a database is received and includes at least one uneven non-Boolean term condition that spans multiple tables in the database. The non-Boolean term condition is split into separate portions, each of the portions providing a Boolean term that can be satisfied by accessing one table in the database. The separate portions are executed independently to find at least one data result in the database that satisfies the Boolean term of each separate portion, and the data result from each separate portion are combined into a final result that satisfies the query.
    Type: Application
    Filed: September 26, 2008
    Publication date: January 15, 2009
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: TERENCE PATRICK PURCELL, THOMAS ABEL BEAVIN
  • Patent number: 7461060
    Abstract: Methods for executing a query on data that has been partitioned into a plurality of partitions are provided. The method includes providing partitioned data including one or more columns and the plurality of partitions. The partitioned data includes a limit key value associated with each column for a given partition. The method further includes receiving a query including a predicate on one of the one or more columns of the partitioned data; and utilizing the predicate on the one of the one or more columns in a pruni.ng decision on at least one of the one or more partitions based on the limit key values associated with the plurality of partitions.
    Type: Grant
    Filed: October 4, 2005
    Date of Patent: December 2, 2008
    Assignee: International Business Machines Corporation
    Inventors: Thomas Abel Beavin, Sauraj Goswami, Terence Patrick Purcell
  • Publication number: 20080288469
    Abstract: Processing a multiple table query includes: determining if any tables in the query require materialization; for each table in the query that requires materialization, deriving at least one join predicate on a join column; determining if any tables earlier in a join sequence for the query has same join predicates; and applying the at least one derived join predicate to an earlier table in the join sequence, if there is at least one table earlier in the join sequence that has the same join predicate. This significantly reduces the number of rows that are joined before arriving at the final result.
    Type: Application
    Filed: August 3, 2008
    Publication date: November 20, 2008
    Applicant: International Business Machines Corporation
    Inventor: Terence Patrick PURCELL
  • Publication number: 20080082489
    Abstract: A method, computer program product, and system for managing row identifier (RID) list processing on an index are provided. The method, computer program product, and system provide for accessing one or more key values in the index based on one or more keys specified in a query, retrieving a plurality of row identifiers corresponding to the one or more key values from the index, and predicting an actual number of row identifiers to be retrieved from the index based on the one or more key values accessed and the plurality of row identifiers retrieved.
    Type: Application
    Filed: September 28, 2006
    Publication date: April 3, 2008
    Applicant: International Business Machines Corporation
    Inventors: Ying-Lin CHEN, You-Chin Fuh, Fen-Ling Lin, Terence Patrick Purcell, Ying Zeng