Patents by Inventor Artem Oks
Artem Oks 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: 10956193Abstract: Moving scheduling of processor time for virtual processors (VPs) out of a virtualization hypervisor. A host operating system schedules VP (virtual processor) processor time. The host operating system creates VP backing threads, one for each VP of each virtual machine. There is a one-to-one mapping between each VP thread in the host operating system and each VP in the hypervisor. When a VP thread is dispatched for a slice of processor time, the host operating system calls into the hypervisor to have the hypervisor start executing the VP, and the hypervisor may perform a processor context switch for the VP. Of note is the security separation between VP scheduling and VP context switching. The hypervisor manages VP context switching in kernel mode while VP scheduling is performed in user mode. There is a security/interface boundary between the unit that schedules VP processor time and the hypervisor.Type: GrantFiled: March 31, 2017Date of Patent: March 23, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Artem Oks, David Hepkin
-
Patent number: 10860556Abstract: Architecture that includes an index creation algorithm that utilizes available resources and dynamically adjusts to successfully scale with increased resources and be able to do so for any data distribution. The resources can be processing resources, memory, and/or input/output, for example. A finer level of granularity, called a segment, is utilized to process tuples in a partition while creating an index. The segment also aligns with compression techniques for the index. By choosing an appropriate size for a segment and using load balancing the overall time for index creation can be reduced. Each segment can then be processed by a single thread thereby limiting segment skew. Skew is further limited by breaking down the work done by a thread into parallelizable stages.Type: GrantFiled: January 10, 2019Date of Patent: December 8, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Artem Oks, Qingqing Zhou, Srikumar Rangarajan, Aleksandras Surna, Wey Guy, Cipri Clinciu, Ashit Gosalia
-
Patent number: 10496621Abstract: Methods, systems, and computer-readable media of columnar storage of a database index are disclosed. A particular columnar index includes a column store that stores rows of the columnar index in a column-wise fashion and a delta store that stores rows of the columnar index in a row-wise fashion. The column store also includes an absence flag array. The absence flag array includes entries that indicate whether certain rows have been logically deleted from the column store.Type: GrantFiled: October 23, 2015Date of Patent: December 3, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Artem A. Oks, Per-Ake Larson, Srikumar Rangarajan, Michael James Zwilling, Jose A. Blakeley, Hanumantha R. Kodavalla
-
Publication number: 20190205291Abstract: Architecture that includes an index creation algorithm that utilizes available resources and dynamically adjusts to successfully scale with increased resources and be able to do so for any data distribution. The resources can be processing resources, memory, and/or input/output, for example. A finer level of granularity, called a segment, is utilized to process tuples in a partition while creating an index. The segment also aligns with compression techniques for the index. By choosing an appropriate size for a segment and using load balancing the overall time for index creation can be reduced. Each segment can then be processed by a single thread thereby limiting segment skew. Skew is further limited by breaking down the work done by a thread into parallelizable stages.Type: ApplicationFiled: January 10, 2019Publication date: July 4, 2019Inventors: Artem Oks, Qingqing Zhou, Srikumar Rangarajan, Aleksandras Surna, Wey Guy, Cipri Clinciu, Ashit Gosalia
-
Patent number: 10216777Abstract: Architecture that includes an index creation algorithm that utilizes available resources and dynamically adjusts to successfully scale with increased resources and be able to do so for any data distribution. The resources can be processing resources, memory, and/or input/output, for example. A finer level of granularity, called a segment, is utilized to process tuples in a partition while creating an index. The segment also aligns with compression techniques for the index. By choosing an appropriate size for a segment and using load balancing the overall time for index creation can be reduced. Each segment can then be processed by a single thread thereby limiting segment skew. Skew is further limited by breaking down the work done by a thread into parallelizable stages.Type: GrantFiled: January 16, 2017Date of Patent: February 26, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Artem Oks, Qingqing Zhou, Srikumar Rangarajan, Aleksandras Surna, Wey Guy, Cipri Clinciu, Ashit Gosalia
-
Publication number: 20180285135Abstract: Embodiments relate to moving scheduling of processor time for virtual processors (VPs) out of a virtualization hypervisor. In one embodiment, a host operating system schedules VP processor time. The host operating system creates VP backing threads, one for each VP of each VM. There is a one-to-one mapping between each VP thread in the host operating system and each VP in the hypervisor. When a VP thread is dispatched for a slice of processor time, the host operating system calls into the hypervisor to have the hypervisor start executing the VP, and the hypervisor may perform a processor context switch for the VP. Of note is the security separation between VP scheduling and VP context switching. The hypervisor manages VP context switching in kernel mode while VP scheduling is performed in user mode. There is a security/interface boundary between the unit that schedules VP processor time and the hypervisor.Type: ApplicationFiled: March 31, 2017Publication date: October 4, 2018Inventors: Artem Oks, David Hepkin
-
Publication number: 20170124128Abstract: Architecture that includes an index creation algorithm that utilizes available resources and dynamically adjusts to successfully scale with increased resources and be able to do so for any data distribution. The resources can be processing resources, memory, and/or input/output, for example. A finer level of granularity, called a segment, is utilized to process tuples in a partition while creating an index. The segment also aligns with compression techniques for the index. By choosing an appropriate size for a segment and using load balancing the overall time for index creation can be reduced. Each segment can then be processed by a single thread thereby limiting segment skew. Skew is further limited by breaking down the work done by a thread into parallelizable stages.Type: ApplicationFiled: January 16, 2017Publication date: May 4, 2017Inventors: Artem Oks, Qingqing Zhou, Srikumar Rangarajan, Aleksandras Surna, Wey Guy, Cipri Clinciu, Ashit Gosalia
-
Patent number: 9547677Abstract: Architecture that includes an index creation algorithm that utilizes available resources and dynamically adjusts to successfully scale with increased resources and be able to do so for any data distribution. The resources can be processing resources, memory, and/or input/output, for example. A finer level of granularity, called a segment, is utilized to process tuples in a partition while creating an index. The segment also aligns with compression techniques for the index. By choosing an appropriate size for a segment and using load balancing the overall time for index creation can be reduced. Each segment can then be processed by a single thread thereby limiting segment skew. Skew is further limited by breaking down the work done by a thread into parallelizable stages.Type: GrantFiled: March 18, 2015Date of Patent: January 17, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Artem Oks, Qingqing Zhou, Srikumar Rangarajan, Aleksandras Surna, Wey Guy, Cipri Clinciu, Ashit Gosalia
-
Publication number: 20160042019Abstract: Methods, systems, and computer-readable media of columnar storage of a database index are disclosed. A particular columnar index includes a column store that stores rows of the columnar index in a column-wise fashion and a delta store that stores rows of the columnar index in a row-wise fashion. The column store also includes an absence flag array. The absence flag array includes entries that indicate whether certain rows have been logically deleted from the column store.Type: ApplicationFiled: October 23, 2015Publication date: February 11, 2016Applicant: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Artem A. Oks, Per-Ake Larson, Srikumar Rangarajan, Michael James Zwilling, Jose A. Blakeley, Hanumantha R. Kodavalla
-
Patent number: 9195657Abstract: Methods, systems, and computer-readable media of columnar storage of a database index are disclosed. A particular columnar index includes a column store that stores rows of the columnar index in a column-wise fashion and a delta store that stores rows of the columnar index in a row-wise fashion. The column store also includes an absence flag array. The absence flag array includes entries that indicate whether certain rows have been logically deleted from the column store.Type: GrantFiled: March 8, 2010Date of Patent: November 24, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Artem A. Oks, Per-Ake Larson, Srikumar Rangarajan, Michael James Zwilling, Jose A. Blakeley, Hanumantha R. Kodavalla
-
Publication number: 20150193485Abstract: Architecture that includes an index creation algorithm that utilizes available resources and dynamically adjusts to successfully scale with increased resources and be able to do so for any data distribution. The resources can be processing resources, memory, and/or input/output, for example. A finer level of granularity, called a segment, is utilized to process tuples in a partition while creating an index. The segment also aligns with compression techniques for the index. By choosing an appropriate size for a segment and using load balancing the overall time for index creation can be reduced. Each segment can then be processed by a single thread thereby limiting segment skew. Skew is further limited by breaking down the work done by a thread into parallelizable stages.Type: ApplicationFiled: March 18, 2015Publication date: July 9, 2015Inventors: Artem Oks, Qingqing Zhou, Srikumar Rangarajan, RicharAleksandras Surna, Wey Guy, Cipri Clinciu, Ashit Gosalia
-
Patent number: 8990216Abstract: Architecture that includes an index creation algorithm that utilizes available resources and dynamically adjusts to successfully scale with increased resources and be able to do so for any data distribution. The resources can be processing resources, memory, and/or input/output, for example. A finer level of granularity, called a segment, is utilized to process tuples in a partition while creating an index. The segment also aligns with compression techniques for the index. By choosing an appropriate size for a segment and using load balancing the overall time for index creation can be reduced. Each segment can then be processed by a single thread thereby limiting segment skew. Skew is further limited by breaking down the work done by a thread into parallelizable stages.Type: GrantFiled: March 19, 2010Date of Patent: March 24, 2015Assignee: Microsoft CorporationInventors: Artem Oks, Qingqing Zhou, Srikumar Rangarajan, Aleksandras Surna, Wey Guy, Cipri Clinciu, Ashit Gosalia
-
Patent number: 8756192Abstract: A method for distributing one or more conflicting data changes. The method includes extracting data changes from the source site log, and applying the data changes to the destination site. The method then includes identifying one or more constraints for each data change and generating a hash value for each identified constraint. The method then dispatches the data changes into a plurality of streams based on the hash values. The hash values are used to identify conflicting data changes and determine how the data changes should be sent through the plurality of streams such that data changes are applied in parallel in the plurality of streams without violating any causal consistency constraints. The method then includes committing data changes in the plurality of streams to the destination site in a single transaction, creating a consistent transactional view.Type: GrantFiled: January 7, 2010Date of Patent: June 17, 2014Assignee: Microsoft CorporationInventors: Rui Wang, Michael Habben, Qun Guo, Artem Oks
-
Publication number: 20110282850Abstract: A database management system having a database component, which includes a lock manager, and a filesystem component. The filesystem component is configured to: generate a mapping between one or more filesystem access modes, one or more filesystem sharing modes and one or more database locks, receive a request from a filesystem stack to perform one or more actions on data in a database, identify a filesystem access mode and a filesystem share mode of the request, determine which one of the database locks corresponds to the filesystem access mode and the filesystem share mode of the request based on the mapping, and receive a notification lock on the data from the lock manager when no other database locks conflict with the notification lock, wherein the notification lock corresponds to the one of the database locks.Type: ApplicationFiled: May 11, 2010Publication date: November 17, 2011Applicant: Microsoft CorporationInventors: Vaibhav Kamra, Pradeep Madhavarapu, Cristian Diaconu, Jun Fang, Srini Acharya, Michael Warmington, Maciej Plaza, Artem Oks, Sankhyayan Debnath
-
Publication number: 20110231403Abstract: Architecture that includes an index creation algorithm that utilizes available resources and dynamically adjusts to successfully scale with increased resources and be able to do so for any data distribution. The resources can be processing resources, memory, and/or input/output, for example. A finer level of granularity, called a segment, is utilized to process tuples in a partition while creating an index. The segment also aligns with compression techniques for the index. By choosing an appropriate size for a segment and using load balancing the overall time for index creation can be reduced. Each segment can then be processed by a single thread thereby limiting segment skew. Skew is further limited by breaking down the work done by a thread into parallelizable stages.Type: ApplicationFiled: March 19, 2010Publication date: September 22, 2011Applicant: MICROSOFT CORPORATIONInventors: Artem Oks, Qingqing Zhou, Srikumar Rangarajan, Aleksandras Surna, Wey Guy, Cipri Clinciu, Ashit Gosalia
-
Publication number: 20110219020Abstract: Methods, systems, and computer-readable media of columnar storage of a database index are disclosed. A particular columnar index includes a column store that stores rows of the columnar index in a column-wise fashion and a delta store that stores rows of the columnar index in a row-wise fashion. The column store also includes an absence flag array. The absence flag array includes entries that indicate whether certain rows have been logically deleted from the column store.Type: ApplicationFiled: March 8, 2010Publication date: September 8, 2011Inventors: Artem A. Oks, Per-Ake Larson, Srikumar Rangarajan, Michael James Zwilling, Jose A. Blakeley, Hanumantha R. Kodavalla
-
Publication number: 20110167038Abstract: A method for distributing one or more conflicting data changes. The method includes extracting data changes from the source site log, and applying the data changes to the destination site. The method then includes identifying one or more constraints for each data change and generating a hash value for each identified constraint. The method then dispatches the data changes into a plurality of streams based on the hash values. The hash values are used to identify conflicting data changes and determine how the data changes should be sent through the plurality of streams such that data changes are applied in parallel in the plurality of streams without violating any causal consistency constraints. The method then includes committing data changes in the plurality of streams to the destination site in a single transaction, creating a consistent transactional view.Type: ApplicationFiled: January 7, 2010Publication date: July 7, 2011Applicant: MICROSOFT CORPORATIONInventors: Rui Wang, Michael Habben, Qun Guo, Artem Oks
-
Patent number: 7814057Abstract: Systems and methods are disclosed that facilitate providing page-level database restore functionality upon detection of a corruption event. Updates to a data page in a database can trigger generation of a snapshot of the data page, and an update log can be maintained that stores information related to page updates. Subsequent snapshots can be generated at predetermined intervals and can trigger truncation of a log segment and initiation of a new log segment. Upon detection of page corruption, a most-recent uncorrupt snapshot of the corrupt page can be identified, copied to the location of the corrupt page in the database, and modified according to the log segment associated with the uncorrupt snapshot to make the page current as of the corrupting event, all of which can be performed to restore the database without having to take the database offline.Type: GrantFiled: April 5, 2005Date of Patent: October 12, 2010Assignee: Microsoft CorporationInventors: Vishal Kathuria, Michael J Zwilling, Hanumantha R Kodavalla, Steven R Schmidt, Martin J Sleeman, Rajeev B Rajan, Artem A Oks
-
Patent number: 7689607Abstract: Systems and methods are presented that facilitate automatic database backup and restore for databases resident in personal computing devices, and which are transparent to a user, utilizing database page mirroring. Modifications to a data page in a data file can be validated and written to a backup, or mirror, database and then subsequently written to an original database after a predetermined time. An I/O latch on a mirrored data page can be limited to a duration of a single I/O write operation to facilitate sequential data page writing to each of the databases while mitigating potential for both databases to be written simultaneously, which can detrimentally affect data quality during a recovery operation.Type: GrantFiled: April 15, 2005Date of Patent: March 30, 2010Assignee: Microsoft CorporationInventors: Artem Oks, Hanumantha R Kodavalla, Martin J Sleeman
-
Patent number: 7366740Abstract: The present invention is directed a logical consistency checker (LCC) working alone or in conjunction with a physical consistency checker (PCC) and/or a data reliability system (DRS) for a database files system of a hardware/software interface system. Logical data correction pertains to logical data corruptions for entities (e.g., items, extensions, and/or relationships in an item-based operating system, where an item-based operating system is one example of an item-based hardware/software interface system). In this regard, a LCC analyses and corrects logical damage to entities representatively stored in the data store in order to ensure that all such entities in said data store are both consistent and conform to the data model rules.Type: GrantFiled: July 30, 2004Date of Patent: April 29, 2008Assignee: Microsoft CorporationInventors: Martin J. Sleeman, Artem A. Oks, Hanumantha Rao Kodavalla, Nigel R. Ellis