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: 8948461Abstract: 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: GrantFiled: April 29, 2005Date of Patent: February 3, 2015Assignee: Hewlett-Packard Development Company, L.P.Inventors: Adrian E. Broadhurst, John P. MacCormick, Donald O. Tanguay, Jr., Michael Harville
-
Patent number: 8560691Abstract: 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: GrantFiled: June 19, 2007Date of Patent: October 15, 2013Assignee: Microsoft CorporationInventors: Marcus J. Jager, John P. MacCormick, Douglas J. McCulloch
-
Patent number: 7926103Abstract: 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: GrantFiled: June 5, 2003Date of Patent: April 12, 2011Assignee: Hewlett-Packard Development Company, L.P.Inventors: Marcos K. Aguilera, Mark D. Lillibridge, John P. MacCormick
-
Patent number: 7734573Abstract: 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: GrantFiled: December 14, 2004Date of Patent: June 8, 2010Assignee: Microsoft CorporationInventors: John P. MacCormick, Chandramohan A. Thekkath, Lidong Zhou
-
Patent number: 7698258Abstract: 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: GrantFiled: June 2, 2006Date of Patent: April 13, 2010Assignee: Microsoft CorporationInventors: William R Hoffman, Marcus J. Jager, John P. MacCormick, Kristof Roomp, Chandramohan A. Thekkath
-
Patent number: 7685179Abstract: 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: GrantFiled: March 13, 2007Date of Patent: March 23, 2010Assignee: Microsoft CorporationInventor: John P. MacCormick
-
Patent number: 7676513Abstract: 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: GrantFiled: January 6, 2006Date of Patent: March 9, 2010Assignee: Microsoft CorporationInventors: Frank D. McSherry, John P. MacCormick
-
Patent number: 7636868Abstract: 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: GrantFiled: June 27, 2006Date of Patent: December 22, 2009Assignee: Microsoft CorporationInventors: William R. Hoffman, Marcus J. Jager, John P. MacCormick, Kristof Roomp, Chandramohan A. Thekkath, Lidong Zhou
-
Patent number: 7529891Abstract: 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: GrantFiled: September 19, 2005Date of Patent: May 5, 2009Assignee: Microsoft CorporationInventors: Chandramohan A. Thekkath, John P. MacCormick, Lidong Zhou, Nicholas Charles Murphy
-
Publication number: 20080320005Abstract: 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: ApplicationFiled: June 19, 2007Publication date: December 25, 2008Applicant: Microsoft CorporationInventors: Marcus J. Jager, John P. MacCormick, Douglas J. McCulloch
-
Publication number: 20080228836Abstract: 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: ApplicationFiled: March 13, 2007Publication date: September 18, 2008Applicant: Microsoft CorporationInventor: John P. MacCormick
-
Publication number: 20070299955Abstract: 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: ApplicationFiled: June 27, 2006Publication date: December 27, 2007Applicant: Microsoft CorporationInventors: William R. Hoffman, Marcus J. Jager, John P. MacCormick, Kristof Roomp, Chandramohan A. Thekkath, Lidong Zhou
-
Publication number: 20070282806Abstract: 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: ApplicationFiled: June 2, 2006Publication date: December 6, 2007Applicant: Microsoft CorporationInventors: William R. Hoffman, Marcus J. Jager, John P. MacCormick, Kristof Roomp, Chandramohan A. Thekkath