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: 11645241Abstract: 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: GrantFiled: March 9, 2020Date of Patent: May 9, 2023Assignee: Oracle International CorporationInventors: 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: 11392616Abstract: 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: GrantFiled: December 16, 2020Date of Patent: July 19, 2022Assignee: Oracle International CorporationInventors: 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: 11327887Abstract: 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: GrantFiled: September 14, 2017Date of Patent: May 10, 2022Assignee: Oracle International CorporationInventors: Jia Shi, Wei Zhang, Kothanda Umamageswaran, Neil J. S. MacNaughton, Vijayakrishnan Nagarajan
-
Publication number: 20220114192Abstract: 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: ApplicationFiled: December 16, 2020Publication date: April 14, 2022Inventors: 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: 11256627Abstract: 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: GrantFiled: June 22, 2020Date of Patent: February 22, 2022Assignee: Oracle International CorporationInventors: Juan R. Loaiza, J. William Lee, Wei-Ming Hu, Kothanda Umamageswaran, Neil J. S. MacNaughton, Adam Y. Lee
-
Patent number: 11080204Abstract: 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: GrantFiled: June 7, 2019Date of Patent: August 3, 2021Assignee: Oracle International CorporationInventors: 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: 20210081372Abstract: 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: ApplicationFiled: March 9, 2020Publication date: March 18, 2021Inventors: 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: 10803039Abstract: 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: GrantFiled: May 26, 2017Date of Patent: October 13, 2020Assignee: Oracle International CorporationInventors: 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: 20200320010Abstract: 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: ApplicationFiled: June 22, 2020Publication date: October 8, 2020Inventors: Juan R. Loaiza, J. William Lee, Wei-Ming Hu, Kothanda Umamageswaran, Neil J.S. MacNaughton, Adam Y. Lee
-
Patent number: 10719446Abstract: 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: GrantFiled: August 31, 2017Date of Patent: July 21, 2020Assignee: Oracle International CorporationInventors: Juan R. Loaiza, J. William Lee, Wei-Ming Hu, Kothanda Umamageswaran, Neil J. S. MacNaughton, Adam Y. Lee
-
Publication number: 20190294558Abstract: 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: ApplicationFiled: June 7, 2019Publication date: September 26, 2019Inventors: 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: 10346315Abstract: 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: GrantFiled: May 26, 2017Date of Patent: July 9, 2019Assignee: Oracle International CorporationInventors: 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: 20190079864Abstract: 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: ApplicationFiled: September 14, 2017Publication date: March 14, 2019Inventors: Jia Shi, Wei Zhang, Kothanda Umamageswaran, Neil J.S. MacNaughton, Vijayakrishnan Nagarajan
-
Publication number: 20190065383Abstract: 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: ApplicationFiled: August 31, 2017Publication date: February 28, 2019Inventors: Juan R. Loaiza, J. William Lee, Wei-Ming Hu, Kothanda Umamageswaran, Neil J.S. MacNaughton, Adam Y. Lee
-
Publication number: 20180341653Abstract: 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: ApplicationFiled: May 26, 2017Publication date: November 29, 2018Inventors: 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: 20180341596Abstract: 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: ApplicationFiled: May 26, 2017Publication date: November 29, 2018Inventors: 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: 9563521Abstract: 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: GrantFiled: July 21, 2014Date of Patent: February 7, 2017Assignee: Oracle International CorporationInventors: Vsevolod Panteleenko, Yunrui Li, Neil J. S. MacNaughton, Vinay H. Srihari
-
Patent number: 9405694Abstract: 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: GrantFiled: September 16, 2014Date of Patent: August 2, 2016Assignee: Oracle Internation CorporationInventors: 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: 20160019121Abstract: 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: ApplicationFiled: July 21, 2014Publication date: January 21, 2016Inventors: Vsevolod Panteleenko, Yunrui Li, Neil J.S. MacNaughton, Vinay H. Srihari
-
Publication number: 20150006813Abstract: 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: ApplicationFiled: September 16, 2014Publication date: January 1, 2015Inventors: 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