Patents by Inventor Artem A. Oks

Artem A. 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: 10956193
    Abstract: 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: Grant
    Filed: March 31, 2017
    Date of Patent: March 23, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Artem Oks, David Hepkin
  • Patent number: 10860556
    Abstract: 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: Grant
    Filed: January 10, 2019
    Date of Patent: December 8, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Artem Oks, Qingqing Zhou, Srikumar Rangarajan, Aleksandras Surna, Wey Guy, Cipri Clinciu, Ashit Gosalia
  • Patent number: 10496621
    Abstract: 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: Grant
    Filed: October 23, 2015
    Date of Patent: December 3, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Artem A. Oks, Per-Ake Larson, Srikumar Rangarajan, Michael James Zwilling, Jose A. Blakeley, Hanumantha R. Kodavalla
  • Publication number: 20190205291
    Abstract: 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: Application
    Filed: January 10, 2019
    Publication date: July 4, 2019
    Inventors: Artem Oks, Qingqing Zhou, Srikumar Rangarajan, Aleksandras Surna, Wey Guy, Cipri Clinciu, Ashit Gosalia
  • Patent number: 10216777
    Abstract: 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: Grant
    Filed: January 16, 2017
    Date of Patent: February 26, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Artem Oks, Qingqing Zhou, Srikumar Rangarajan, Aleksandras Surna, Wey Guy, Cipri Clinciu, Ashit Gosalia
  • Publication number: 20180285135
    Abstract: 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: Application
    Filed: March 31, 2017
    Publication date: October 4, 2018
    Inventors: Artem Oks, David Hepkin
  • Publication number: 20170124128
    Abstract: 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: Application
    Filed: January 16, 2017
    Publication date: May 4, 2017
    Inventors: Artem Oks, Qingqing Zhou, Srikumar Rangarajan, Aleksandras Surna, Wey Guy, Cipri Clinciu, Ashit Gosalia
  • Patent number: 9547677
    Abstract: 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: Grant
    Filed: March 18, 2015
    Date of Patent: January 17, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Artem Oks, Qingqing Zhou, Srikumar Rangarajan, Aleksandras Surna, Wey Guy, Cipri Clinciu, Ashit Gosalia
  • Publication number: 20160042019
    Abstract: 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: Application
    Filed: October 23, 2015
    Publication date: February 11, 2016
    Applicant: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Artem A. Oks, Per-Ake Larson, Srikumar Rangarajan, Michael James Zwilling, Jose A. Blakeley, Hanumantha R. Kodavalla
  • Patent number: 9195657
    Abstract: 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: Grant
    Filed: March 8, 2010
    Date of Patent: November 24, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Artem A. Oks, Per-Ake Larson, Srikumar Rangarajan, Michael James Zwilling, Jose A. Blakeley, Hanumantha R. Kodavalla
  • Publication number: 20150193485
    Abstract: 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: Application
    Filed: March 18, 2015
    Publication date: July 9, 2015
    Inventors: Artem Oks, Qingqing Zhou, Srikumar Rangarajan, RicharAleksandras Surna, Wey Guy, Cipri Clinciu, Ashit Gosalia
  • Patent number: 8990216
    Abstract: 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: Grant
    Filed: March 19, 2010
    Date of Patent: March 24, 2015
    Assignee: Microsoft Corporation
    Inventors: Artem Oks, Qingqing Zhou, Srikumar Rangarajan, Aleksandras Surna, Wey Guy, Cipri Clinciu, Ashit Gosalia
  • Patent number: 8756192
    Abstract: 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: Grant
    Filed: January 7, 2010
    Date of Patent: June 17, 2014
    Assignee: Microsoft Corporation
    Inventors: Rui Wang, Michael Habben, Qun Guo, Artem Oks
  • Publication number: 20110282850
    Abstract: 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: Application
    Filed: May 11, 2010
    Publication date: November 17, 2011
    Applicant: Microsoft Corporation
    Inventors: Vaibhav Kamra, Pradeep Madhavarapu, Cristian Diaconu, Jun Fang, Srini Acharya, Michael Warmington, Maciej Plaza, Artem Oks, Sankhyayan Debnath
  • Publication number: 20110231403
    Abstract: 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: Application
    Filed: March 19, 2010
    Publication date: September 22, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Artem Oks, Qingqing Zhou, Srikumar Rangarajan, Aleksandras Surna, Wey Guy, Cipri Clinciu, Ashit Gosalia
  • Publication number: 20110219020
    Abstract: 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: Application
    Filed: March 8, 2010
    Publication date: September 8, 2011
    Inventors: Artem A. Oks, Per-Ake Larson, Srikumar Rangarajan, Michael James Zwilling, Jose A. Blakeley, Hanumantha R. Kodavalla
  • Publication number: 20110167038
    Abstract: 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: Application
    Filed: January 7, 2010
    Publication date: July 7, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Rui Wang, Michael Habben, Qun Guo, Artem Oks
  • Patent number: 7814057
    Abstract: 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: Grant
    Filed: April 5, 2005
    Date of Patent: October 12, 2010
    Assignee: Microsoft Corporation
    Inventors: Vishal Kathuria, Michael J Zwilling, Hanumantha R Kodavalla, Steven R Schmidt, Martin J Sleeman, Rajeev B Rajan, Artem A Oks
  • Patent number: 7689607
    Abstract: 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: Grant
    Filed: April 15, 2005
    Date of Patent: March 30, 2010
    Assignee: Microsoft Corporation
    Inventors: Artem Oks, Hanumantha R Kodavalla, Martin J Sleeman
  • Patent number: 7366740
    Abstract: 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: Grant
    Filed: July 30, 2004
    Date of Patent: April 29, 2008
    Assignee: Microsoft Corporation
    Inventors: Martin J. Sleeman, Artem A. Oks, Hanumantha Rao Kodavalla, Nigel R. Ellis