Patents by Inventor Stephen Harris Toub

Stephen Harris Toub 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).

  • Publication number: 20190187965
    Abstract: An asynchronous method is implemented in a manner that reduces the amount of runtime overhead needed to execute the asynchronous method. The data elements needed to suspend an asynchronous method to await completion of an asynchronous operation, to resume the asynchronous method at a resumption point, and to provide a completion status of the caller of the asynchronous method are consolidated into one or two reusable objects. An asynchronous method may be associated with a distinct object pool of reusable objects. The size of a pool and the total size of all pools can be configured statically or dynamically based on runtime conditions.
    Type: Application
    Filed: December 15, 2017
    Publication date: June 20, 2019
    Inventor: STEPHEN HARRIS TOUB
  • Patent number: 9183407
    Abstract: A technique for protecting the privacy of a query is provided using permissions that may be derived from an analysis of the context of the query. A monitoring component can be provided to receive or intercept queries directed at a datastore, and a privacy component is provided that analyzes permissions associated with the queries. The privacy component can also determine access levels of the queries based on the analysis of the permissions. A response component can then be provided to answer the queries in accordance with the access levels of the queries.
    Type: Grant
    Filed: October 28, 2011
    Date of Patent: November 10, 2015
    Assignee: Microsoft Technology Licensing LLC
    Inventors: Henricus Johannes Maria Meijer, Evelyne Viegas, Savas Parastatidis, Stephen Harris Toub
  • Patent number: 8918767
    Abstract: The present invention extends to methods, systems, and computer program products for transforming source code to await execution of asynchronous operations. Embodiments of the invention simplify authoring and use of asynchronous methods, by generating statements that use well-defined awaitable objects to await completion of asynchronous operations. For example, a computer system can transform a statement that requests to await the completion of an asynchronous operation into a plurality of statements that use a predefined pattern of members of an awaitable object corresponding the asynchronous operation. The pattern can include one or more members configured to return a completion status of the asynchronous operation, one or more members configured to resume execution of the asynchronous method at a resumption point when the asynchronous operation completes, and one or more members configured to retrieve completion results.
    Type: Grant
    Filed: June 16, 2011
    Date of Patent: December 23, 2014
    Assignee: Microsoft Corporation
    Inventors: Stephen Harris Toub, Mads Torgersen, Lucian Jules Wischik, Anders Hejlsberg, Niklas Gustafsson, Dmitry Lomov, Matthew J. Warren
  • Patent number: 8572585
    Abstract: The present invention extends to methods, systems, and computer program products for representing various programming elements with compiler-generated tasks. Embodiments of the invention enable access to the future state of a method through a handle to a single and composable task object. For example, an asynchronous method is rewritten to generate and return a handle to an instance of a builder object, which represents one or more future states of the asynchronous method. Information about operation of the asynchronous method is then passed through the handle. Accordingly, state of the asynchronous method is trackable prior to and after completing.
    Type: Grant
    Filed: June 16, 2011
    Date of Patent: October 29, 2013
    Assignee: Microsoft Corporation
    Inventors: Stephen Harris Toub, Mads Torgersen, Lucian Jules Wishchik, Anders Hejlsberg, Dmitry Lomov, Matthew J. Warren, Robert Eric Lippert
  • Patent number: 8521721
    Abstract: Embodiments are directed to implementing custom operators in a query for a parallel query engine and to generating a partitioned representation of a sequence of query operators in a parallel query engine. A computer system receives a portion of partitioned input data at a parallel query engine, where the parallel query engine is configured to process data queries in parallel, and where the queries include a sequence of built-in operators. The computer system incorporates a custom operator into the sequence of built-in operators for a query and accesses the sequence of operators to determine how the partitioned input data is to be processed. The custom operator is accessed in the same manner as the built-in operators. The computer system also processes the sequence of operators including both the built-in operators and at least one custom operator according to the determination indicating how the data is to be processed.
    Type: Grant
    Filed: September 14, 2010
    Date of Patent: August 27, 2013
    Assignee: Microsoft Corporation
    Inventors: Stephen Harris Toub, Igor Ostrovsky, Mike Liddell
  • Publication number: 20130117257
    Abstract: Techniques for efficiently performing queries are provided. A search component can receive a request for information based on data, and a management component can determine a degree of accuracy requested for the information. In turn, the search component can render the information based on the degree of accuracy requested. In an aspect, the search generates a query configured to determine the first information, and the management component instructs the search component to perform the query to a level of completion less than full completion when the degree of accuracy requested is below a predetermined threshold to cause the search component to render an estimation of the first information. In another aspect, a tracking component can track information associated with multiple query requests and an analysis determine and employ a related aspect of the tracked information to a new query request to determine an answer for a the new query request.
    Type: Application
    Filed: November 3, 2011
    Publication date: May 9, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Henricus Johannes Maria Meijer, Michael Isard, Alexander Sasha Stojanovic, Carl Carter-Schwendler, Stephen Harris Toub
  • Publication number: 20130110876
    Abstract: Permission based query processing techniques are provided for protecting privacy. A monitoring component can be provided to receive or intercept queries directed at a datastore, and a privacy component is provided that analyzes permissions associated with the queries. The privacy component can also determine access levels of the queries based on the analysis of the permissions. A response component can then be provided to answer the queries in accordance with the access levels of the queries. While the response component is answering the queries, it can also mask the data in the datastore through a variety of techniques disclosed herein. In other embodiments, query responses can be filtered based on query contexts and data from two or more datastores can be compared and similarities identified without exposing the data from either datastore.
    Type: Application
    Filed: October 28, 2011
    Publication date: May 2, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Henricus Johannes Maria Meijer, Evelyne Viegas, Savas Parastatidis, Stephen Harris Toub
  • Patent number: 8392920
    Abstract: Partitioning query execution work of a sequence including a plurality of elements. A method includes a worker core requesting work from a work queue. In response, the worker core receives a task from the work queue. The task is a replicable sequence-processing task including two distinct steps: scheduling a copy of the task on the scheduler queue and processing a sequence. The worker core processes the task by: creating a replica of the task and placing the replica of the task on the work queue, and beginning processing the sequence. The acts are repeated for one or more additional worker cores, where receiving a task from the work queue is performed by receiving one or more replicas of tasks placed on the task queue by earlier performances of creating a replica of the task and placing the replica of the task on the work queue by a different worker core.
    Type: Grant
    Filed: January 27, 2010
    Date of Patent: March 5, 2013
    Assignee: Microsoft Corporation
    Inventors: Igor Ostrovsky, John J. Duffy, Stephen Harris Toub
  • Publication number: 20120324431
    Abstract: The present invention extends to methods, systems, and computer program products for transforming source code to await execution of asynchronous operations. Embodiments of the invention simplify authoring and use of asynchronous methods, by generating statements that use well-defined awaitable objects to await completion of asynchronous operations. For example, a computer system can transform a statement that requests to await the completion of an asynchronous operation into a plurality of statements that use a predefined pattern of members of an awaitable object corresponding the asynchronous operation. The pattern can include one or more members configured to return a completion status of the asynchronous operation, one or more members configured to resume execution of the asynchronous method at a resumption point when the asynchronous operation completes, and one or more members configured to retrieve completion results.
    Type: Application
    Filed: June 16, 2011
    Publication date: December 20, 2012
    Applicant: Microsoft Corporation
    Inventors: Stephen Harris Toub, Mads Torgersen, Lucian Jules Wischik, Anders Hejlsberg, Niklas Gustafsson, Dmitry Lomov, Matthew J. Warren
  • Publication number: 20120324457
    Abstract: The present invention extends to methods, systems, and computer program products for representing various programming elements with compiler-generated tasks. Embodiments of the invention enable access to the future state of a method through a handle to a single and composable task object. For example, an asynchronous method is rewritten to generate and return a handle to an instance of a builder object, which represents one or more future states of the asynchronous method. Information about operation of the asynchronous method is then passed through the handle. Accordingly, state of the asynchronous method is trackable prior to and after completing.
    Type: Application
    Filed: June 16, 2011
    Publication date: December 20, 2012
    Applicant: Microsoft Corporation
    Inventors: Stephen Harris Toub, Mads Torgersen, Lucian Jules Wischik, Anders Hejlsberg, Dmitry Lomov, Matthew J. Warren, Robert Eric Lippert
  • Publication number: 20120066250
    Abstract: Embodiments are directed to implementing custom operators in a query for a parallel query engine and to generating a partitioned representation of a sequence of query operators in a parallel query engine. A computer system receives a portion of partitioned input data at a parallel query engine, where the parallel query engine is configured to process data queries in parallel, and where the queries include a sequence of built-in operators. The computer system incorporates a custom operator into the sequence of built-in operators for a query and accesses the sequence of operators to determine how the partitioned input data is to be processed. The custom operator is accessed in the same manner as the built-in operators. The computer system also processes the sequence of operators including both the built-in operators and at least one custom operator according to the determination indicating how the data is to be processed.
    Type: Application
    Filed: September 14, 2010
    Publication date: March 15, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Stephen Harris Toub, Igor Ostrovsky, Mike Liddell
  • Publication number: 20110185358
    Abstract: Partitioning query execution work of a sequence including a plurality of elements. A method includes a worker core requesting work from a work queue. In response, the worker core receives a task from the work queue. The task is a replicable sequence-processing task including two distinct steps: scheduling a copy of the task on the scheduler queue and processing a sequence. The worker core processes the task by: creating a replica of the task and placing the replica of the task on the work queue, and beginning processing the sequence. The acts are repeated for one or more additional worker cores, where receiving a task from the work queue is performed by receiving one or more replicas of tasks placed on the task queue by earlier performances of creating a replica of the task and placing the replica of the task on the work queue by a different worker core.
    Type: Application
    Filed: January 27, 2010
    Publication date: July 28, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Igor Ostrovsky, John J. Duffy, Stephen Harris Toub