Patents by Inventor William H. Waddington

William H. Waddington 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: 8145642
    Abstract: Techniques are described for combining pieces of information from two sources. The techniques may be used to improve the performance, for example, of hash join operations that are parallelized using slaves distributed across multiple nodes. According to one technique, bitmap filtering operations are performed by the probe-phase producer slaves, rather than the probe-phase consumer slaves. To avoid having to merge separately built bitmap filter chunks, the left-hand rows may be sent to every probe-phase consumer slave. Alternatively, the merge operation may be avoided by distributing the rows of one source based on how the other source has been statically partitioned.
    Type: Grant
    Filed: November 30, 2004
    Date of Patent: March 27, 2012
    Assignee: Oracle International Corporation
    Inventors: Thierry Cruanes, Benoit Dageville, William H. Waddington
  • Patent number: 8140493
    Abstract: A method and apparatus for changing versioned metadata without invalidating cursors is provided. Cursors may be linked to the appropriate version of metadata at execution time as opposed to compilation time, meaning that they do not require recompilation to link to a new version of metadata. A database system maintains compiled code implementing a plan with respect to data items in a data storage space. The compiled code may have been generated in response to receiving a request to perform an operation that may be implemented using the plan. A version of metadata is also maintained. The metadata describes characteristics of the data storage space implicated by the plan. The compiled code is executed. The step of execution comprises binding the compiled code to the version of metadata. A proxy object referenced in the compiled code may facilitate the binding of the compiled code to the appropriate version of metadata.
    Type: Grant
    Filed: June 15, 2007
    Date of Patent: March 20, 2012
    Assignee: Oracle International Corporation
    Inventors: William H. Waddington, Shrikanth Shankar
  • Patent number: 7680791
    Abstract: Several techniques for sorting item are described, generally referred to as (1) common prefix skipping quicksort; (2) key substring caching; and (3) adaptive quicksort. With common prefix skipping quicksort, common prefix bytes among all key values for a partition are computed while performing a quicksort partitioning operation, and the known common bytes are skipped when comparing two key values in a recursive partitioning operation. With key substring caching, each item is represented in a cached array comprising a particular number of bytes for respective portions of key values (“key substring”), where the key substring cache is updated contain bytes beyond the known number of common prefix bytes. An adaptive quicksort routine is a hybrid of a quicksort function and most significant digit radix sort function, where the functions are mutually recursive.
    Type: Grant
    Filed: January 18, 2005
    Date of Patent: March 16, 2010
    Assignee: Oracle International Corporation
    Inventors: Mark D. Callaghan, Wei Z. Li, William H. Waddington
  • Publication number: 20080313623
    Abstract: A method and apparatus for changing versioned metadata without invalidating cursors is provided. Cursors may be linked to the appropriate version of metadata at execution time as opposed to compilation time, meaning that they do not require recompilation to link to a new version of metadata. A database system maintains compiled code implementing a plan with respect to data items in a data storage space. The compiled code may have been generated in response to receiving a request to perform an operation that may be implemented using the plan. A version of metadata is also maintained. The metadata describes characteristics of the data storage space implicated by the plan. The compiled code is executed. The step of execution comprises binding the compiled code to the version of metadata. A proxy object referenced in the compiled code may facilitate the binding of the compiled code to the appropriate version of metadata.
    Type: Application
    Filed: June 15, 2007
    Publication date: December 18, 2008
    Inventors: William H. Waddington, Shrikanth Shankar
  • Patent number: 7203672
    Abstract: Techniques are provided for processing, within a database server, a database statement, where at least one subtask required by the database statement is to be executed in parallel by a slave set. The database server determines whether the database statement includes an external expression, relative to the subtask, that (a) produces information that is required by slave processes in the slave set in order to perform the subtask, and (b) is not to be evaluated by each slave process in the slave set. During execution of the statement, if the database statement includes an external expression, then one or more external values are generated by causing the external expression to be evaluated, and the one or more external values are communicated to slaves of the slave set to allow the slave processes to perform respective portions of the subtask in parallel, without requiring each slave of the slave set to evaluate the external expression.
    Type: Grant
    Filed: June 9, 2004
    Date of Patent: April 10, 2007
    Assignee: Oracle International Corporation
    Inventors: Thierry Cruanes, Bhaskar Ghosh, Subramanian Muralidhar, William H. Waddington
  • Patent number: 6684203
    Abstract: A technique and mechanism for transforming a query is described. A given query is transformed into a transformed query that references a global temporary table. Specifically, the given query contains a join between a given table and one or more other tables referenced by constraints (e.g. predicates). References to one or more of the constrained tables are replaced by a reference to a global temporary table. Before executing the transformed query, data that satisfies the constraints placed on the constrained table is inserted into the global temporary table.
    Type: Grant
    Filed: November 8, 1999
    Date of Patent: January 27, 2004
    Assignee: Oracle International Corporation
    Inventors: William H. Waddington, Cetin Ozbutun, Michael Charles Depledge, Angela Amor
  • Patent number: 6438562
    Abstract: A method, system and product for coordinating a parallel update for a global index of an indexed table involves a coordinator process and slave processes. The coordinator process receives index maintenance records from data manipulation slaves for an indexed table. Each index maintenance record includes a value for an index key of a global index of the table. The coordinator process computes index key value ranges and sends each range to an index update slave. Each slave updates the global index using just the index maintenance records with key values in its respective range, thus avoiding contention among the slaves and increasing clustering so that scaleable parallelism may be more closely attained. Techniques are also described for deferring the maintenance of global indexes relative to the time when the table on which they are built is changed.
    Type: Grant
    Filed: August 24, 1999
    Date of Patent: August 20, 2002
    Assignee: Oracle Corporation
    Inventors: Shivani Gupta, William H. Waddington, Benoit Dageville
  • Patent number: 6430550
    Abstract: Techniques are provided for executing distinct aggregation operations in a manner that is more scalable and efficient than prior techniques. A three-stage technique is provided to parallelize aggregation operations that involve both grouping and multiple distinct-key columns. Such queries are handled by splitting rows into as many pieces as there are distinct aggregates in the query, and processing the row pieces. During the first-stage, a set of slave processes scans the rows of the base tables and performs partial duplicate elimination. During the second-stage, a set of slave processes completes the duplicate elimination and performs partial set function aggregation. During the third-stage, a third set of slave processes completes the set aggregation to produce the results of the distinct aggregation operation.
    Type: Grant
    Filed: December 3, 1999
    Date of Patent: August 6, 2002
    Assignee: Oracle Corporation
    Inventors: John Leo, Cetin Ozbutun, William H. Waddington, Shivani Gupta
  • Patent number: 6230220
    Abstract: A method and apparatus are provided for allocating buffer memory for database sort operations. A database parameter is set to determine whether and how direct write buffers are to be allocated for sort operations. If the parameter is set to a first value, then direct write buffers will be used to perform writes to disk. The size and number of direct write buffers to be used will be determined by the values set in other database parameters. If the parameter is set to a second value, then no direct write buffers will be used, and sort operations will write to disk through a buffer cache. If the parameter is set to a third value, direct write buffers will be allocated a portion of the memory available to perform the sort operation. The size and number of direct write buffers will be determined in accordance with database formulae that are designed to optimize sort and data write performance.
    Type: Grant
    Filed: July 31, 1998
    Date of Patent: May 8, 2001
    Assignee: Oracle Corporation
    Inventors: Jeffrey I. Cohen, William H. Waddington
  • Patent number: 6041384
    Abstract: A method and apparatus manage shared resources in a multiprocessing computer system. A coordinator process identifies resources to be operated upon by a plurality of worker processes. The coordinator process acquires locks to lock the resources on behalf of the plurality of worker processes. The plurality of worker processes then operate on the resources locked by the coordinator process.
    Type: Grant
    Filed: May 30, 1997
    Date of Patent: March 21, 2000
    Assignee: Oracle Corporation
    Inventors: William H. Waddington, Leng Leng Tan, Patricia Grewell
  • Patent number: 6026406
    Abstract: A method and apparatus for batch processing of updates to indexes is provided. A plurality of index update records are generated that identify a plurality of index update operations to be made to an index. The plurality of index entry records are sorted and then applied, in an order that corresponds to the sort order, in batches to their respective indexes. As a result of performing batch processing of updates to indexes, the number of disk I/Os will be greatly reduced, freeing database system resources to perform other tasks. The overall efficiency of index maintenance is also improved, as is the recovery of the database system after a failure, resultant from an ordering of the index maintenance operations and a partial ordering of the persistent redo log file.
    Type: Grant
    Filed: June 4, 1997
    Date of Patent: February 15, 2000
    Assignee: Oracle Corporation
    Inventors: Wei Huang, Gianfranco Putzolu, William H. Waddington, Jonathan D. Klein
  • Patent number: 5956704
    Abstract: A method and apparatus for parallelizing operations that change a database is provided. A coordinator process receives a statement that requires data to be written into the database. In response to the statement, the coordinator process assigns granules of work to multiple processes. Each of the multiple processes executes the granule of work by writing to the database a distinct portion of the set of data that is to be added to the database. The various portions of data are then merged to update the set of data to be added to the database.
    Type: Grant
    Filed: June 5, 1997
    Date of Patent: September 21, 1999
    Assignee: Oracle Corporation
    Inventors: Jyotin Gautam, William H. Waddington, Leng Leng Tan, Gary Hallmark, Jonathan Klein, Allen Brumm
  • Patent number: 5903898
    Abstract: A method and system for selectively disabling the logging of database operations during the execution of database processes or the creation of database objects is disclosed. According to the method, changes made to the database through data manipulation statements or queries can include a statement that the change to be executed is not to be logged. If the operation is to be logged, a log buffer stores the information about the changes and a log writer background process writes the operation entries to disk. Similarly, the creation or manipulation of database objects through object manipulation statements can be logged or not logged. As with logged data manipulation statements, if the manipulation of a database object is to be logged, a log buffer stores the information about the changes and a log writer background process writes the operation entries to disk.
    Type: Grant
    Filed: June 4, 1996
    Date of Patent: May 11, 1999
    Assignee: Oracle Corporation
    Inventors: Jeffrey I. Cohen, William H. Waddington, Daniel Leary
  • Patent number: 5872981
    Abstract: A method for managing termination of a process that holds a resource lock on behalf of another process is described. A first process acquires a first lock to a resource on behalf of a second process to exclude other processes from accessing the resource. The second process then acquires a wait lock to the resource. Later, when a third process acquires the first lock to the resource, the third process determines whether the first process terminated without releasing the lock. If the first process did terminate without releasing the lock, the third process attempts to acquire the wait lock. In attempting to acquire the wait lock, execution of the third process is suspended until the second process releases the wait lock. Consequently, acquisition of the wait lock by the third process prevents concurrent access to the resource by the third process and the second process.
    Type: Grant
    Filed: May 30, 1997
    Date of Patent: February 16, 1999
    Assignee: Oracle Corporation
    Inventors: William H. Waddington, Leng Leng Tan, Patricia Grewell
  • Patent number: 5870743
    Abstract: A method and apparatus for parallelizing operations that change a database is provided. A coordinator process receives a statement that requires data to be written into the database. In response to the statement, the coordinator process assigns granules of work to multiple processes. Each of the multiple processes executes the granule of work by writing to the database a distinct portion of the set of data that is to be added to the database. The various portions of data are then merged to create the set of data to be added to the database.
    Type: Grant
    Filed: June 24, 1996
    Date of Patent: February 9, 1999
    Assignee: Oracle Corporation
    Inventors: Jeffrey I. Cohen, William H. Waddington, Daniel Leary, Jonathan Klein
  • Patent number: 5850547
    Abstract: The present invention performs parallel processing of aggregate functions in a computing system. Partitioned into multiple subsets of data and each of the multiple subsets of data is allocated to one of a plurality of processes. Intermediate aggregations are performed in parallel by the plurality of processes on each of the multiple subsets of data. Each intermediate aggregation yields at least one intermediate value, wherein the at least one intermediate value is represented in an internal type format. The intermediate values from each of the intermediate aggregations are merged into a final aggregation value.
    Type: Grant
    Filed: January 8, 1997
    Date of Patent: December 15, 1998
    Assignee: Oracle Corporation
    Inventors: William H. Waddington, Jeffrey I. Cohen
  • Patent number: 5848408
    Abstract: A method and apparatus for processing star queries is provided. According to the method, a star query is transformed by adding to the star query subqueries that are not in the query. The subqueries are generated based on join predicates and constraints on dimension tables that are contained in the original query. The subqueries are executed, and the values returned by the subqueries are used to access one or more bitmap indexes built on columns of the fact table. The bitmaps retrieved for the values returned by each subquery are merged to create one subquery bitmap per subquery. An AND operation is performed on the subquery bitmaps, and the resulting bitmap is used to determine which data to retrieve from the fact table.
    Type: Grant
    Filed: February 28, 1997
    Date of Patent: December 8, 1998
    Assignee: Oracle Corporation
    Inventors: Hakan Jakobsson, Cetin Ozbutun, William H. Waddington
  • Patent number: 5799210
    Abstract: A method and apparatus are provided for allocating buffer memory for database sort operations. A database parameter is set to determine whether and how direct write buffers are to be allocated for sort operations. If the parameter is set to a first value, then no direct write buffers will be used, and sort operations will write to disk through a buffer cache. If the parameter is set to a second value, then direct write buffers will be used to perform writes to disk. Then size and number of direct write buffers to be used will be determined by the values set in other database parameters. If the parameter is set to a third value, direct write buffers will be allocated a portion of the memory available to perform the sort operation. The size and number of direct write buffers will be determined in accordance with database formulae that are designed to optimize sort and data write performance.
    Type: Grant
    Filed: April 18, 1996
    Date of Patent: August 25, 1998
    Assignee: Oracle Corporation
    Inventors: Jeffrey I. Cohen, William H. Waddington