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: 11573710Abstract: 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: GrantFiled: August 20, 2019Date of Patent: February 7, 2023Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Purvi Shah, Georgiy I. Reynya, Stanislav A. Oks
-
Patent number: 11144347Abstract: 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: GrantFiled: August 20, 2019Date of Patent: October 12, 2021Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Purvi Shah, Georgiy I. Reynya, Stanislav A. Oks
-
Publication number: 20210055961Abstract: 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: ApplicationFiled: August 20, 2019Publication date: February 25, 2021Inventors: Purvi Shah, Georgiy I. Reynya, Stanislav A. Oks
-
Publication number: 20210055869Abstract: 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: ApplicationFiled: August 20, 2019Publication date: February 25, 2021Inventors: Purvi Shah, Georgiy I. Reynya, Stanislav A. Oks
-
Patent number: 9235531Abstract: 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: GrantFiled: November 28, 2011Date of Patent: January 12, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Pedro Celis, Dexter Paul Bradshaw, Sadashivan Krishnamurthy, Georgiy I. Reynya, Chengliang Zhang, Hanumantha Rao Kodavalla
-
Patent number: 9069484Abstract: 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: GrantFiled: March 13, 2014Date of Patent: June 30, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Chengliang Zhang, Sadashivan Krishnamurthy, Georgiy I. Reynya, Alexandre Verbitski, Pedro Celis, Dexter Paul Bradshaw
-
Publication number: 20140195750Abstract: 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: ApplicationFiled: March 13, 2014Publication date: July 10, 2014Applicant: Microsoft CorporationInventors: Chengliang Zhang, Sadashivan Krishnamurthy, Georgiy I. Reynya, Alexandre Verbitski, Pedro Celis, Dexter Paul Bradshaw
-
Patent number: 8712984Abstract: 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: GrantFiled: March 4, 2010Date of Patent: April 29, 2014Assignee: Microsoft CorporationInventors: Chengliang Zhang, Sadashivan Krishnamurthy, Georgiy I. Reynya, Alexandre Verbitski, Pedro Celis, Dexter Paul Bradshaw
-
Patent number: 8402223Abstract: 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: GrantFiled: March 21, 2011Date of Patent: March 19, 2013Assignee: Microsoft CorporationInventors: Adrian Birka, Adam Prout, Sangeetha Shekar, Georgiy I. Reynya
-
Publication number: 20120246411Abstract: 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: ApplicationFiled: March 21, 2011Publication date: September 27, 2012Applicant: MICROSOFT CORPORATIONInventors: Adrian Birka, Adam Prout, Sangeetha Shekar, Georgiy I. Reynya
-
Patent number: 8225065Abstract: 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: GrantFiled: June 3, 2010Date of Patent: July 17, 2012Assignee: Microsoft CorporationInventors: Georgiy I. Reynya, Rajesh B. Iyer, Madhan R. Arumugam, Rusi Hosang Hilloowala
-
Publication number: 20120072652Abstract: 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: ApplicationFiled: November 28, 2011Publication date: March 22, 2012Applicant: MICROSOFT CORPORATIONInventors: Pedro Celis, Dexter Paul Bradshaw, Sadashivan Krishnamurthy, Georgiy I. Reynya, Chengliang Zhang, Hanumantha Rao Kodavalla
-
Publication number: 20110302388Abstract: 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: ApplicationFiled: June 3, 2010Publication date: December 8, 2011Applicant: MICROSOFT CORPORATIONInventors: Georgiy I. Reynya, Rajesh B. Iyer, Madhan R. Arumugam, Rusi Hosang Hilloowala
-
Publication number: 20110219169Abstract: 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: ApplicationFiled: March 4, 2010Publication date: September 8, 2011Applicant: Microsoft CorporationInventors: Chengliang Zhang, Sadashivan krishnamurthy, Georgiy I. Reynya, Alexandre Verbitski