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: 20190187965Abstract: 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: ApplicationFiled: December 15, 2017Publication date: June 20, 2019Inventor: STEPHEN HARRIS TOUB
-
Patent number: 9183407Abstract: 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: GrantFiled: October 28, 2011Date of Patent: November 10, 2015Assignee: Microsoft Technology Licensing LLCInventors: Henricus Johannes Maria Meijer, Evelyne Viegas, Savas Parastatidis, Stephen Harris Toub
-
Patent number: 8918767Abstract: 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: GrantFiled: June 16, 2011Date of Patent: December 23, 2014Assignee: Microsoft CorporationInventors: Stephen Harris Toub, Mads Torgersen, Lucian Jules Wischik, Anders Hejlsberg, Niklas Gustafsson, Dmitry Lomov, Matthew J. Warren
-
Patent number: 8572585Abstract: 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: GrantFiled: June 16, 2011Date of Patent: October 29, 2013Assignee: Microsoft CorporationInventors: Stephen Harris Toub, Mads Torgersen, Lucian Jules Wishchik, Anders Hejlsberg, Dmitry Lomov, Matthew J. Warren, Robert Eric Lippert
-
Patent number: 8521721Abstract: 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: GrantFiled: September 14, 2010Date of Patent: August 27, 2013Assignee: Microsoft CorporationInventors: Stephen Harris Toub, Igor Ostrovsky, Mike Liddell
-
Publication number: 20130117257Abstract: 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: ApplicationFiled: November 3, 2011Publication date: May 9, 2013Applicant: MICROSOFT CORPORATIONInventors: Henricus Johannes Maria Meijer, Michael Isard, Alexander Sasha Stojanovic, Carl Carter-Schwendler, Stephen Harris Toub
-
Publication number: 20130110876Abstract: 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: ApplicationFiled: October 28, 2011Publication date: May 2, 2013Applicant: MICROSOFT CORPORATIONInventors: Henricus Johannes Maria Meijer, Evelyne Viegas, Savas Parastatidis, Stephen Harris Toub
-
Patent number: 8392920Abstract: 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: GrantFiled: January 27, 2010Date of Patent: March 5, 2013Assignee: Microsoft CorporationInventors: Igor Ostrovsky, John J. Duffy, Stephen Harris Toub
-
Publication number: 20120324431Abstract: 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: ApplicationFiled: June 16, 2011Publication date: December 20, 2012Applicant: Microsoft CorporationInventors: Stephen Harris Toub, Mads Torgersen, Lucian Jules Wischik, Anders Hejlsberg, Niklas Gustafsson, Dmitry Lomov, Matthew J. Warren
-
Publication number: 20120324457Abstract: 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: ApplicationFiled: June 16, 2011Publication date: December 20, 2012Applicant: Microsoft CorporationInventors: Stephen Harris Toub, Mads Torgersen, Lucian Jules Wischik, Anders Hejlsberg, Dmitry Lomov, Matthew J. Warren, Robert Eric Lippert
-
Publication number: 20120066250Abstract: 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: ApplicationFiled: September 14, 2010Publication date: March 15, 2012Applicant: MICROSOFT CORPORATIONInventors: Stephen Harris Toub, Igor Ostrovsky, Mike Liddell
-
Publication number: 20110185358Abstract: 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: ApplicationFiled: January 27, 2010Publication date: July 28, 2011Applicant: MICROSOFT CORPORATIONInventors: Igor Ostrovsky, John J. Duffy, Stephen Harris Toub