Patents by Inventor Georgiy I. Reynya

Georgiy I. Reynya 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: 11573710
    Abstract: Methods, systems and computer program products are provided for managing protection domains (PDs) for files at a file-level or a page-level. PDs may be allocated for multiple purposes, e.g., to protect processes, files, buffers, etc. Files stored in nonvolatile memory (NVM) subject to direct access (DAX) may be protected by file-level or page-level PDs. PDs may comprise protection keys (PKEYs) with user-configurable read and write access control registers (PKRUs). NVM files may be protected from corruption (e.g. by stray writes) by leaving write access disabled except for temporary windows of time for valid writes. File PDs may be managed by a file manager while buffer PDs may be managed by a buffer pool manager. File associations between PDs, files and file address space may be maintained in a file object. Buffer associations between PDs, buffers and buffer address space may be maintained in a buffer descriptor.
    Type: Grant
    Filed: August 20, 2019
    Date of Patent: February 7, 2023
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Purvi Shah, Georgiy I. Reynya, Stanislav A. Oks
  • Patent number: 11144347
    Abstract: Methods, systems and computer program products provide protection domains for processes in shared address space. Multiple processes may share address space, for example, in a software isolated process running on top of a library operating system (OS). A protection domain (PD), such as a Protection Key (PKEY), may be assigned to a process to protect its allocated address spaces from access by other processes. PDs may be acquired from a host OS. A library OS may manage PDs to protect processes and/or data. A PD may be freed and reassigned to a different process or may be concurrently assigned to multiple processes, for example, when the number of processes exceeds the number of protection domains. Threads spawned by a process may inherit protection provided by a PD assigned to the process. Process PDs may be disassociated with address spaces as they are deallocated for a process or its threads.
    Type: Grant
    Filed: August 20, 2019
    Date of Patent: October 12, 2021
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Purvi Shah, Georgiy I. Reynya, Stanislav A. Oks
  • Publication number: 20210055961
    Abstract: Methods, systems and computer program products provide protection domains for processes in shared address space. Multiple processes may share address space, for example, in a software isolated process running on top of a library operating system (OS). A protection domain (PD), such as a Protection Key (PKEY), may be assigned to a process to protect its allocated address spaces from access by other processes. PDs may be acquired from a host OS. A library OS may manage PDs to protect processes and/or data. A PD may be freed and reassigned to a different process or may be concurrently assigned to multiple processes, for example, when the number of processes exceeds the number of protection domains. Threads spawned by a process may inherit protection provided by a PD assigned to the process. Process PDs may be disassociated with address spaces as they are deallocated for a process or its threads.
    Type: Application
    Filed: August 20, 2019
    Publication date: February 25, 2021
    Inventors: Purvi Shah, Georgiy I. Reynya, Stanislav A. Oks
  • Publication number: 20210055869
    Abstract: Methods, systems and computer program products are provided for managing protection domains (PDs) for files at a file-level or a page-level. PDs may be allocated for multiple purposes, e.g., to protect processes, files, buffers, etc. Files stored in nonvolatile memory (NVM) subject to direct access (DAX) may be protected by file-level or page-level PDs. PDs may comprise protection keys (PKEYs) with user-configurable read and write access control registers (PKRUs). NVM files may be protected from corruption (e.g. by stray writes) by leaving write access disabled except for temporary windows of time for valid writes. File PDs may be managed by a file manager while buffer PDs may be managed by a buffer pool manager. File associations between PDs, files and file address space may be maintained in a file object. Buffer associations between PDs, buffers and buffer address space may be maintained in a buffer descriptor.
    Type: Application
    Filed: August 20, 2019
    Publication date: February 25, 2021
    Inventors: Purvi Shah, Georgiy I. Reynya, Stanislav A. Oks
  • Patent number: 9235531
    Abstract: A buffer manager that manages blocks of memory amongst multiple levels of buffer pools. For instance, there may be a first level buffer pool for blocks in first level memory, and a second level buffer pool for blocks in second level memory. The first level buffer pool evicts blocks to the second level buffer pool if the blocks are not used above a first threshold level. The second level buffer pool evicts blocks to a yet lower level if they have not used above a second threshold level. The first level memory may be dynamic random access memory, whereas the second level memory may be storage class memory, such as a solid state disk. By using such a storage class memory, the working block set of the buffer manager may be increased without resorting to lower efficiency random block access from yet lower level memory such as disk.
    Type: Grant
    Filed: November 28, 2011
    Date of Patent: January 12, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Pedro Celis, Dexter Paul Bradshaw, Sadashivan Krishnamurthy, Georgiy I. Reynya, Chengliang Zhang, Hanumantha Rao Kodavalla
  • Patent number: 9069484
    Abstract: Aspects of the subject matter described herein relate to a buffer pool for a database system. In aspects, secondary memory such as solid state storage is used to extend the buffer pool of a database system. Thresholds such as hot, warm, and cold for classifying pages based on access history of the pages may be determined via a sampling algorithm. When a database system needs to free space in a buffer pool in main memory, a page may be evicted to the buffer pool in secondary memory or other storage based on how the page is classified and conditions of the secondary memory or other storage.
    Type: Grant
    Filed: March 13, 2014
    Date of Patent: June 30, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Chengliang Zhang, Sadashivan Krishnamurthy, Georgiy I. Reynya, Alexandre Verbitski, Pedro Celis, Dexter Paul Bradshaw
  • Publication number: 20140195750
    Abstract: Aspects of the subject matter described herein relate to a buffer pool for a database system. In aspects, secondary memory such as solid state storage is used to extend the buffer pool of a database system. Thresholds such as hot, warm, and cold for classifying pages based on access history of the pages may be determined via a sampling algorithm. When a database system needs to free space in a buffer pool in main memory, a page may be evicted to the buffer pool in secondary memory or other storage based on how the page is classified and conditions of the secondary memory or other storage.
    Type: Application
    Filed: March 13, 2014
    Publication date: July 10, 2014
    Applicant: Microsoft Corporation
    Inventors: Chengliang Zhang, Sadashivan Krishnamurthy, Georgiy I. Reynya, Alexandre Verbitski, Pedro Celis, Dexter Paul Bradshaw
  • Patent number: 8712984
    Abstract: Aspects of the subject matter described herein relate to a buffer pool for a database system. In aspects, secondary memory such as solid state storage is used to extend the buffer pool of a database system. Thresholds such as hot, warm, and cold for classifying pages based on access history of the pages may be determined via a sampling algorithm. When a database system needs to free space in a buffer pool in main memory, a page may be evicted to the buffer pool in secondary memory or other storage based on how the page is classified and conditions of the secondary memory or other storage.
    Type: Grant
    Filed: March 4, 2010
    Date of Patent: April 29, 2014
    Assignee: Microsoft Corporation
    Inventors: Chengliang Zhang, Sadashivan Krishnamurthy, Georgiy I. Reynya, Alexandre Verbitski, Pedro Celis, Dexter Paul Bradshaw
  • Patent number: 8402223
    Abstract: Embodiments are directed to efficiently determining which cache entries are to be evicted from memory and to incorporating a probability of reuse estimation in a cache entry eviction determination. A computer system with multiple different caches accesses a cache entry. The computer system determines an entry cost value for the accessed cache entry. The entry cost value indicates an amount of time the computer system is slowed down by to load the cache entry into cache memory. The computer system determines an opportunity cost value for the computing system caches. The opportunity cost value indicates an amount of time by which the computer system is slowed down while performing other operations that could have used the cache entry's cache memory space. Upon determining that the entry cost value is lower than the opportunity cost value, the computer system probabilistically evicts the cache entry from cache memory.
    Type: Grant
    Filed: March 21, 2011
    Date of Patent: March 19, 2013
    Assignee: Microsoft Corporation
    Inventors: Adrian Birka, Adam Prout, Sangeetha Shekar, Georgiy I. Reynya
  • Publication number: 20120246411
    Abstract: Embodiments are directed to efficiently determining which cache entries are to be evicted from memory and to incorporating a probability of reuse estimation in a cache entry eviction determination. A computer system with multiple different caches accesses a cache entry. The computer system determines an entry cost value for the accessed cache entry. The entry cost value indicates an amount of time the computer system is slowed down by to load the cache entry into cache memory. The computer system determines an opportunity cost value for the computing system caches. The opportunity cost value indicates an amount of time by which the computer system is slowed down while performing other operations that could have used the cache entry's cache memory space. Upon determining that the entry cost value is lower than the opportunity cost value, the computer system probabilistically evicts the cache entry from cache memory.
    Type: Application
    Filed: March 21, 2011
    Publication date: September 27, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Adrian Birka, Adam Prout, Sangeetha Shekar, Georgiy I. Reynya
  • Patent number: 8225065
    Abstract: Aspects of the subject matter described herein relate to memory management. In aspects, a hierarchical, customized memory allocator may be created that allocates memory to memory consumers. The memory allocator may use a data structure to classify blocks of memory at each level in the hierarchy according to fill factors of the blocks of memory. Allocations may be based on lifetime characteristics, proximity to consumer, fill factor, and other factors. An allocator may use one or more active blocks to allocate memory to consumers. The number of active blocks for an allocator may depend on contention.
    Type: Grant
    Filed: June 3, 2010
    Date of Patent: July 17, 2012
    Assignee: Microsoft Corporation
    Inventors: Georgiy I. Reynya, Rajesh B. Iyer, Madhan R. Arumugam, Rusi Hosang Hilloowala
  • Publication number: 20120072652
    Abstract: A buffer manager that manages blocks of memory amongst multiple levels of buffer pools. For instance, there may be a first level buffer pool for blocks in first level memory, and a second level buffer pool for blocks in second level memory. The first level buffer pool evicts blocks to the second level buffer pool if the blocks are not used above a first threshold level. The second level buffer pool evicts blocks to a yet lower level if they have not used above a second threshold level. The first level memory may be dynamic random access memory, whereas the second level memory may be storage class memory, such as a solid state disk. By using such a storage class memory, the working block set of the buffer manager may be increased without resorting to lower efficiency random block access from yet lower level memory such as disk.
    Type: Application
    Filed: November 28, 2011
    Publication date: March 22, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Pedro Celis, Dexter Paul Bradshaw, Sadashivan Krishnamurthy, Georgiy I. Reynya, Chengliang Zhang, Hanumantha Rao Kodavalla
  • Publication number: 20110302388
    Abstract: Aspects of the subject matter described herein relate to memory management. In aspects, a hierarchical, customized memory allocator may be created that allocates memory to memory consumers. The memory allocator may use a data structure to classify blocks of memory at each level in the hierarchy according to fill factors of the blocks of memory. Allocations may be based on lifetime characteristics, proximity to consumer, fill factor, and other factors. An allocator may use one or more active blocks to allocate memory to consumers. The number of active blocks for an allocator may depend on contention.
    Type: Application
    Filed: June 3, 2010
    Publication date: December 8, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Georgiy I. Reynya, Rajesh B. Iyer, Madhan R. Arumugam, Rusi Hosang Hilloowala
  • Publication number: 20110219169
    Abstract: Aspects of the subject matter described herein relate to a buffer pool for a database system. In aspects, secondary memory such as solid state storage is used to extend the buffer pool of a database system. Thresholds such as hot, warm, and cold for classifying pages based on access history of the pages may be determined via a sampling algorithm. When a database system needs to free space in a buffer pool in main memory, a page may be evicted to the buffer pool in secondary memory or other storage based on how the page is classified and conditions of the secondary memory or other storage.
    Type: Application
    Filed: March 4, 2010
    Publication date: September 8, 2011
    Applicant: Microsoft Corporation
    Inventors: Chengliang Zhang, Sadashivan krishnamurthy, Georgiy I. Reynya, Alexandre Verbitski