Patents by Inventor Neil J.S. Macnaughton

Neil J.S. Macnaughton 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
  • Patent number: 11327887
    Abstract: Techniques related to a server-side extension of client-side caches are provided. A storage server computer receives, from a database server computer, an eviction notification indicating that a data block has been evicted from the database server computer's cache. The storage server computer comprises a memory hierarchy including a volatile cache and a persistent cache. Upon receiving the eviction notification, the storage server computer retrieves the data block from the persistent cache and stores it in the volatile cache. When the storage server computer receives, from the database server computer, a request for the data block, the storage server computer retrieves the data block from the volatile cache. Furthermore, the storage server computer sends the data block to the database server computer, thereby causing the data block to be stored in the database server computer's cache. Still further, the storage server computer evicts the data block from the volatile cache.
    Type: Grant
    Filed: September 14, 2017
    Date of Patent: May 10, 2022
    Assignee: Oracle International Corporation
    Inventors: Jia Shi, Wei Zhang, Kothanda Umamageswaran, Neil J. S. MacNaughton, Vijayakrishnan Nagarajan
  • 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
  • Patent number: 11256627
    Abstract: A method and an apparatus for implementing a buffer cache for a persistent file system in a non-volatile memory is provided. A set of data is maintained in one or more extents in a non-volatile random-access memory (NVRAM) of a computing device. At least one buffer header is allocated in a dynamic random-access memory (DRAM) of the computing device. In response to a read request by a first process executing on the computing device to access one or more first data blocks in a first extent of the one or more extents, the first process is granted direct read access of the first extent in the NVRAM. A reference to the first extent in the NVRAM is stored in a first buffer header. The first buffer header is associated with the first process. The first process uses the first buffer header to directly access the one or more first data blocks in the NVRAM.
    Type: Grant
    Filed: June 22, 2020
    Date of Patent: February 22, 2022
    Assignee: Oracle International Corporation
    Inventors: Juan R. Loaiza, J. William Lee, Wei-Ming Hu, Kothanda Umamageswaran, Neil J. S. MacNaughton, Adam Y. Lee
  • Patent number: 11080204
    Abstract: A hashing scheme includes a cache-friendly, latchless, non-blocking dynamically resizable hash index with constant-time lookup operations that is also amenable to fast lookups via remote memory access. Specifically, the hashing scheme provides each of the following features: latchless reads, fine grained lightweight locks for writers, non-blocking dynamic resizability, cache-friendly access, constant-time lookup operations, amenable to remote memory access via RDMA protocol through one sided read operations, as well as non-RDMA access.
    Type: Grant
    Filed: June 7, 2019
    Date of Patent: August 3, 2021
    Assignee: Oracle International Corporation
    Inventors: Siddharth Teotia, Krishna Kunchithapadam, Tirthankar Lahiri, Jesse Kamp, Michael J. Gleeson, Juan R. Loaiza, Garret F. Swart, Neil J. S. MacNaughton, Kam Shergill
  • 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: 10803039
    Abstract: Techniques are provided for enabling a requesting entity to retrieve data that is managed by a database server instance from the volatile memory of a server machine that is executing the database server instance. The techniques allow the requesting entity to retrieve the data from the volatile memory of the host server machine without involving the database server instance in the retrieval operation. Because the retrieval does not involve the database server instance, the retrieval may succeed even when the database server instance has stalled or become unresponsive. In addition, direct retrieval of data using the techniques described herein will often be faster and more efficient than retrieval of the same information through conventional interaction with the database server instance.
    Type: Grant
    Filed: May 26, 2017
    Date of Patent: October 13, 2020
    Assignee: Oracle International Corporation
    Inventors: Siddharth Teotia, Krishna Kunchithapadam, Jesse Kamp, Tirthankar Lahiri, Michael J. Gleeson, Juan R. Loaiza, Garret F. Swart, Neil J. S. MacNaughton, Kam Shergill
  • Publication number: 20200320010
    Abstract: A method and apparatus for implementing a buffer cache for a persistent file system in non-volatile memory is provided. A set of data is maintained in one or more extents in non-volatile random-access memory (NVRAM) of a computing device. At least one buffer header is allocated in dynamic random-access memory (DRAM) of the computing device. In response to a read request by a first process executing on the computing device to access one or more first data blocks in a first extent of the one or more extents, the first process is granted direct read access of the first extent in NVRAM. A reference to the first extent in NVRAM is stored in a first buffer header. The first buffer header is associated with the first process. The first process uses the first buffer header to directly access the one or more first data blocks in NVRAM.
    Type: Application
    Filed: June 22, 2020
    Publication date: October 8, 2020
    Inventors: Juan R. Loaiza, J. William Lee, Wei-Ming Hu, Kothanda Umamageswaran, Neil J.S. MacNaughton, Adam Y. Lee
  • Patent number: 10719446
    Abstract: A method and apparatus for implementing a buffer cache for a persistent file system in non-volatile memory is provided. A set of data is maintained in one or more extents in non-volatile random-access memory (NVRAM) of a computing device. At least one buffer header is allocated in dynamic random-access memory (DRAM) of the computing device. In response to a read request by a first process executing on the computing device to access one or more first data blocks in a first extent of the one or more extents, the first process is granted direct read access of the first extent in NVRAM. A reference to the first extent in NVRAM is stored in a first buffer header. The first buffer header is associated with the first process. The first process uses the first buffer header to directly access the one or more first data blocks in NVRAM.
    Type: Grant
    Filed: August 31, 2017
    Date of Patent: July 21, 2020
    Assignee: Oracle International Corporation
    Inventors: Juan R. Loaiza, J. William Lee, Wei-Ming Hu, Kothanda Umamageswaran, Neil J. S. MacNaughton, Adam Y. Lee
  • Publication number: 20190294558
    Abstract: A hashing scheme includes a cache-friendly, latchless, non-blocking dynamically resizable hash index with constant-time lookup operations that is also amenable to fast lookups via remote memory access. Specifically, the hashing scheme provides each of the following features: latchless reads, fine grained lightweight locks for writers, non-blocking dynamic resizability, cache-friendly access, constant-time lookup operations, amenable to remote memory access via RDMA protocol through one sided read operations, as well as non-RDMA access.
    Type: Application
    Filed: June 7, 2019
    Publication date: September 26, 2019
    Inventors: Siddharth Teotia, Krishna Kunchithapadam, Tirthankar Lahiri, Jesse Kamp, Michael J. Gleeson, Juan R. Loaiza, Garret F. Swart, Neil J.S. MacNaughton, Kam Shergill
  • Patent number: 10346315
    Abstract: A hashing scheme includes a cache-friendly, latchless, non-blocking dynamically resizable hash index with constant-time lookup operations that is also amenable to fast lookups via remote memory access. Specifically, the hashing scheme provides each of the following features: latchless reads, fine grained lightweight locks for writers, non-blocking dynamic resizability, cache-friendly access, constant-time lookup operations, amenable to remote memory access via RDMA protocol through one sided read operations, as well as non-RDMA access.
    Type: Grant
    Filed: May 26, 2017
    Date of Patent: July 9, 2019
    Assignee: Oracle International Corporation
    Inventors: Siddharth Teotia, Krishna Kunchithapadam, Tirthankar Lahiri, Jesse Kamp, Michael J. Gleeson, Juan R. Loaiza, Garret F. Swart, Neil J. S. MacNaughton, Kam Shergill
  • Publication number: 20190079864
    Abstract: Techniques related to a server-side extension of client-side caches are provided. A storage server computer receives, from a database server computer, an eviction notification indicating that a data block has been evicted from the database server computer's cache. The storage server computer comprises a memory hierarchy including a volatile cache and a persistent cache. Upon receiving the eviction notification, the storage server computer retrieves the data block from the persistent cache and stores it in the volatile cache. When the storage server computer receives, from the database server computer, a request for the data block, the storage server computer retrieves the data block from the volatile cache. Furthermore, the storage server computer sends the data block to the database server computer, thereby causing the data block to be stored in the database server computer's cache. Still further, the storage server computer evicts the data block from the volatile cache.
    Type: Application
    Filed: September 14, 2017
    Publication date: March 14, 2019
    Inventors: Jia Shi, Wei Zhang, Kothanda Umamageswaran, Neil J.S. MacNaughton, Vijayakrishnan Nagarajan
  • Publication number: 20190065383
    Abstract: A method and apparatus for implementing a buffer cache for a persistent file system in non-volatile memory is provided. A set of data is maintained in one or more extents in non-volatile random-access memory (NVRAM) of a computing device. At least one buffer header is allocated in dynamic random-access memory (DRAM) of the computing device. In response to a read request by a first process executing on the computing device to access one or more first data blocks in a first extent of the one or more extents, the first process is granted direct read access of the first extent in NVRAM. A reference to the first extent in NVRAM is stored in a first buffer header. The first buffer header is associated with the first process. The first process uses the first buffer header to directly access the one or more first data blocks in NVRAM.
    Type: Application
    Filed: August 31, 2017
    Publication date: February 28, 2019
    Inventors: Juan R. Loaiza, J. William Lee, Wei-Ming Hu, Kothanda Umamageswaran, Neil J.S. MacNaughton, Adam Y. Lee
  • Publication number: 20180341653
    Abstract: Techniques are provided for enabling a requesting entity to retrieve data that is managed by a database server instance from the volatile memory of a server machine that is executing the database server instance. The techniques allow the requesting entity to retrieve the data from the volatile memory of the host server machine without involving the database server instance in the retrieval operation. Because the retrieval does not involve the database server instance, the retrieval may succeed even when the database server instance has stalled or become unresponsive. In addition, direct retrieval of data using the techniques described herein will often be faster and more efficient than retrieval of the same information through conventional interaction with the database server instance.
    Type: Application
    Filed: May 26, 2017
    Publication date: November 29, 2018
    Inventors: Siddharth Teotia, Krishna Kunchithapadam, Jesse Kamp, Tirthankar Lahiri, Michael J. Gleeson, Juan R. Loaiza, Garret F. Swart, Neil J.S. MacNaughton, Kam Shergill
  • Publication number: 20180341596
    Abstract: A hashing scheme includes a cache-friendly, latchless, non-blocking dynamically resizable hash index with constant-time lookup operations that is also amenable to fast lookups via remote memory access. Specifically, the hashing scheme provides each of the following features: latchless reads, fine grained lightweight locks for writers, non-blocking dynamic resizability, cache-friendly access, constant-time lookup operations, amenable to remote memory access via RDMA protocol through one sided read operations, as well as non-RDMA access.
    Type: Application
    Filed: May 26, 2017
    Publication date: November 29, 2018
    Inventors: Siddharth Teotia, Krishna Kunchithapadam, Tirthankar Lahiri, Jesse Kamp, Michael J. Gleeson, Juan R. Loaiza, Garret F. Swart, Neil J.S. MacNaughton, Kam Shergill
  • Patent number: 9563521
    Abstract: Techniques for processing changes in a cluster database system are provided. A first instance in the cluster transfers a data block to a second instance in the cluster before a redo record that stores one or more changes that the first instance made to the data block is durably stored. The first instance also transfers, to the second instance, a block change timestamp that indicates when a redo record for the one or more changes was generated by the first instance. The first instance also separately sends, to the second instance, a last store timestamp that indicates when the last redo record that was durably stored was generated by the first instance. The block change timestamp and the last store timestamp are used by the second instance when creating redo records for changes (made by the second instance) that depend on the redo record generated by the first instance.
    Type: Grant
    Filed: July 21, 2014
    Date of Patent: February 7, 2017
    Assignee: Oracle International Corporation
    Inventors: Vsevolod Panteleenko, Yunrui Li, Neil J. S. MacNaughton, Vinay H. Srihari
  • Patent number: 9405694
    Abstract: Techniques are provided for using an intermediate cache between the shared cache of an application and the non-volatile storage of a storage system. The application may be any type of application that uses a storage system to persistently store data. The intermediate cache may be local to the machine upon which the application is executing, or may be implemented within the storage system. In one embodiment where the application is a database server, the database system includes both a DB server-side intermediate cache, and a storage-side intermediate cache. The caching policies used to populate the intermediate cache are intelligent, taking into account factors that may include which object an item belongs to, the item type of the item, a characteristic of the item, or the type of operation in which the item is involved.
    Type: Grant
    Filed: September 16, 2014
    Date of Patent: August 2, 2016
    Assignee: Oracle Internation Corporation
    Inventors: Kiran Badrinarain Goyal, Neil J. S. Macnaughton, Eugene Ho, Adam Y. Lee, Vipin Gokhale, Wei-Ming Hu, Juan R. Loaiza, Kothanda Umamageswaran, Bharat C. V. Baddepudi, Boris Erlikhman, Alexander Tsukerman, Selcuk Aya, Roger Hansen, Adrian Ng
  • Publication number: 20160019121
    Abstract: Techniques for processing changes in a cluster database system are provided. A first instance in the cluster transfers a data block to a second instance in the cluster before a redo record that stores one or more changes that the first instance made to the data block is durably stored. The first instance also transfers, to the second instance, a block change timestamp that indicates when a redo record for the one or more changes was generated by the first instance. The first instance also separately sends, to the second instance, a last store timestamp that indicates when the last redo record that was durably stored was generated by the first instance. The block change timestamp and the last store timestamp are used by the second instance when creating redo records for changes (made by the second instance) that depend on the redo record generated by the first instance.
    Type: Application
    Filed: July 21, 2014
    Publication date: January 21, 2016
    Inventors: Vsevolod Panteleenko, Yunrui Li, Neil J.S. MacNaughton, Vinay H. Srihari
  • Publication number: 20150006813
    Abstract: Techniques are provided for using an intermediate cache between the shared cache of an application and the non-volatile storage of a storage system. The application may be any type of application that uses a storage system to persistently store data. The intermediate cache may be local to the machine upon which the application is executing, or may be implemented within the storage system. In one embodiment where the application is a database server, the database system includes both a DB server-side intermediate cache, and a storage-side intermediate cache. The caching policies used to populate the intermediate cache are intelligent, taking into account factors that may include which object an item belongs to, the item type of the item, a characteristic of the item, or the type of operation in which the item is involved.
    Type: Application
    Filed: September 16, 2014
    Publication date: January 1, 2015
    Inventors: Kiran Badrinarain Goyal, Neil J.S. Macnaughton, Eugene Ho, Adam Y. Lee, Vipin Gokhale, Wei-Ming Hu, Juan R. Loaiza, Kothanda Umamageswaran, Bharat C.V. Baddepudi, Boris Erlikhman, Alexander Tsukerman, Selcuk Aya, Roger Hansen, Adrian Ng