Patents by Inventor Michael A. Isard

Michael A. Isard 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: 10171284
    Abstract: A computer-readable storage medium stores computer-executable instructions that, when executed by a processor, perform operations including scheduling first and second threads to operate independently on first and second partitions of data. The operations include beginning a first operation on the first and second partitions by the first and second threads, respectively. The operations include tracking progress of the first operation by the first and second threads using a replicated data structure. The operations include, for a record on which the first operation will be performed, adding an entry to the replicated data structure with a timestamp indicating an epoch and iteration. The operations include determining a number of yet-to-be-processed records for a selected entry of the replicated data structure. The selected entry has the most recent timestamp for the first thread. The operations include terminating the first thread when the number of yet-to-be-processed records for the selected entry is zero.
    Type: Grant
    Filed: November 24, 2017
    Date of Patent: January 1, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Frank D. McSherry, Rebecca Isaacs, Michael A. Isard, Derek G. Murray
  • Publication number: 20180097684
    Abstract: A computer-readable storage medium stores computer-executable instructions that, when executed by a processor, perform operations including scheduling first and second threads to operate independently on first and second partitions of data. The operations include beginning a first operation on the first and second partitions by the first and second threads, respectively. The operations include tracking progress of the first operation by the first and second threads using a replicated data structure. The operations include, for a record on which the first operation will be performed, adding an entry to the replicated data structure with a timestamp indicating an epoch and iteration. The operations include determining a number of yet-to-be-processed records for a selected entry of the replicated data structure. The selected entry has the most recent timestamp for the first thread. The operations include terminating the first thread when the number of yet-to-be-processed records for the selected entry is zero.
    Type: Application
    Filed: November 24, 2017
    Publication date: April 5, 2018
    Inventors: Frank D. Mcsherry, Rebecca Isaacs, Michael A. Isard, Derek G. Murray
  • Patent number: 9832068
    Abstract: Various embodiments provide techniques for working with large-scale collections of data pertaining to real world systems, such as a social network, a roadmap/GPS system, etc. The techniques perform incremental, iterative, and interactive parallel computation using a coordination clock protocol, which applies to scheduling computations and managing resources such as memory and network resources, etc., in cyclic graphs including those resulting from a differential dataflow model that performs computations on differences in the collections of data.
    Type: Grant
    Filed: December 17, 2012
    Date of Patent: November 28, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Frank D. McSherry, Rebecca Isaacs, Michael A. Isard, Derek G. Murray
  • Patent number: 9165035
    Abstract: The techniques discussed herein efficiently perform data-parallel computations on collections of data by implementing a differential dataflow model that performs computations on differences in the collections of data. The techniques discussed herein describe defined operators for use in a data-parallel program that performs the computations on the determined differences between the collections of data by creating a lattice and indexing the differences in the collection of data according to the lattice.
    Type: Grant
    Filed: May 10, 2012
    Date of Patent: October 20, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Frank D. McSherry, Rebecca Isaacs, Michael A. Isard, Derek G. Murray
  • Publication number: 20140172939
    Abstract: Various embodiments provide techniques for working with large-scale collections of data pertaining to real world systems, such as a social network, a roadmap/GPS system, etc. The techniques perform incremental, iterative, and interactive parallel computation using a coordination clock protocol, which applies to scheduling computations and managing resources such as memory and network resources, etc., in cyclic graphs including those resulting from a differential dataflow model that performs computations on differences in the collections of data.
    Type: Application
    Filed: December 17, 2012
    Publication date: June 19, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Frank D. McSherry, Rebecca Isaacs, Michael A. Isard, Derek G. Murray
  • Publication number: 20130304744
    Abstract: The techniques discussed herein efficiently perform data-parallel computations on collections of data by implementing a differential dataflow model that performs computations on differences in the collections of data. The techniques discussed herein describe defined operators for use in a data-parallel program that performs the computations on the determined differences between the collections of data by creating a lattice and indexing the differences in the collection of data according to the lattice.
    Type: Application
    Filed: May 10, 2012
    Publication date: November 14, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Frank D. McSherry, Rebecca Isaacs, Michael A. Isard, Derek G. Murray
  • Patent number: 8473481
    Abstract: An image may be received, a portion of which corresponds to a surface of an object, such as a book, a CD, a DVD, a wine bottle, etc. The portion of the image that corresponds to the surface of the object is located. The portion of the image is compared with previously stored images of surfaces of objects to identify the object. A record of the object is created and added to a library. The record of the object may comprise the image of the object, the portion of the image which corresponds to the surface of the object, and/or the received image itself. The record may comprise an indicator of a location of the object.
    Type: Grant
    Filed: March 16, 2009
    Date of Patent: June 25, 2013
    Assignee: Microsoft Corporation
    Inventors: Oliver M. C. Williams, Michael A. Isard
  • Patent number: 8452106
    Abstract: Images in a database or collection of images are each divided into multiple partitions with each partition corresponding to an area of an image. The partitions in an image may overlap with each other. Min-hash sketches are generated for each of the partitions and stored with the images. A user may submit an image and request that an image that is a partial match for the submitted image be located in the image collection. The submitted image is similarly divided into partitions and min-hash sketches are generated from the partitions. The min-hash sketches are compared with the stored min-hash sketches for matches, and images having partitions whose sketches are matches are returned as partial matching images.
    Type: Grant
    Filed: March 23, 2010
    Date of Patent: May 28, 2013
    Assignee: Microsoft Corporation
    Inventors: Qifa Ke, Michael A. Isard, David Changsoo Lee
  • Patent number: 8239847
    Abstract: General-purpose distributed data-parallel computing using high-level computing languages is described. Data parallel portions of a sequential program written in a high-level language are automatically translated into a distributed execution plan. Map and reduction computations are automatically added to the plan. Patterns in the sequential program can be automatically identified to trigger map and reduction processing. Direct invocation of map and reduction processing is also provided. One or more portions of the reduce computation are pushed to the map stage and dynamic aggregation is inserted when possible. The system automatically identifies opportunities for partial reductions and aggregation, but also provides a set of extensions in a high-level computing language for the generation and optimization of the distributed execution plan. The extensions include annotations to declare functions suitable for these optimizations.
    Type: Grant
    Filed: March 18, 2009
    Date of Patent: August 7, 2012
    Assignee: Microsoft Corporation
    Inventors: Yuan Yu, Pradeep Kumar Gunda, Michael A Isard
  • Patent number: 8209664
    Abstract: General-purpose distributed data-parallel computing using high-level computing languages is described. Data parallel portions of a sequential program that is written by a developer in a high-level language are automatically translated into a distributed execution plan. A set of extensions to a sequential high-level computing language are provided to support distributed parallel computations and to facilitate generation and optimization of distributed execution plans. The extensions are fully integrated with the programming language, thereby enabling developers to write sequential language programs using known constructs while providing the ability to invoke the extensions to enable better generation and optimization of the execution plan for a distributed computing environment.
    Type: Grant
    Filed: March 18, 2009
    Date of Patent: June 26, 2012
    Assignee: Microsoft Corporation
    Inventors: Yuan Yu, Ulfar Erlingsson, Michael A Isard, Frank McSherry
  • Patent number: 8201142
    Abstract: A general purpose high-performance distributed execution engine can be used by developers to deploy large-scale distributed applications. To allow developers to easily make use of the distributed execution engine, a graph building language is proposed that enables developers to efficiently create graphs (e.g., direct acyclic graphs) that describe the subprograms to be executed and the flow of data between them. A job manager (or other appropriate entity) reads the description of the graph created with the graph building language, builds the graph based on that description, and intelligently distributes the subprograms according to the graph so that system resources are used efficiently. In one embodiment, the graph building language (and, thus, the description of the graph) includes syntax for replication, pointwise connect, cross connect and merge.
    Type: Grant
    Filed: September 29, 2006
    Date of Patent: June 12, 2012
    Assignee: Microsoft Corporation
    Inventors: Michael A. Isard, Andrew D. Birrell, Yuan Yu
  • Publication number: 20110246439
    Abstract: A query is annotated with a small sketch (e.g. a Bloom filter) that approximates a set of interest that is related to the query. The query and sketch may be forwarded to index servers that each stores a portion of a search engine corpus. Each of the index servers may filter documents using the sketch before returning results for aggregation. The sketch is designed so there may be false positives (results returned by authors not in the set), but no false negatives (all relevant results are returned). The final aggregated results set may be checked against the full set to remove false positives before returning the final results to the user.
    Type: Application
    Filed: April 6, 2010
    Publication date: October 6, 2011
    Applicant: Microsoft Corporation
    Inventors: Michael A. Isard, Marc A. Najork, Sean A. Suchter, Eric R. Scheel
  • Publication number: 20110235908
    Abstract: Images in a database or collection of images are each divided into multiple partitions with each partition corresponding to an area of an image. The partitions in an image may overlap with each other. Min-hash sketches are generated for each of the partitions and stored with the images. A user may submit an image and request that an image that is a partial match for the submitted image be located in the image collection. The submitted image is similarly divided into partitions and min-hash sketches are generated from the partitions. The min-hash sketches are compared with the stored min-hash sketches for matches, and images having partitions whose sketches are matches are returned as partial matching images.
    Type: Application
    Filed: March 23, 2010
    Publication date: September 29, 2011
    Applicant: Microsoft Corporation
    Inventors: Qifa Ke, Michael A. Isard, David Changsoo Lee
  • Patent number: 7908265
    Abstract: Strong semantics are provided to programs that are correctly synchronized in their use of transactions by using dynamic separation of objects that are accessed in transactions from those accessed outside transactions. At run-time, operations are performed to identify transitions between these protected and unprotected modes of access. Dynamic separation permits a range of hardware-based and software-based implementations which allow non-conflicting transactions to execute and commit in parallel. A run-time checking tool, analogous to a data-race detector, may be provided to test dynamic separation of transacted data and non-transacted data. Dynamic separation may be used in an asynchronous I/O library.
    Type: Grant
    Filed: February 19, 2008
    Date of Patent: March 15, 2011
    Assignee: Microsoft Corporation
    Inventors: Martin Abadi, Andrew D. Birrell, Timothy L. Harris, Michael A. Isard, Johnson Hsieh
  • Patent number: 7844959
    Abstract: A general purpose high-performance distributed execution engine for coarse-grained data-parallel applications is proposed that allows developers to easily create large-scale distributed applications without requiring them to master concurrency techniques beyond being able to draw a graph of the data-dependencies of their algorithms. Based on the graph, a job manager intelligently distributes the work load so that the resources of the execution engine are used efficiently. During runtime, the job manager (or other entity) can automatically modify the graph to improve efficiency. The modifications are based on runtime information, topology of the distributed execution engine, and/or the distributed application represented by the graph.
    Type: Grant
    Filed: September 29, 2006
    Date of Patent: November 30, 2010
    Assignee: Microsoft Corporation
    Inventor: Michael A. Isard
  • Publication number: 20100241827
    Abstract: General-purpose distributed data-parallel computing using high-level computing languages is described. Data parallel portions of a sequential program that is written by a developer in a high-level language are automatically translated into a distributed execution plan. A set of extensions to a sequential high-level computing language are provided to support distributed parallel computations and to facilitate generation and optimization of distributed execution plans. The extensions are fully integrated with the programming language, thereby enabling developers to write sequential language programs using known constructs while providing the ability to invoke the extensions to enable better generation and optimization of the execution plan for a distributed computing environment.
    Type: Application
    Filed: March 18, 2009
    Publication date: September 23, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Yuan Yu, Ulfar Erlingsson, Michael A. Isard, Frank McSherry
  • Publication number: 20100241828
    Abstract: General-purpose distributed data-parallel computing using high-level computing languages is described. Data parallel portions of a sequential program written in a high-level language are automatically translated into a distributed execution plan. Map and reduction computations are automatically added to the plan. Patterns in the sequential program can be automatically identified to trigger map and reduction processing. Direct invocation of map and reduction processing is also provided. One or more portions of the reduce computation are pushed to the map stage and dynamic aggregation is inserted when possible. The system automatically identifies opportunities for partial reductions and aggregation, but also provides a set of extensions in a high-level computing language for the generation and optimization of the distributed execution plan. The extensions include annotations to declare functions suitable for these optimizations.
    Type: Application
    Filed: March 18, 2009
    Publication date: September 23, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Yuan Yu, Pradeep Kumar Gunda, Michael A. Isard
  • Publication number: 20100235406
    Abstract: An image may be received, a portion of which corresponds to a surface of an object, such as a book, a CD, a DVD, a wine bottle, etc. The portion of the image that corresponds to the surface of the object is located. The portion of the image is compared with previously stored images of surfaces of objects to identify the object. A record of the object is created and added to a library. The record of the object may comprise the image of the object, the portion of the image which corresponds to the surface of the object, and/or the received image itself. The record may comprise an indicator of a location of the object.
    Type: Application
    Filed: March 16, 2009
    Publication date: September 16, 2010
    Applicant: Microsoft Corporation
    Inventors: Oliver M.C. Williams, Michael A. Isard
  • Patent number: 7730058
    Abstract: A probabilistic detector is utilized to query a database. Utilization of a probabilistic detector provides assurance with 100 per cent probability that a search expression in the query is not in the database index. The probabilistic detector is implemented in the form of a Bloom filter. The probabilistic detector is created by hashing expressions in the database index and mapping the resulting hash values into the probabilistic detector. Upon receiving a query, expressions of the query are hashed. The probabilistic detector is queried using these hash values. If the results of querying the probabilistic detector indicate that searched for information may be in the database, the database is not queried. If the results of querying the probabilistic detector indicate that the information may be in the database, the database is queried for the information using the original query. This technique is advantageous in mitigating detrimental effects of denial of service attacks.
    Type: Grant
    Filed: October 5, 2005
    Date of Patent: June 1, 2010
    Assignee: Microsoft Corporation
    Inventors: Gaurav Sareen, Mark Steven Manasse, Martin Abadi, Michael A. Isard
  • Patent number: 7714858
    Abstract: The disclosed embodiments relate to a rendering cluster that renders an image of a scene object. The rendering cluster may comprise an illumination node that produces illumination output based on lighting properties of the scene object and a material node that produces material output based on material properties of the scene object. The illumination output is combined with the material output to form the image.
    Type: Grant
    Filed: April 18, 2003
    Date of Patent: May 11, 2010
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Michael A. Isard, Alan B. Heirich, Mark A. Shand