Patents by Inventor John P. MacCormick

John P. MacCormick 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: 8948461
    Abstract: A method and system for estimating the three dimensional position of an object in a three dimensional physical space. Specifically, the method discloses capturing a plurality of images of a human form within the three dimensional (3D) physical space. Each of the plurality of images is captured from a different viewpoint location of the human form. At least one image capturing device calibrated within the 3D physical space is used to capture the images. A plurality of silhouettes of the human form is extracted from the plurality of images. A plurality of contours of an object of the human form is obtained from the plurality of silhouettes. A location of the object within the 3D physical space is determined from an object model of the object based on the plurality of contours.
    Type: Grant
    Filed: April 29, 2005
    Date of Patent: February 3, 2015
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Adrian E. Broadhurst, John P. MacCormick, Donald O. Tanguay, Jr., Michael Harville
  • Patent number: 8560691
    Abstract: Techniques are provided for moving an item from one item server to another item server in a distributed storage system, using a location service, APIs, and item states. There are three parties that transact with each other: a source item server, a destination item server, and a location service. Each item stored at the source has a move status, e.g., “stationary”, “source attempting transfer”, “destination accepting transfer”, or “destination attempting transfer”. Similarly, each item stored at the destination also has a move status, e.g., “stationary”, “source attempting transfer”, “destination accepting transfer”, or “destination attempting transfer”. The location service desirably has an entry for every item stored by the storage system. An item's entry may comprise the item's current location (e.g., an identifier of an item server) together with a state, such as “stable” or “attempting transfer”.
    Type: Grant
    Filed: June 19, 2007
    Date of Patent: October 15, 2013
    Assignee: Microsoft Corporation
    Inventors: Marcus J. Jager, John P. MacCormick, Douglas J. McCulloch
  • Patent number: 7926103
    Abstract: Preventing replay attacks on servers. At least one Bloom filter may be set up in a server for tracking requests received from clients. Identifying data may be generated for each request. The identifying data may be checked against the Bloom filter array. If a match is found, the message may be a replay and may be rejected. If a match is not found, the request identifying data may be added to the Bloom filter and the request may be processed.
    Type: Grant
    Filed: June 5, 2003
    Date of Patent: April 12, 2011
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Marcos K. Aguilera, Mark D. Lillibridge, John P. MacCormick
  • Patent number: 7734573
    Abstract: Methods and apparatuses are provided for recovering one or more replicated datasets. In accordance to some embodiments of the invention, this is accomplished by determining whether a log contains one or more entries indicating a corruption in a replicated data item; and recovering the replicated data item if the log contains any such entries. The log, however, is maintained at a higher layer in a software hierarchy than the layer at which the replicated data item is recovered. As a result, there is no need to maintain a separate replication log at the layer where the replicated data item is recovered.
    Type: Grant
    Filed: December 14, 2004
    Date of Patent: June 8, 2010
    Assignee: Microsoft Corporation
    Inventors: John P. MacCormick, Chandramohan A. Thekkath, Lidong Zhou
  • Patent number: 7698258
    Abstract: A searchable storage system indexes data, such as a blob (binary large object) as it is stored. The indexes are stored simultaneously with the data by the same storage mechanism. Data cannot be stored without indexing it. Any indexing technique may be used. The indexes are then used to access the data. This ensures that any inconsistencies can handled at the local level, and are not visible to clients of the system. Data can be put in to, or taken out from, the searchable storage system. Additionally, a query on the data in the searchable storage system may be performed.
    Type: Grant
    Filed: June 2, 2006
    Date of Patent: April 13, 2010
    Assignee: Microsoft Corporation
    Inventors: William R Hoffman, Marcus J. Jager, John P. MacCormick, Kristof Roomp, Chandramohan A. Thekkath
  • Patent number: 7685179
    Abstract: A deterministic technique is used for assigning locations to object replicas in a data center, while taking the various constraints into account that guarantee high availability and fast recovery. Example constraints include not putting the replicas on the same machine and not on the same rack, in case the rack or the network switch goes down. Also, because power distribution units (PDUs) can fail, the two replicas are not put on the same PDU. A solution is guaranteed to be found, if one exists.
    Type: Grant
    Filed: March 13, 2007
    Date of Patent: March 23, 2010
    Assignee: Microsoft Corporation
    Inventor: John P. MacCormick
  • Patent number: 7676513
    Abstract: While consulting indexes to conduct a search, a determination is made from time to time as to whether it is more efficient to consult individual indexes in a set or to merge the indexes and consult the merged index. The cost of merging indexes is compared with the cost of individually querying indexes. In accordance with the result of this comparison, the indexes are merged and the merged index is consulted, or the indexes are individually consulted. A cost-balance invariant in the form of an inequality is used to equate the cost of merging indexes to a weighted cost of individually querying indexes. As query events are received, the costs are updated. As long as the cost-balance invariant is not violated, indexes are merged and the merged index is queried. If the cost-balance invariant is violated, indexes are not merged, and the indexes are individually queried.
    Type: Grant
    Filed: January 6, 2006
    Date of Patent: March 9, 2010
    Assignee: Microsoft Corporation
    Inventors: Frank D. McSherry, John P. MacCormick
  • Patent number: 7636868
    Abstract: A global state management service manages replication in a distributed system. A distributed system can have several replica groups. The global state management service manages state associated with each replica group. Data replication is implemented without implementing an instance of a state machine on each device in a replica group. A replica group comprises a primary device and at least one secondary device. Each device in a replica group contains a replica of data of interest. The global state management service manages the allocation of primary and secondary devices. In the absence of a failure in either a primary device or a secondary device, read and write operations are performed without consulting the global state management service. When a failure is detected, the global state management service manages failover.
    Type: Grant
    Filed: June 27, 2006
    Date of Patent: December 22, 2009
    Assignee: Microsoft Corporation
    Inventors: William R. Hoffman, Marcus J. Jager, John P. MacCormick, Kristof Roomp, Chandramohan A. Thekkath, Lidong Zhou
  • Patent number: 7529891
    Abstract: Balanced prefetching automatically balances the benefits of prefetching data that has not been accessed recently against the benefits of caching recently accessed data, and can be applied to most types of structured data without needing application-specific details or hints. Balanced prefetching is performed in applications in a computer system, such as storage-centric applications, including file systems and databases. Balanced prefetching exploits the structure of the data being prefetched, providing superior application throughput. For a fixed amount of memory, it is automatically and dynamically determined how much memory should be devoted to prefetching.
    Type: Grant
    Filed: September 19, 2005
    Date of Patent: May 5, 2009
    Assignee: Microsoft Corporation
    Inventors: Chandramohan A. Thekkath, John P. MacCormick, Lidong Zhou, Nicholas Charles Murphy
  • Publication number: 20080320005
    Abstract: Techniques are provided for moving an item from one item server to another item server in a distributed storage system, using a location service, APIs, and item states. There are three parties that transact with each other: a source item server, a destination item server, and a location service. Each item stored at the source has a move status, e.g., “stationary”, “source attempting transfer”, “destination accepting transfer”, or “destination attempting transfer”. Similarly, each item stored at the destination also has a move status, e.g., “stationary”, “source attempting transfer”, “destination accepting transfer”, or “destination attempting transfer”. The location service desirably has an entry for every item stored by the storage system. An item's entry may comprise the item's current location (e.g., an identifier of an item server) together with a state, such as “stable” or “attempting transfer”.
    Type: Application
    Filed: June 19, 2007
    Publication date: December 25, 2008
    Applicant: Microsoft Corporation
    Inventors: Marcus J. Jager, John P. MacCormick, Douglas J. McCulloch
  • Publication number: 20080228836
    Abstract: A deterministic technique is used for assigning locations to object replicas in a data center, while taking the various constraints into account that guarantee high availability and fast recovery. Example constraints include not putting the replicas on the same machine and not on the same rack, in case the rack or the network switch goes down. Also, because power distribution units (PDUs) can fail, the two replicas are not put on the same PDU. A solution is guaranteed to be found, if one exists.
    Type: Application
    Filed: March 13, 2007
    Publication date: September 18, 2008
    Applicant: Microsoft Corporation
    Inventor: John P. MacCormick
  • Publication number: 20070299955
    Abstract: A global state management service manages replication in a distributed system. A distributed system can have several replica groups. The global state management service manages state associated with each replica group. Data replication is implemented without implementing an instance of a state machine on each device in a replica group. A replica group comprises a primary device and at least one secondary device. Each device in a replica group contains a replica of data of interest. The global state management service manages the allocation of primary and secondary devices. In the absence of a failure in either a primary device or a secondary device, read and write operations are performed without consulting the global state management service. When a failure is detected, the global state management service manages failover.
    Type: Application
    Filed: June 27, 2006
    Publication date: December 27, 2007
    Applicant: Microsoft Corporation
    Inventors: William R. Hoffman, Marcus J. Jager, John P. MacCormick, Kristof Roomp, Chandramohan A. Thekkath, Lidong Zhou
  • Publication number: 20070282806
    Abstract: A searchable storage system indexes data, such as a blob (binary large object) as it is stored. The indexes are stored simultaneously with the data by the same storage mechanism. Data cannot be stored without indexing it. Any indexing technique may be used. The indexes are then used to access the data. This ensures that any inconsistencies can handled at the local level, and are not visible to clients of the system. Data can be put in to, or taken out from, the searchable storage system. Additionally, a query on the data in the searchable storage system may be performed.
    Type: Application
    Filed: June 2, 2006
    Publication date: December 6, 2007
    Applicant: Microsoft Corporation
    Inventors: William R. Hoffman, Marcus J. Jager, John P. MacCormick, Kristof Roomp, Chandramohan A. Thekkath