Patents by Inventor Ronald S. Niles

Ronald S. Niles 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: 11907081
    Abstract: A memory image can be captured by generating metadata indicative of a state of volatile memory and/or byte-addressable PMEM at a particular time during execution of a process by an application. This memory image can be persisted without copying the in-memory data into a separate persistent storage by storing the metadata and safekeeping the in-memory data in the volatile memory and/or PMEM. Metadata associated with multiple time-evolved memory images captured can be stored and managed using a linked index scheme. A linked index scheme can be configured in various ways including a full index and a difference-only index. The memory images can be used for various purposes including suspending and later resuming execution of the application process, restoring a failed application to a previous point in time, cloning an application, and recovering an application process to a most recent state in an application log.
    Type: Grant
    Filed: October 9, 2020
    Date of Patent: February 20, 2024
    Assignee: MEMVERGE, INC.
    Inventors: Ronald S. Niles, Yue Li, Jun Gan, Chenggong Fan, Robert W. Beauchamp, Dahong Li
  • Publication number: 20230109310
    Abstract: A memory image can be captured by generating metadata indicative of a state of volatile memory and/or byte-addressable PMEM at a particular time during execution of a process by an application. This memory image can be persisted without copying the in-memory data into a separate persistent storage by storing the metadata and safekeeping the in-memory data in the volatile memory and/or PMEM. Metadata associated with multiple time-evolved memory images captured can be stored and managed using a linked index scheme. A linked index scheme can be configured in various ways including a full index and a difference-only index. The memory images can be used for various purposes including suspending and later resuming execution of the application process, restoring a failed application to a previous point in time, cloning an application, and recovering an application process to a most recent state in an application log.
    Type: Application
    Filed: November 29, 2022
    Publication date: April 6, 2023
    Inventors: Ronald S. Niles, Yue Li, Jun Gan, Chenggong Fan, Robert W. Beauchamp
  • Patent number: 11593186
    Abstract: A technique is introduced for applying multi-level caching to deploy various types of physical memory to service captured memory calls from an application. The various types of physical memory can include local volatile memory (e.g., dynamic random-access memory), local persistent memory, and/or remote persistent memory. In an example embodiment, a user-space page fault notification mechanism is used to defer assignment of actual physical memory resources until a memory buffer is accessed by the application. After populating a selected physical memory in response to an initial user-space page fault notification, page access information can be monitored to determine which pages continues to be accessed and which pages are inactive to identify candidates for eviction.
    Type: Grant
    Filed: November 27, 2019
    Date of Patent: February 28, 2023
    Assignee: MEMVERGE, INC.
    Inventors: Ronald S. Niles, Yue Li
  • Patent number: 11573865
    Abstract: A memory image can be captured by generating metadata indicative of a state of volatile memory and/or byte-addressable PMEM at a particular time during execution of a process by an application. This memory image can be persisted without copying the in-memory data into a separate persistent storage by storing the metadata and safekeeping the in-memory data in the volatile memory and/or PMEM. Metadata associated with multiple time-evolved memory images captured can be stored and managed using a linked index scheme. A linked index scheme can be configured in various ways including a full index and a difference-only index. The memory images can be used for various purposes including suspending and later resuming execution of the application process, restoring a failed application to a previous point in time, cloning an application, and recovering an application process to a most recent state in an application log.
    Type: Grant
    Filed: October 9, 2020
    Date of Patent: February 7, 2023
    Assignee: MEMVERGE, INC.
    Inventors: Ronald S. Niles, Yue Li, Jun Gan, Chenggong Fan, Robert W. Beauchamp, Dahong Li
  • Patent number: 11537479
    Abstract: A memory image can be captured by generating metadata indicative of a state of volatile memory and/or byte-addressable PMEM at a particular time during execution of a process by an application. This memory image can be persisted without copying the in-memory data into a separate persistent storage by storing the metadata and safekeeping the in-memory data in the volatile memory and/or PMEM. Metadata associated with multiple time-evolved memory images captured can be stored and managed using a linked index scheme. A linked index scheme can be configured in various ways including a full index and a difference-only index. The memory images can be used for various purposes including suspending and later resuming execution of the application process, restoring a failed application to a previous point in time, cloning an application, and recovering an application process to a most recent state in an application log.
    Type: Grant
    Filed: October 9, 2020
    Date of Patent: December 27, 2022
    Assignee: MEMVERGE, INC.
    Inventors: Ronald S. Niles, Yue Li, Jun Gan, Chenggong Fan, Robert W. Beauchamp
  • Patent number: 11531600
    Abstract: A memory image can be captured by generating metadata indicative of a state of volatile memory and/or byte-addressable PMEM at a particular time during execution of a process by an application. This memory image can be persisted without copying the in-memory data into a separate persistent storage by storing the metadata and safekeeping the in-memory data in the volatile memory and/or PMEM. Metadata associated with multiple time-evolved memory images captured can be stored and managed using a linked index scheme. A linked index scheme can be configured in various ways including a full index and a difference-only index. The memory images can be used for various purposes including suspending and later resuming execution of the application process, restoring a failed application to a previous point in time, cloning an application, and recovering an application process to a most recent state in an application log.
    Type: Grant
    Filed: October 9, 2020
    Date of Patent: December 20, 2022
    Assignee: MEMVERGE, INC.
    Inventors: Ronald S. Niles, Yue Li, Jun Gan, Chenggong Fan, Robert W. Beauchamp
  • Patent number: 11392428
    Abstract: A technique is described for handling forks in operations mapped to direct access persistent memory (PMEM). In an example embodiment, access by a parent operation of an allocated portion of PMEM is monitored to determine a portion of the allocated PMEM that is in use by the parent operation. In response to a fork call indicating that the parent operation will copy itself to create a child operation, a clone of the portion of allocated PMEM is created to facilitate processing of the child operation. The cloned portion of PMEM can be created just before the child operation is created (i.e., pre-fork) or after the child operation is created (i.e., post-fork). To create the clone post-fork, a user-space page fault notification mechanism can be implemented to detect a next buffer access by the child operation and create the clone in response to the detected access.
    Type: Grant
    Filed: November 27, 2019
    Date of Patent: July 19, 2022
    Assignee: MemVerge, Inc.
    Inventors: Ronald S. Niles, Yue Li
  • Publication number: 20210342229
    Abstract: A memory image can be captured by generating metadata indicative of a state of volatile memory and/or byte-addressable PMEM at a particular time during execution of a process by an application. This memory image can be persisted without copying the in-memory data into a separate persistent storage by storing the metadata and safekeeping the in-memory data in the volatile memory and/or PMEM. Metadata associated with multiple time-evolved memory images captured can be stored and managed using a linked index scheme. A linked index scheme can be configured in various ways including a full index and a difference-only index. The memory images can be used for various purposes including suspending and later resuming execution of the application process, restoring a failed application to a previous point in time, cloning an application, and recovering an application process to a most recent state in an application log.
    Type: Application
    Filed: October 9, 2020
    Publication date: November 4, 2021
    Inventors: Ronald S. Niles, Yue Li, Jun Gan, Chenggong Fan, Robert W. Beauchamp
  • Publication number: 20210342180
    Abstract: A memory image can be captured by generating metadata indicative of a state of volatile memory and/or byte-addressable PMEM at a particular time during execution of a process by an application. This memory image can be persisted without copying the in-memory data into a separate persistent storage by storing the metadata and safekeeping the in-memory data in the volatile memory and/or PMEM. Metadata associated with multiple time-evolved memory images captured can be stored and managed using a linked index scheme. A linked index scheme can be configured in various ways including a full index and a difference-only index. The memory images can be used for various purposes including suspending and later resuming execution of the application process, restoring a failed application to a previous point in time, cloning an application, and recovering an application process to a most recent state in an application log.
    Type: Application
    Filed: October 9, 2020
    Publication date: November 4, 2021
    Inventors: Ronald S. Niles, Yue Li, Jun Gan, Chenggong Fan, Robert W. Beauchamp, Dahong Li
  • Publication number: 20210342179
    Abstract: A memory image can be captured by generating metadata indicative of a state of volatile memory and/or byte-addressable PMEM at a particular time during execution of a process by an application. This memory image can be persisted without copying the in-memory data into a separate persistent storage by storing the metadata and safekeeping the in-memory data in the volatile memory and/or PMEM. Metadata associated with multiple time-evolved memory images captured can be stored and managed using a linked index scheme. A linked index scheme can be configured in various ways including a full index and a difference-only index. The memory images can be used for various purposes including suspending and later resuming execution of the application process, restoring a failed application to a previous point in time, cloning an application, and recovering an application process to a most recent state in an application log.
    Type: Application
    Filed: October 9, 2020
    Publication date: November 4, 2021
    Inventors: Ronald S. Niles, Yue Li, Jun Gan, Chenggong Fan, Robert W. Beauchamp, Dahong Li
  • Publication number: 20210342230
    Abstract: A memory image can be captured by generating metadata indicative of a state of volatile memory and/or byte-addressable PMEM at a particular time during execution of a process by an application. This memory image can be persisted without copying the in-memory data into a separate persistent storage by storing the metadata and safekeeping the in-memory data in the volatile memory and/or PMEM. Metadata associated with multiple time-evolved memory images captured can be stored and managed using a linked index scheme. A linked index scheme can be configured in various ways including a full index and a difference-only index. The memory images can be used for various purposes including suspending and later resuming execution of the application process, restoring a failed application to a previous point in time, cloning an application, and recovering an application process to a most recent state in an application log.
    Type: Application
    Filed: October 9, 2020
    Publication date: November 4, 2021
    Inventors: Ronald S. Niles, Yue Li, Jun Gan, Chenggong Fan, Robert W. Beauchamp
  • Patent number: 11150962
    Abstract: A technique is introduced for intercepting memory calls from a user-space application and applying an allocation policy to determine whether such calls are handled using volatile memory such as dynamic random-access memory (DRAM) or persistent memory (PMEM). In an example embodiment, memory calls from an application are intercepted by a memory allocation capture library. Such calls may be to a memory function such as malloc( ) and may be configured to cause a portion of DRAM to be allocated to the application to process a task. The memory allocation capture library then determines whether the intercepted call satisfies capture criteria associated with an allocation policy. If the intercepted call does satisfy the capture criteria, the call is processed to cause a portion of PMEM to be allocated to the application instead of DRAM.
    Type: Grant
    Filed: November 27, 2019
    Date of Patent: October 19, 2021
    Assignee: MemVerge, Inc.
    Inventors: Ronald S. Niles, Yue Li
  • Publication number: 20210019206
    Abstract: A technique is introduced for applying multi-level caching to deploy various types of physical memory to service captured memory calls from an application. The various types of physical memory can include local volatile memory (e.g., dynamic random-access memory), local persistent memory, and/or remote persistent memory. In an example embodiment, a user-space page fault notification mechanism is used to defer assignment of actual physical memory resources until a memory buffer is accessed by the application. After populating a selected physical memory in response to an initial user-space page fault notification, page access information can be monitored to determine which pages continues to be accessed and which pages are inactive to identify candidates for eviction.
    Type: Application
    Filed: November 27, 2019
    Publication date: January 21, 2021
    Inventors: Ronald S. Niles, Yue Li
  • Publication number: 20210019207
    Abstract: A technique is described for handling forks in operations mapped to direct access persistent memory (PMEM). In an example embodiment, access by a parent operation of an allocated portion of PMEM is monitored to determine a portion of the allocated PMEM that is in use by the parent operation. In response to a fork call indicating that the parent operation will copy itself to create a child operation, a clone of the portion of allocated PMEM is created to facilitate processing of the child operation. The cloned portion of PMEM can be created just before the child operation is created (i.e., pre-fork) or after the child operation is created (i.e., post-fork). To create the clone post-fork, a user-space page fault notification mechanism can be implemented to detect a next buffer access by the child operation and create the clone in response to the detected access.
    Type: Application
    Filed: November 27, 2019
    Publication date: January 21, 2021
    Inventors: Ronald S. Niles, Yue Li
  • Publication number: 20210019200
    Abstract: A technique is introduced for intercepting memory calls from a user-space application and applying an allocation policy to determine whether such calls are handled using volatile memory such as dynamic random-access memory (DRAM) or persistent memory (PMEM). In an example embodiment, memory calls from an application are intercepted by a memory allocation capture library. Such calls may be to a memory function such as malloc( ) and may be configured to cause a portion of DRAM to be allocated to the application to process a task. The memory allocation capture library then determines whether the intercepted call satisfies capture criteria associated with an allocation policy. If the intercepted call does satisfy the capture criteria, the call is processed to cause a portion of PMEM to be allocated to the application instead of DRAM.
    Type: Application
    Filed: November 27, 2019
    Publication date: January 21, 2021
    Inventors: Ronald S. Niles, Yue Li
  • Publication number: 20170293535
    Abstract: A hash-optimized backup system and method takes data blocks and generates a probabilistically unique digital fingerprint of the content of each data block using a substantially collision-free algorithm. The process compares the generated fingerprint to a database of stored fingerprints if the generated fingerprint matches a stored fingerprint, the data block is determined to already have been backed up, and therefore does not need to be hacked up again. Only if the generated fingerprint does not match a stored fingerprint is the data block backed up, at which point the generated fingerprint is added to the database of stored fingerprints. Because the algorithm is substantially collision-free, there is no need to compare actual data content if there is a hash-value match. The process can also be used to audit software license compliance, inventory software, and detect computer-file tampering such as viruses and malware.
    Type: Application
    Filed: June 26, 2017
    Publication date: October 12, 2017
    Inventors: Ronald S. NILES, Wai T. LAM
  • Patent number: 9690794
    Abstract: A hash-optimized backup system and method takes data blocks and generates a probabilistically unique digital fingerprint of the content of each data block using a substantially collision-free algorithm. The process compares the generated fingerprint to a database of stored fingerprints and, if the generated fingerprint matches a stored fingerprint, the data block is determined to already have been backed up, and therefore does not need to be backed up again. Only if the generated fingerprint does not match a stored fingerprint is the data block backed up, at which point the generated fingerprint is added to the database of stored fingerprints. Because the algorithm is substantially collision-free, there is no need to compare actual data content if there is a hash-value match. The process can also be used to audit software license compliance, inventory software, and detect computer-file tampering such as viruses and malware.
    Type: Grant
    Filed: May 11, 2015
    Date of Patent: June 27, 2017
    Assignee: FalconStor, Inc.
    Inventors: Ronald S. Niles, Wai T. Lam
  • Patent number: 9575676
    Abstract: In accordance with one example, a method for comparing data units is disclosed comprising generating a first digest representing a first data unit stored in a first memory. A first encoded value is generated based, at least in part, on the first digest and a predetermined value. A second digest representing a second data unit stored in a second memory different from the first memory, is generated. A second encoded value is derived based, at least in part, on the second digest and the predetermined value. It is determined whether the first data unit and the second data unit are the same based, at least in part, on the first digest, the first predetermined value, the first encoded value, and the second digest, by first processor. If the second data unit is not the same as the first data unit, the first data unit is stored in the second memory.
    Type: Grant
    Filed: March 7, 2016
    Date of Patent: February 21, 2017
    Assignee: FalconStor, Inc.
    Inventors: Wai Lam, Ronald S. Niles, Xiaowei Li
  • Publication number: 20160188238
    Abstract: In accordance with one example, a method for comparing data units is disclosed comprising generating a first digest representing a first data unit stored in a first memory. A first encoded value is generated based, at least in part, on the first digest and a predetermined value. A second digest representing a second data unit stored in a second memory different from the first memory, is generated. A second encoded value is derived based, at least in part, on the second digest and the predetermined value. It is determined whether the first data unit and the second data unit are the same based, at least in part, on the first digest, the first predetermined value, the first encoded value, and the second digest, by first processor. If the second data unit is not the same as the first data unit, the first data unit is stored in the second memory.
    Type: Application
    Filed: March 7, 2016
    Publication date: June 30, 2016
    Inventors: Wai LAM, Ronald S. NILES, Xiaowei LI
  • Patent number: 9280424
    Abstract: In accordance with one example, a method for comparing data units is disclosed comprising generating a first digest representing a first data unit stored in a first memory. A first encoded value is generated based, at least in part, on the first digest and a predetermined value. A second digest representing a second data unit stored in a second memory different from the first memory, is generated. A second encoded value is derived based, at least in part, on the second digest and the predetermined value. It is determined whether the first data unit and the second data unit are the same based, at least in part, on the first digest, the first predetermined value, the first encoded value, and the second digest, by first processor. If the second data unit is not the same as the first data unit, the first data unit is stored in the second memory.
    Type: Grant
    Filed: March 11, 2014
    Date of Patent: March 8, 2016
    Assignee: FalconStor, Inc.
    Inventors: Wai Lam, Ronald S. Niles, Xiaowei Li