Patents by Inventor Ilya Grebnov

Ilya Grebnov 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: 10943191
    Abstract: Embodiments of facilitating creation of cloud computing applications are disclosed therein. In one embodiment, a method includes receiving user input of a plurality of workflow items as a sequence of graphical objects on a graphical user interface. The workflow items individually are related to one or more cloud computing services. The method also includes determining an execution sequence of the plurality of workflow items based on data dependencies individually between pairs of the workflow items, the determined execution sequence being different than the sequence of the graphical objects. The determined execution sequence includes executing pairs of the workflow items without data dependencies therebetween generally in parallel and sequentially executing other pairs of the workflow items with data dependencies therebetween in accordance with the data dependencies.
    Type: Grant
    Filed: August 15, 2019
    Date of Patent: March 9, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Ilya Grebnov, Charles Lamanna, Stephen Siciliano, Balasubramanian Shyamsundar, Prabir Shrestha, Kevin Lam
  • Patent number: 10606667
    Abstract: Computational tasks are mapped with computational locations in a distributed system such as a cloud computing environment. Mapping does not rely on workload estimates. Instead, tasks whose prerequisite tasks or other preconditions are determined to be mutually exclusive are co-located, while other tasks are mapped to different locations than one another. Locations are servers, processor cores, virtual machines, applications, or computational processes, for example. Mutual exclusivity may be determined by detecting that preconditions require different values of a shared variable in order to be satisfied, for example, or determining that preconditions correspond to different branches of a conditional programming statement. A satisfiability engine may also provide a satisfiability determination. Co-located tasks may also be batched, for improved execution performance.
    Type: Grant
    Filed: October 2, 2017
    Date of Patent: March 31, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Ilya Grebnov, Stephen Siciliano, Charles Lamanna
  • Publication number: 20200050981
    Abstract: Embodiments of facilitating creation of cloud computing applications are disclosed therein. In one embodiment, a method includes receiving user input of a plurality of workflow items as a sequence of graphical objects on a graphical user interface. The workflow items individually are related to one or more cloud computing services. The method also includes determining an execution sequence of the plurality of workflow items based on data dependencies individually between pairs of the workflow items, the determined execution sequence being different than the sequence of the graphical objects. The determined execution sequence includes executing pairs of the workflow items without data dependencies therebetween generally in parallel and sequentially executing other pairs of the workflow items with data dependencies therebetween in accordance with the data dependencies.
    Type: Application
    Filed: August 15, 2019
    Publication date: February 13, 2020
    Inventors: Ilya Grebnov, Charles Lamanna, Stephen Siciliano, Balasubramanian Shyamsundar, Prabir Shrestha, Kevin Lam
  • Patent number: 10430735
    Abstract: Embodiments of facilitating creation of cloud computing applications are disclosed therein. In one embodiment, a method includes receiving user input of a plurality of workflow items as a sequence of graphical objects on a graphical user interface. The workflow items individually are related to one or more cloud computing services. The method also includes determining an execution sequence of the plurality of workflow items based on data dependencies individually between pairs of the workflow items, the determined execution sequence being different than the sequence of the graphical objects. The determined execution sequence includes executing pairs of the workflow items without data dependencies therebetween generally in parallel and sequentially executing other pairs of the workflow items with data dependencies therebetween in accordance with the data dependencies.
    Type: Grant
    Filed: November 24, 2017
    Date of Patent: October 1, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Ilya Grebnov, Charles Lamanna, Stephen Siciliano, Balasubramanian Shyamsundar, Prabir Shrestha, Kevin Lam
  • Patent number: 10412148
    Abstract: A client device includes a processor and memory. An operating system and a client application are executed by the processor and memory. The client application is configured to determine first and second coordinated universal time (UTC) time intervals for a first non-UTC time interval associated with a first event type and a second non-UTC time interval associated with the first event type; generate a single request for the remote activity feed server to aggregate corresponding events during the first UTC time interval and the second UTC time interval; and send the single request via a network interface to the remote activity feed server.
    Type: Grant
    Filed: July 21, 2016
    Date of Patent: September 10, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: André Miguel Coelho de Oliveira Rodrigues, Ilya Grebnov, Sunay Vaishnav, Samuel Lenz Banina
  • Publication number: 20190005228
    Abstract: Methods, systems, and computer program products are described herein for implementing a workflow development system that enables users to incorporate custom functionality within a workflow. During runtime execution of the workflow, the custom functionality (e.g., custom code) is executed in a sandboxed environment, thereby ensuring that the custom code consumes only a limited amount of computing resources (e.g., processing power, memory, storage, etc.) that may be shared with other processes. The foregoing may be achieved without requiring the user to be aware that a sandboxed environment is being utilized. Instead, the user simply needs to select and associate a custom function with a particular workflow step, and the workflow development system manages the interactions with the sandboxed environment without any further user involvement.
    Type: Application
    Filed: June 29, 2017
    Publication date: January 3, 2019
    Inventors: Vinay Singh, Ilya Grebnov, Javed Akhter, Charles Lamanna, Rama K. Rayudu, Jonathan Fancey
  • Patent number: 10021186
    Abstract: Aspects of the present invention relate to guaranteeing delivery of replication messages in distributed storage systems. A request to perform an operation may be received. A first replication message corresponding to the request may be created, where the first replication message comprises instructions to replicate the result of the operation to one or more target storages. The replication message may be inserted in a message queue with a delayed visibility. The operation may be performed, where a result of the operation is persisted in a source storage in a data store. Upon determining that the result was successfully persisted in the source storage, a second replication message may be created, where the second replication message comprises instructions to replicate the result of the operation to the one or more target storages. The second replication message may be inserted in the message queue with an immediate visibility.
    Type: Grant
    Filed: March 4, 2015
    Date of Patent: July 10, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Ilya Grebnov, Samuel Banina, Charles Lamanna, Kevin Lam
  • Publication number: 20180101364
    Abstract: Embodiments of facilitating creation of cloud computing applications are disclosed therein. In one embodiment, a method includes receiving user input of a plurality of workflow items as a sequence of graphical objects on a graphical user interface. The workflow items individually are related to one or more cloud computing services. The method also includes determining an execution sequence of the plurality of workflow items based on data dependencies individually between pairs of the workflow items, the determined execution sequence being different than the sequence of the graphical objects. The determined execution sequence includes executing pairs of the workflow items without data dependencies therebetween generally in parallel and sequentially executing other pairs of the workflow items with data dependencies therebetween in accordance with the data dependencies.
    Type: Application
    Filed: November 24, 2017
    Publication date: April 12, 2018
    Inventors: Ilya Grebnov, Charles Lamanna, Stephen Siciliano, Balasubramanian Shyamsundar, Prabir Shrestha, Kevin Lam
  • Publication number: 20180024870
    Abstract: Computational tasks are mapped with computational locations in a distributed system such as a cloud computing environment. Mapping does not rely on workload estimates. Instead, tasks whose prerequisite tasks or other preconditions are determined to be mutually exclusive are co-located, while other tasks are mapped to different locations than one another. Locations are servers, processor cores, virtual machines, applications, or computational processes, for example. Mutual exclusivity may be determined by detecting that preconditions require different values of a shared variable in order to be satisfied, for example, or determining that preconditions correspond to different branches of a conditional programming statement. A satisfiability engine may also provide a satisfiability determination. Co-located tasks may also be batched, for improved execution performance.
    Type: Application
    Filed: October 2, 2017
    Publication date: January 25, 2018
    Inventors: Ilya GREBNOV, Stephen SICILIANO, Charles LAMANNA
  • Publication number: 20180027045
    Abstract: A client device includes a processor and memory. An operating system and a client application are executed by the processor and memory. The client application is configured to determine first and second coordinated universal time (UTC) time intervals for a first non-UTC time interval associated with a first event type and a second non-UTC time interval associated with the first event type; generate a single request for the remote activity feed server to aggregate corresponding events during the first UTC time interval and the second UTC time interval; and send the single request via a network interface to the remote activity feed server.
    Type: Application
    Filed: July 21, 2016
    Publication date: January 25, 2018
    Inventors: André Miguel Coelho de Oliveira RODRIGUES, Ilya GREBNOV, Sunay VAISHNAV, Samuel Lenz BANINA
  • Patent number: 9864791
    Abstract: Embodiments are directed to replicating data in distributed storage. A replication message may be retrieved from a message queue associated with a source table. The replication message may include a row identifier. One or more target storages within a same replication group as the source table may be identified. A row from each of the one or more target storages may be obtained corresponding to the row identifier. A winning row may be determined from the obtained rows based on a latest timestamp of the row. A replication operation may be created based on the winning row. The replication operation may be performed on the obtained rows from each of the target storages.
    Type: Grant
    Filed: March 4, 2015
    Date of Patent: January 9, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Ilya Grebnov, Samuel Banina, Charles Lamanna, Kevin Lam
  • Patent number: 9858045
    Abstract: Embodiments of facilitating creation of cloud computing applications are disclosed therein. In one embodiment, a method includes receiving user input of a plurality of workflow items as a sequence of graphical objects on a graphical user interface. The workflow items individually are related to one or more cloud computing services. The method also includes determining an execution sequence of the plurality of workflow items based on data dependencies individually between pairs of the workflow items, the determined execution sequence being different than the sequence of the graphical objects. The determined execution sequence includes executing pairs of the workflow items without data dependencies therebetween generally in parallel and sequentially executing other pairs of the workflow items with data dependencies therebetween in accordance with the data dependencies.
    Type: Grant
    Filed: March 28, 2016
    Date of Patent: January 2, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Ilya Grebnov, Charles Lamanna, Stephen Siciliano, Balasubramanian Shyamsundar, Prabir Shrestha, Kevin Lam
  • Patent number: 9842039
    Abstract: Embodiments are directed to determining an optimal number of concurrently running cloud resource instances and to providing an interactive interface that shows projected operational metric measurements. In one scenario, a computer system accesses metric information which identifies operational metric measurements, and further accesses a second portion of metric information that identifies operational metric measurements for the cloud resource instances over a second period of time. The computer system then calculates projected operational metric measurements based on the identified operational metric measurements over the first period of time (e.g. for reactive tuning) and further based on the identified operational metric measurements over the second period of time (e.g. for predictive tuning). The computer system then determines, based on the projected operational metric measurements, a number of cloud resource instances that are to be concurrently running at a specified future point in time.
    Type: Grant
    Filed: June 18, 2014
    Date of Patent: December 12, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Stephen Siciliano, Charles Lamanna, Ilya Grebnov
  • Patent number: 9811392
    Abstract: Computational tasks are mapped with computational locations in a distributed system such as a cloud computing environment. Mapping does not rely on workload estimates. Instead, tasks whose prerequisite tasks or other preconditions are determined to be mutually exclusive are co-located, while other tasks are mapped to different locations than one another. Locations are servers, processor cores, virtual machines, applications, or computational processes, for example. Mutual exclusivity may be determined by detecting that preconditions require different values of a shared variable in order to be satisfied, for example, or determining that preconditions correspond to different branches of a conditional programming statement. A satisfiability engine may also provide a satisfiability determination. Co-located tasks may also be batched, for improved execution performance.
    Type: Grant
    Filed: November 24, 2015
    Date of Patent: November 7, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Ilya Grebnov, Stephen Siciliano, Charles Lamanna
  • Publication number: 20170277516
    Abstract: Embodiments of facilitating creation of cloud computing applications are disclosed therein. In one embodiment, a method includes receiving user input of a plurality of workflow items as a sequence of graphical objects on a graphical user interface. The workflow items individually are related to one or more cloud computing services. The method also includes determining an execution sequence of the plurality of workflow items based on data dependencies individually between pairs of the workflow items, the determined execution sequence being different than the sequence of the graphical objects. The determined execution sequence includes executing pairs of the workflow items without data dependencies therebetween generally in parallel and sequentially executing other pairs of the workflow items with data dependencies therebetween in accordance with the data dependencies.
    Type: Application
    Filed: March 28, 2016
    Publication date: September 28, 2017
    Inventors: Ilya Grebnov, Charles Lamanna, Stephen Siciliano, Balasubramanian Shyamsundar, Prabir Shrestha, Kevin Lam
  • Patent number: 9722945
    Abstract: Embodiments are directed to preventing flapping when auto-scaling cloud resources. In one scenario, a computer system accesses information specifying a target operational metric that is to be maintained on a plurality of cloud resources. The computer system determines a current measured value for the target operational metric for at least some of the cloud resources. The computer system further calculates a scaling factor based on the target operational metric and the current measured value, where the scaling factor represents an amount of variance between the target operational metric and the current measured value. The computer system also calculates a delta value representing a modified quantity of cloud resources modified by the calculated scaling factor and determines whether a scaling action is to occur based on the calculated delta value.
    Type: Grant
    Filed: June 18, 2014
    Date of Patent: August 1, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Stephen Siciliano, Charles Lamanna, Ilya Grebnov
  • Publication number: 20170147413
    Abstract: Computational tasks are mapped with computational locations in a distributed system such as a cloud computing environment. Mapping does not rely on workload estimates. Instead, tasks whose prerequisite tasks or other preconditions are determined to be mutually exclusive are co-located, while other tasks are mapped to different locations than one another. Locations are servers, processor cores, virtual machines, applications, or computational processes, for example. Mutual exclusivity may be determined by detecting that preconditions require different values of a shared variable in order to be satisfied, for example, or determining that preconditions correspond to different branches of a conditional programming statement. A satisfiability engine may also provide a satisfiability determination. Co-located tasks may also be batched, for improved execution performance.
    Type: Application
    Filed: November 24, 2015
    Publication date: May 25, 2017
    Inventors: Ilya GREBNOV, Stephen SICILIANO, Charles LAMANNA
  • Publication number: 20160179915
    Abstract: Embodiments are directed to replicating data in distributed storage. A replication message may be retrieved from a message queue associated with a source table. The replication message may include a row identifier. One or more target storages within a same replication group as the source table may be identified. A row from each of the one or more target storages may be obtained corresponding to the row identifier. A winning row may be determined from the obtained rows based on a latest timestamp of the row. A replication operation may be created based on the winning row. The replication operation may be performed on the obtained rows from each of the target storages.
    Type: Application
    Filed: March 4, 2015
    Publication date: June 23, 2016
    Inventors: ILYA GREBNOV, SAMUEL BANINA, CHARLES LAMANNA, KEVIN LAM
  • Publication number: 20160182633
    Abstract: Aspects of the present invention relate to guaranteeing delivery of replication messages in distributed storage systems. A request to perform an operation may be received. A first replication message corresponding to the request may be created, where the first replication message comprises instructions to replicate the result of the operation to one or more target storages. The replication message may be inserted in a message queue with a delayed visibility. The operation may be performed, where a result of the operation is persisted in a source storage in a data store. Upon determining that the result was successfully persisted in the source storage, a second replication message may be created, where the second replication message comprises instructions to replicate the result of the operation to the one or more target storages. The second replication message may be inserted in the message queue with an immediate visibility.
    Type: Application
    Filed: March 4, 2015
    Publication date: June 23, 2016
    Inventors: ILYA GREBNOV, SAMUEL BANINA, CHARLES LAMANNA, KEVIN LAM
  • Publication number: 20150278061
    Abstract: Embodiments are directed to determining an optimal number of concurrently running cloud resource instances and to providing an interactive interface that shows projected operational metric measurements. In one scenario, a computer system accesses metric information which identifies operational metric measurements, and further accesses a second portion of metric information that identifies operational metric measurements for the cloud resource instances over a second period of time. The computer system then calculates projected operational metric measurements based on the identified operational metric measurements over the first period of time (e.g. for reactive tuning) and further based on the identified operational metric measurements over the second period of time (e.g. for predictive tuning) The computer system then determines, based on the projected operational metric measurements, a number of cloud resource instances that are to be concurrently running at a specified future point in time.
    Type: Application
    Filed: June 18, 2014
    Publication date: October 1, 2015
    Inventors: STEPHEN SICILIANO, CHARLES LAMANNA, ILYA GREBNOV