Patents by Inventor William H. Bridge, Jr.

William H. Bridge, Jr. 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: 11645241
    Abstract: Techniques herein store database blocks (DBBs) in byte-addressable persistent memory (PMEM) and prevent tearing without deadlocking or waiting. In an embodiment, a computer hosts a DBMS. A reader process of the DBMS obtains, without locking and from metadata in PMEM, a first memory address for directly accessing a current version, which is a particular version, of a DBB in PMEM. Concurrently and without locking: a) the reader process reads the particular version of the DBB in PMEM, and b) a writer process of the DBMS replaces, in the metadata in PMEM, the first memory address with a second memory address for directly accessing a new version of the DBB in PMEM. In an embodiment, a computer performs without locking: a) storing, in PMEM, a DBB, b) copying into volatile memory, or reading, an image of the DBB, and c) detecting whether the image of the DBB is torn.
    Type: Grant
    Filed: March 9, 2020
    Date of Patent: May 9, 2023
    Assignee: Oracle International Corporation
    Inventors: J. William Lee, William H. Bridge, Jr., Ankur Kemkar, Vipin Gokhale, Sivaram Prasad Soma, Vishvesh Mohanarangam Selvakumaar, Juan R. Loaiza, Wei-Ming Hu, Neil J. S. MacNaughton, Adam Y. Lee
  • Patent number: 11392616
    Abstract: A shared-nothing database system is provided in which parallelism and workload balancing are increased by assigning the rows of each table to “slices”, and storing multiple copies (“duplicas”) of each slice across the persistent storage of multiple nodes of the shared-nothing database system. When the data for a table is distributed among the nodes of a shared-nothing system in this manner, requests to read data from a particular row of the table may be handled by any node that stores a duplica of the slice to which the row is assigned. For each slice, a single duplica of the slice is designated as the “primary duplica”. All DML operations (e.g. inserts, deletes, updates, etc.) that target a particular row of the table are performed by the node that has the primary duplica of the slice to which the particular row is assigned. The changes made by the DML operations are then propagated from the primary duplica to the other duplicas (“secondary duplicas”) of the same slice.
    Type: Grant
    Filed: December 16, 2020
    Date of Patent: July 19, 2022
    Assignee: Oracle International Corporation
    Inventors: William H. Bridge, Jr., David Brower, Meichun Hsu, Boris Klots, Neil J S Macnaughton, Ajit Mylavarapu, Umesh Panchaksharaiah, Garret F. Swart, Tirthankar Lahiri, Juan R. Loaiza
  • Publication number: 20220114192
    Abstract: A shared-nothing database system is provided in which parallelism and workload balancing are increased by assigning the rows of each table to “slices”, and storing multiple copies (“duplicas”) of each slice across the persistent storage of multiple nodes of the shared-nothing database system. When the data for a table is distributed among the nodes of a shared-nothing system in this manner, requests to read data from a particular row of the table may be handled by any node that stores a duplica of the slice to which the row is assigned. For each slice, a single duplica of the slice is designated as the “primary duplica”. All DML operations (e.g. inserts, deletes, updates, etc.) that target a particular row of the table are performed by the node that has the primary duplica of the slice to which the particular row is assigned. The changes made by the DML operations are then propagated from the primary duplica to the other duplicas (“secondary duplicas”) of the same slice.
    Type: Application
    Filed: December 16, 2020
    Publication date: April 14, 2022
    Inventors: William H. Bridge, JR., David Brower, Meichun Hsu, Boris Klots, Neil J S Macnaughton, JR., Ajit Mylavarapu, Umesh Panchaksharaiah, Garret F. Swart, Tirthankar Lahiri, Juan R. Loaiza
  • Publication number: 20210081372
    Abstract: Techniques herein store database blocks (DBBs) in byte-addressable persistent memory (PMEM) and prevent tearing without deadlocking or waiting. In an embodiment, a computer hosts a DBMS. A reader process of the DBMS obtains, without locking and from metadata in PMEM, a first memory address for directly accessing a current version, which is a particular version, of a DBB in PMEM. Concurrently and without locking: a) the reader process reads the particular version of the DBB in PMEM, and b) a writer process of the DBMS replaces, in the metadata in PMEM, the first memory address with a second memory address for directly accessing a new version of the DBB in PMEM. In an embodiment, a computer performs without locking: a) storing, in PMEM, a DBB, b) copying into volatile memory, or reading, an image of the DBB, and c) detecting whether the image of the DBB is torn.
    Type: Application
    Filed: March 9, 2020
    Publication date: March 18, 2021
    Inventors: J. William Lee, William H. Bridge, JR., Ankur Kemkar, Vipin Gokhale, Sivaram Prasad Soma, Vishvesh Mohanarangam Selvakumaar, Juan R. Loaiza, Wei-Ming Hu, Neil J.S. MacNaughton, Adam Y. Lee
  • Patent number: 9875040
    Abstract: Techniques are provided for assigning read requests to storage devices in a manner that reduces the likelihood that any storage device will become overloaded or underutilized. Specifically, a read-request handler assigns read requests that are directed to each particular item among the storage devices that have copies of the item based on how busy each of those storage devices is. Consequently, even though certain storage devices may have copies of the same item, there may be times during which one storage device is assigned a disproportionate number of the reads of the item because the other storage device is busy with read requests for other items, and there may be other times during which other storage device is assigned a disproportionate number of the reads of the item because the one storage device is busy with read request for other items.
    Type: Grant
    Filed: August 24, 2015
    Date of Patent: January 23, 2018
    Assignee: Oracle International Corporation
    Inventors: William H. Bridge, Jr., Prasad Bagal, Lavina Jain, Rajiv Wickremesinghe, Darshan Nagarajappa, Richard L. Long
  • Patent number: 9424261
    Abstract: Techniques are described herein for making a clean file snapshot of a target file. The techniques may be applied to a single target file, to a set of target files, or to an entire database The techniques involve transitioning the target file through a series of states. During each state, particular actions are performed and/or prevented. In the final state of each approach, a clean file snapshot of the target file exists. Transitioning through the states, only one of which does not allow new changes to be made to the target file, allows the database to remain online and available to a greater extent than is possible with an approach that prevents database changes for the duration of the clean file snapshot creation operation.
    Type: Grant
    Filed: April 2, 2014
    Date of Patent: August 23, 2016
    Assignee: Oracle International Corporation
    Inventors: Yunrui Li, William H. Bridge, Jr.
  • Patent number: 9372813
    Abstract: A system and method implementing revocable secure remote keys is disclosed. A plurality of indexed base secrets is stored in a register of a coprocessor of a local node coupled with a local memory. When it is determined that a selected base secret expired, the base secret stored in the register based on the base secret index is changed, thereby invalidating remote keys generated based on the expired base secret. A remote key with validation data and a base secret index is received from a node requesting access to the local memory. A validation base secret is obtained from the register based on the base secret index. The coprocessor performs hardware validation on the validation data based on the validation base secret. Hardware validation fails if the base secret associated with the base secret index has been changed in the register of the selected coprocessor.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: June 21, 2016
    Assignee: Oracle International Corporation
    Inventors: Sanjiv Kapil, Garret F. Swart, Aings Aingaran, William H. Bridge, Jr., Sumti Jairath, John G. Johnson
  • Patent number: 9367472
    Abstract: Systems and methods for reliably using data storage media. Multiple processors are configured to access a persistent memory. For a given data block corresponding to a write access request from a first processor to the persistent memory, a cache controller prevents any read access of a copy of the given data block in an associated cache. The cache controller prevents any read access while detecting an acknowledgment that the given data block is stored in the persistent memory is not yet received. Until the acknowledgment is received, the cache controller allows write access of the copy of the given data block in the associated cache only for a thread in the first processor that originally sent the write access request. The cache controller invalidates any copy of the given data block in any cache levels below the associated cache.
    Type: Grant
    Filed: June 10, 2013
    Date of Patent: June 14, 2016
    Assignee: Oracle International Corporation
    Inventors: William H. Bridge, Jr., Paul Loewenstein, Mark A. Luttrell
  • Publication number: 20150363123
    Abstract: Techniques are provided for assigning read requests to storage devices in a manner that reduces the likelihood that any storage device will become overloaded or underutilized. Specifically, a read-request handler assigns read requests that are directed to each particular item among the storage devices that have copies of the item based on how busy each of those storage devices is. Consequently, even though certain storage devices may have copies of the same item, there may be times during which one storage device is assigned a disproportionate number of the reads of the item because the other storage device is busy with read requests for other items, and there may be other times during which other storage device is assigned a disproportionate number of the reads of the item because the one storage device is busy with read request for other items.
    Type: Application
    Filed: August 24, 2015
    Publication date: December 17, 2015
    Inventors: William H. Bridge, JR., Prasad Bagal, Lavina Jain, Rajiv Wickremesinghe, Darshan Nagarajappa, Richard L. Long
  • Patent number: 9189502
    Abstract: Techniques for moving data files without interrupting access are described. A first process moves a database file from a first location to a second location while the database file is accessible to one or more other processes for read or write operations. According to one technique, the first process communicates a move status and a copy range into the database file to one or more database server instances executing the one or more other processes. The one or more other processes then perform input/output (IO) operations on the database file based at least in part on the move status and the copy range communicated by the first process.
    Type: Grant
    Filed: September 28, 2012
    Date of Patent: November 17, 2015
    Assignee: Oracle International Corporation
    Inventors: Vsevolod Panteleenko, Yunrui Li, Jonghyun Lee, Margaret M. Susairaj, William H. Bridge, Jr., Vinay Srihari
  • Patent number: 9158810
    Abstract: A method and apparatus for sending and receiving messages between nodes on a compute cluster is provided. Communication between nodes on a compute cluster, which do not share physical memory, is performed by passing messages over an I/O subsystem. Typically, each node includes a synchronization mechanism, a thread ready to receive connections, and other threads to process and reassemble messages. Frequently, a separate queue is maintained in memory for each node on the I/O subsystem sending messages to the receiving node. Such overhead increases latency and limits message throughput. Due to a specialized coprocessor running on each node, messages on an I/O subsystem are sent, received, authenticated, synchronized, and reassembled at a faster rate and with lower latency. Additionally, the memory structure used may reduce memory consumption by storing messages from multiple sources in the same memory structure, eliminating the need for per-source queues.
    Type: Grant
    Filed: February 27, 2013
    Date of Patent: October 13, 2015
    Assignee: Oracle International Corporation
    Inventors: Kathirgamar Aingaran, William H. Bridge, Jr., Garret F. Swart, Sumti Jairath, John G. Johnson
  • Publication number: 20150286649
    Abstract: Techniques are described herein for making a clean file snapshot of a target file. The techniques may be applied to a single target file, to a set of target files, or to an entire database The techniques involve transitioning the target file through a series of states. During each state, particular actions are performed and/or prevented. In the final state of each approach, a clean file snapshot of the target file exists. Transitioning through the states, only one of which does not allow new changes to be made to the target file, allows the database to remain online and available to a greater extent than is possible with an approach that prevents database changes for the duration of the clean file snapshot creation operation.
    Type: Application
    Filed: April 2, 2014
    Publication date: October 8, 2015
    Applicant: Oracle International Corporation
    Inventors: Yunrui Li, William H. Bridge, JR.
  • Publication number: 20140365734
    Abstract: Systems and methods for reliably using data storage media. Multiple processors are configured to access a persistent memory. For a given data block corresponding to a write access request from a first processor to the persistent memory, a cache controller prevents any read access of a copy of the given data block in an associated cache. The cache controller prevents any read access while detecting an acknowledgment that the given data block is stored in the persistent memory is not yet received. Until the acknowledgment is received, the cache controller allows write access of the copy of the given data block in the associated cache only for a thread in the first processor that originally sent the write access request. The cache controller invalidates any copy of the given data block in any cache levels below the associated cache.
    Type: Application
    Filed: June 10, 2013
    Publication date: December 11, 2014
    Inventors: William H. Bridge, JR., Paul Loewenstein, Mark A. Luttrell
  • Publication number: 20140095553
    Abstract: Techniques for moving data files without interrupting access are described. A first process moves a database file from a first location to a second location while the database file is accessible to one or more other processes for read or write operations. According to one technique, the first process communicates a move status and a copy range into the database file to one or more database server instances executing the one or more other processes. The one or more other processes then perform input/output (IO) operations on the database file based at least in part on the move status and the copy range communicated by the first process.
    Type: Application
    Filed: September 28, 2012
    Publication date: April 3, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Vsevolod PANTELEENKO, Yunrui LI, Jonghyun LEE, Margaret M. SUSAIRAJ, William H. BRIDGE, Jr., Vinay SRIHARI
  • Publication number: 20140095805
    Abstract: A system and method implementing revocable secure remote keys is disclosed. A plurality of indexed base secrets is stored in a register of a coprocessor of a local node coupled with a local memory. When it is determined that a selected base secret expired, the base secret stored in the register based on the base secret index is changed, thereby invalidating remote keys generated based on the expired base secret. A remote key with validation data and a base secret index is received from a node requesting access to the local memory. A validation base secret is obtained from the register based on the base secret index. The coprocessor performs hardware validation on the validation data based on the validation base secret. Hardware validation fails if the base secret associated with the base secret index has been changed in the register of the selected coprocessor.
    Type: Application
    Filed: March 15, 2013
    Publication date: April 3, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: SANJIV KAPIL, GARRET F. SWART, AINGS AINGARAN, WILLIAM H. BRIDGE, JR., SUMTI JAIRATH, JOHN G. JOHNSON
  • Publication number: 20140096145
    Abstract: A method and apparatus for sending and receiving messages between nodes on a compute cluster is provided. Communication between nodes on a compute cluster, which do not share physical memory, is performed by passing messages over an I/O subsystem. Typically, each node includes a synchronization mechanism, a thread ready to receive connections, and other threads to process and reassemble messages. Frequently, a separate queue is maintained in memory for each node on the I/O subsystem sending messages to the receiving node. Such overhead increases latency and limits message throughput. Due to a specialized coprocessor running on each node, messages on an I/O subsystem are sent, received, authenticated, synchronized, and reassembled at a faster rate and with lower latency. Additionally, the memory structure used may reduce memory consumption by storing messages from multiple sources in the same memory structure, eliminating the need for per-source queues.
    Type: Application
    Filed: February 27, 2013
    Publication date: April 3, 2014
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Kathirgamar Aingaran, William H. Bridge, JR., Garret F. Swart, Sumti Jairath, John G. Johnson
  • Patent number: 8140806
    Abstract: This disclosure describes solutions for reducing the amount of fragmentation on a computer memory device, such as a hard disk, random access memory device, and/or the like. In an aspect, this disclosure describes systems, methods and software for allocating storage space for variable-sized data chunks in a fashion that reduces or eliminates the need for periodic de-fragmentation of the memory device. In another aspect, this disclosure describes solutions that provide for the dynamic re-allocation of existing data blocks on the memory device to provide contiguous available space that can be allocated for new data blocks.
    Type: Grant
    Filed: March 30, 2007
    Date of Patent: March 20, 2012
    Assignee: Oracle International Corporation
    Inventors: Radek Vingralek, William H. Bridge, Jr., Prasad Bagal
  • Patent number: 7640275
    Abstract: A method and system for reducing overhead associated with recovering after a failure. According to the method, a checkpoint value is maintained that indicates which records of a plurality of records have to be processed after the failure. The plurality of records contain change information that corresponds to a plurality of data blocks. A target checkpoint value is determined based on a desired number of data block reads that will be required during a redo phase of recovery. Changes contained in volatile memory are then written to nonvolatile memory to advance the checkpoint value to at least the target checkpoint value.
    Type: Grant
    Filed: January 2, 2004
    Date of Patent: December 29, 2009
    Assignee: Oracle International Corporation
    Inventors: William H. Bridge, Jr., Boris Klots, Juan R. Loaiza, Ashok Joshi
  • Patent number: 7631018
    Abstract: Techniques are described herein for returning a repository to a prior state. The repository may be, for example a database, and the prior state may be, for example the consistent state that the database had at a particular point in time in the past. When a operator-caused error has been introduced to the database by changes made by an already-committed transaction, the techniques described herein may be used to recover from the error by returning the database to a point in time prior to the commit time of the transaction that introduced the error. The techniques involve the generation of “physical undo” information, and the use of the physical undo information in conjunction with physiological undo and physiological redo to efficiently return a repository to the prior state.
    Type: Grant
    Filed: January 11, 2007
    Date of Patent: December 8, 2009
    Assignee: Oracle International Corporation
    Inventors: J. William Lee, Juan Loaiza, Michael J. Stewart, Wei-Ming Hu, William H. Bridge, Jr.
  • Patent number: 7395369
    Abstract: Pieces of data are stored among storage devices based on a cycle value, which is computed for each storage device as the total capacity of all storage devices divided by the individual capacity of the storage device. Next, a storage device for a current piece of data is selected to be the storage device with the smallest key value; followed by determination of a new key value based on at least (a) the cycle value and (b) a sequence number of the current piece. After allocation, if the number of storage devices changes, reallocation is done similarly except that selection is first from a preferred set and only if the preferred set is empty then from a remainder set. Storage devices are placed in the preferred set if a piece of data would be outside a shadow (based on cycle value) of another piece pre-existing in the storage device.
    Type: Grant
    Filed: May 18, 2004
    Date of Patent: July 1, 2008
    Assignee: Oracle International Corporation
    Inventors: Thomas V. Sepez, William H. Bridge, Jr.