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).

  • Publication number: 20120117551
    Abstract: Source code is generated that includes one or more iterator-based expressions such as declarative queries. The source code is translated into an intermediate language that classifies operators making up the iterator-based expressions into classes based on whether the operators are aggregating, element-wise, or sink operators. The intermediate language, including the identified classes, is processed using an automaton to replace the iterator-based expressions with one or more equivalent non-iterator-based expressions. Where an iterator-based expression is nested, the nested expression is processed using an equivalent number of nested automatons. The resulting optimized source code may be compiled and executed using fewer virtual function calls than the equivalent non-optimized source code.
    Type: Application
    Filed: November 10, 2010
    Publication date: May 10, 2012
    Applicant: Microsoft Corporation
    Inventors: Michael Isard, Yuan Yu, Derek Gordon Murray
  • 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: 7987365
    Abstract: A subscription-based computing device has hardware and a subscription enforcer implemented in the hardware. The enforcer has an accumulator that accumulates a usage value as the computing device is being used and an expiration value register that stores an expiration value. The enforcer allows the computing device to operate in a subscription mode without hindrance and with full use when the usage value is less than the stored expiration value, and allows the computing device to operate in an expiration mode with hindrance and without full use when the usage value reaches the stored expiration value to signal that the subscription for the computing device has expired.
    Type: Grant
    Filed: March 24, 2006
    Date of Patent: July 26, 2011
    Assignee: Microsoft Corporation
    Inventors: Andrew David Birrell, Charles P. Thacker, Michael Isard
  • Publication number: 20110067030
    Abstract: A job scheduler may schedule concurrent distributed jobs in a computer cluster by assigning tasks from the running jobs to compute nodes while balancing fairness with efficiency. Determining which tasks to assign to the compute nodes may be performed using a network flow graph. The weights on at least some of the edges of the graph encode data locality, and the capacities provide constraints that ensure fairness. A min-cost flow technique may be used to perform an assignment of the tasks represented by the network flow graph. Thus, online task scheduling with locality may be mapped onto a network flow graph, which in turn may be used to determine a scheduling assignment using min-cost flow techniques. The costs may encode data locality, fairness, and starvation-freedom.
    Type: Application
    Filed: September 16, 2009
    Publication date: March 17, 2011
    Applicant: Microsoft Corporation
    Inventors: Michael Isard, Vijayan Prabhakaran, Jonathan James Currey, Ehud Wieder, Kunal Talwar
  • 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
  • Publication number: 20100312777
    Abstract: An efficient manner of performing an M-out-of-N partial matching search of indexed documents (e.g., web pages) is provided herein. More particularly, indexed words are arranged into a global location space (GLS), providing for respective occurrences of words in indexed documents being searched to have continuous locations on a one-dimensional GLS. Documents within the GLS are separated by end of document word marking boundaries between consecutive documents. The query words are then separated into an active set, comprising the left-most query words, and a non-active set. A partial matching operator transverses the GLS, applying active geometric constraints, in a sequential manner, to words in the active set. This causes shifting of the active set along the GLS to comprise M left-most query words. If a document satisfies constraints associated with M words in an active set, the document comprises at least M-out-of-N words.
    Type: Application
    Filed: June 5, 2009
    Publication date: December 9, 2010
    Applicant: Microsoft Corporation
    Inventors: Qifa Ke, Michael Isard
  • 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: 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: 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: 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
  • Publication number: 20100205588
    Abstract: General-purpose distributed data-parallel computing using a high-level language is disclosed. 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. The distributed execution plan is then executed on large compute clusters. Thus, the developer is allowed to write the program using familiar programming constructs in the high level language. Moreover, developers without experience with distributed compute systems are able to take advantage of such systems.
    Type: Application
    Filed: February 9, 2009
    Publication date: August 12, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Yuan Yu, Dennis Fetterly, Michael Isard, Ulfar Erlingsson, Mihai Budiu
  • Publication number: 20100195914
    Abstract: Methods are disclosed for finding images from a large corpus of images that at least partially match a query image. The present method makes use of feature detectors to bundle features into local groups or bundles. These bundled features are repeatable and much more discriminative than an individual SIFT feature. Equally importantly, the bundled features provide a flexible representation that allows simple and robust geometric constraints to be efficiently enforced when querying the index.
    Type: Application
    Filed: February 2, 2009
    Publication date: August 5, 2010
    Inventors: Michael Isard, Qifa Ke, Jian Sun, Zhong Wu
  • 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
  • Patent number: 7680789
    Abstract: Index entries representing ranges of values are queried with a query value to determine if the query value is in one of the ranges. Numeric ranges are represented in an index and queries are constructed to match index entries. Search terms are constructed from the query value, such that a search term matches an index entry if and only if the queried for valued is in the range represented by the index entry. To facilitate querying the indexes, queries are constructed to contain search terms having a data structure format similar to that of the index entries.
    Type: Grant
    Filed: January 18, 2006
    Date of Patent: March 16, 2010
    Assignee: Microsoft Corporation
    Inventors: Gaurav Sareen, Michael A. Isard
  • Publication number: 20090210457
    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: Application
    Filed: February 19, 2008
    Publication date: August 20, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Martin Abadi, Andrew D. Birrell, Timothy L. Harris, Michael A. Isard, Johnson Hsieh
  • Publication number: 20090204969
    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: Application
    Filed: February 11, 2008
    Publication date: August 13, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Martin Abadi, Andrew D. Birrell, Timothy L. Harris, Michael A. Isard, Johnson Ta-Chung Hsieh
  • Publication number: 20080098375
    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: Application
    Filed: September 29, 2006
    Publication date: April 24, 2008
    Applicant: Microsoft Corporation
    Inventor: Michael A. Isard
  • Publication number: 20080082644
    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 system resources are used efficiently. The system is designed to scale from a small cluster of a few computers, or the multiple CPU cores on a powerful single computer, up to a data center containing thousands of servers.
    Type: Application
    Filed: September 29, 2006
    Publication date: April 3, 2008
    Applicant: Microsoft Corporation
    Inventors: Michael A. Isard, Andrew D. Birrell, Mihai-Dan Budiu, Yuan Yu, Dennis C. Fetterly