Patents by Inventor Mike Liddell
Mike Liddell 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: 11163677Abstract: Dynamically allocated thread storage in a computing device is disclosed. The dynamically allocated thread storage is configured to work with a process including two or more threads. Each thread includes a statically allocated thread-local slot configured to store a table. Each table is configured to include a table slot corresponding with a dynamically allocated thread-local value. A dynamically allocated thread-local instance corresponds with the table slot.Type: GrantFiled: November 20, 2018Date of Patent: November 2, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Igor Ostrovsky, Joseph E. Hoag, Stephen H. Toub, Mike Liddell
-
Publication number: 20190087316Abstract: Dynamically allocated thread storage in a computing device is disclosed. The dynamically allocated thread storage is configured to work with a process including two or more threads. Each thread includes a statically allocated thread-local slot configured to store a table. Each table is configured to include a table slot corresponding with a dynamically allocated thread-local value. A dynamically allocated thread-local instance corresponds with the table slot.Type: ApplicationFiled: November 20, 2018Publication date: March 21, 2019Applicant: Microsoft Technology Licensing, LLCInventors: Igor Ostrovsky, Joseph E. Hoag, Stephen H. Toub, Mike Liddell
-
Patent number: 10133660Abstract: Dynamically allocated thread storage in a computing device is disclosed. The dynamically allocated thread storage is configured to work with a process including two or more threads. Each thread includes a statically allocated thread-local slot configured to store a table. Each table is configured to include a table slot corresponding with a dynamically allocated thread-local value. A dynamically allocated thread-local instance corresponds with the table slot.Type: GrantFiled: May 31, 2016Date of Patent: November 20, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Igor Ostrovsky, Joseph E. Hoag, Stephen H. Toub, Mike Liddell
-
Publication number: 20160275010Abstract: Dynamically allocated thread storage in a computing device is disclosed. The dynamically allocated thread storage is configured to work with a process including two or more threads. Each thread includes a statically allocated thread-local slot configured to store a table. Each table is configured to include a table slot corresponding with a dynamically allocated thread-local value. A dynamically allocated thread-local instance corresponds with the table slot.Type: ApplicationFiled: May 31, 2016Publication date: September 22, 2016Applicant: Microsoft Technology Licensing, LLCInventors: Igor Ostrovsky, Joseph E. Hoag, Stephen H. Toub, Mike Liddell
-
Patent number: 9354932Abstract: Dynamically allocated thread storage in a computing device is disclosed. The dynamically allocated thread storage is configured to work with a process including two or more threads. Each thread includes a statically allocated thread-local slot configured to store a table. Each table is configured to include a table slot corresponding with a dynamically allocated thread-local value. A dynamically allocated thread-local instance corresponds with the table slot.Type: GrantFiled: June 21, 2011Date of Patent: May 31, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Igor Ostrovsky, Joseph E. Hoag, Stephen H. Toub, Mike Liddell
-
Patent number: 9229788Abstract: A method of performing a wait operation includes creating a first plurality of tasks and a continuation task. The continuation task represents a second plurality of tasks. The continuation task and each of the tasks in the first plurality have an associated wait handle. The wait handles for the first plurality of tasks and the continuation task are stored in an array. A wait operation is performed on the array, thereby waiting for at least one of the tasks in the first and second pluralities to complete.Type: GrantFiled: March 26, 2010Date of Patent: January 5, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Stephen H. Toub, Joseph E. Hoag, Huseyin S. Yildiz, Danny S. Shih, Mike Liddell, John Duffy
-
Patent number: 8996556Abstract: A method of parallel processing an ordered input data stream that includes a plurality of input data elements and a corresponding plurality of order keys for indicating an ordering of the input data elements, with each order key associated with one of the input data elements, includes processing the input data stream in a parallel manner with a plurality of worker units, thereby generating a plurality of sets of output data elements. The plurality of sets of output data elements is stored in a plurality of buffers, with each buffer associated with one of the worker units. An ordered output data stream is output while the input data stream is being processed by outputting selected output data elements from the buffers in an order that is based on the order keys.Type: GrantFiled: June 5, 2009Date of Patent: March 31, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Igor Ostrovsky, John Duffy, Mike Liddell
-
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
-
Patent number: 8359604Abstract: A method of handling an exception in a parallel system includes constructing a task object, executing a method with the task object, and catching an exception with the task object during execution of the method. The exception is propagated in response to the task object becoming inaccessible without the exception having been observed.Type: GrantFiled: January 22, 2009Date of Patent: January 22, 2013Assignee: Microsoft CorporationInventors: John Duffy, Stephen Toub, Huseyin Yildiz, Mike Liddell
-
Publication number: 20120331475Abstract: Dynamically allocated thread storage in a computing device is disclosed. The dynamically allocated thread storage is configured to work with a process including two or more threads. Each thread includes a statically allocated thread-local slot configured to store a table. Each table is configured to include a table slot corresponding with a dynamically allocated thread-local value. A dynamically allocated thread-local instance corresponds with the table slot.Type: ApplicationFiled: June 21, 2011Publication date: December 27, 2012Applicant: MICROSOFT CORPORATIONInventors: Igor Ostrovsky, Joseph E. Hoag, Stephen H. Toub, Mike Liddell
-
Patent number: 8327383Abstract: A method of performing a cancellation of concurrent worker objects includes creating a plurality of concurrent worker objects with a manager object. At least one cancellation object is generated with the manager object. The at least one cancellation object includes a cancel method and a register method that support concurrent calls. A callback function is registered by calling the register method with one of the concurrent worker objects. A cancellation of the concurrent worker objects is requested by calling the cancel method with the manager object.Type: GrantFiled: March 19, 2010Date of Patent: December 4, 2012Assignee: Microsoft CorporationInventors: Mike Liddell, John Duffy
-
Patent number: 8266172Abstract: A method of analyzing a data parallel query includes receiving a user-specified data parallel query that includes a plurality of query operators. An operator type for each of the query operators is identified based on a type of parallel input data structure the operator operates on and a type of parallel output data structure the operator outputs. It is determined whether the query is a prohibited query based on the identified operator types.Type: GrantFiled: April 3, 2009Date of Patent: September 11, 2012Assignee: Microsoft CorporationInventors: Igor Ostrovsky, John Duffy, Mike Liddell, Edward G. Essey, Stephen H. Toub
-
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
-
Patent number: 8041677Abstract: Embodiments of the present invention are directed to Web-Services-based data backup and data-archiving applications that provide remote data backup and data archiving to private individuals, small businesses, and other organizations that need reliable, secure, geographically remote, and cost-effective data backup, data archiving, and backed-up and archived-data retrieval. In one embodiment of the present invention, a private or small-business client contracts with a service provider for data-backup and data-archiving services. The service provider, in turn, contracts with a remote data-storage facility to provide secure, reliable data backup and data archiving to the personal or small-business client. A client-side application is downloaded to the client computer and configured to allow the client to store locally encrypted data at the remote, data-storage facilities. Neither the service provider nor the data-storage facility can decrypt or otherwise access the information stored by the client.Type: GrantFiled: October 12, 2006Date of Patent: October 18, 2011Assignee: Datacastle CorporationInventors: Gary Steven Sumner, Jaybe Mark Ammons, Mike Liddell
-
Publication number: 20110239217Abstract: A method of performing a wait operation includes creating a first plurality of tasks and a continuation task. The continuation task represents a second plurality of tasks. The continuation task and each of the tasks in the first plurality have an associated wait handle. The wait handles for the first plurality of tasks and the continuation task are stored in an array. A wait operation is performed on the array, thereby waiting for at least one of the tasks in the first and second pluralities to complete.Type: ApplicationFiled: March 26, 2010Publication date: September 29, 2011Applicant: Microsoft CorporationInventors: Stephen H. Toub, Joseph E. Hoag, Huseyin S. Yildiz, Danny S. Shih, Mike Liddell, John Duffy
-
Publication number: 20110231861Abstract: A method of performing a cancellation of concurrent worker objects includes creating a plurality of concurrent worker objects with a manager object. At least one cancellation object is generated with the manager object. The at least one cancellation object includes a cancel method and a register method that support concurrent calls. A callback function is registered by calling the register method with one of the concurrent worker objects. A cancellation of the concurrent worker objects is requested by calling the cancel method with the manager object.Type: ApplicationFiled: March 19, 2010Publication date: September 22, 2011Applicant: MICROSOFT CORPORATIONInventors: Mike Liddell, John Duffy
-
Publication number: 20100312801Abstract: A method of parallel processing an ordered input data stream that includes a plurality of input data elements and a corresponding plurality of order keys for indicating an ordering of the input data elements, with each order key associated with one of the input data elements, includes processing the input data stream in a parallel manner with a plurality of worker units, thereby generating a plurality of sets of output data elements. The plurality of sets of output data elements is stored in a plurality of buffers, with each buffer associated with one of the worker units. An ordered output data stream is output while the input data stream is being processed by outputting selected output data elements from the buffers in an order that is based on the order keys.Type: ApplicationFiled: June 5, 2009Publication date: December 9, 2010Applicant: Microsoft CorporationInventors: Igor Ostrovsky, John Duffy, Mike Liddell
-
Publication number: 20100257191Abstract: A method of analyzing a data parallel query includes receiving a user-specified data parallel query that includes a plurality of query operators. An operator type for each of the query operators is identified based on a type of parallel input data structure the operator operates on and a type of parallel output data structure the operator outputs. It is determined whether the query is a prohibited query based on the identified operator types.Type: ApplicationFiled: April 3, 2009Publication date: October 7, 2010Applicant: Microsoft CorporationInventors: Igor Ostrovsky, John Duffy, Mike Liddell, Edward G. Essey, Stephen H. Toub
-
Publication number: 20100185840Abstract: A method of handling an exception in a parallel system includes constructing a task object, executing a method with the task object, and catching an exception with the task object during execution of the method. The exception is propagated in response to the task object becoming inaccessible without the exception having been observed.Type: ApplicationFiled: January 22, 2009Publication date: July 22, 2010Applicant: Microsoft CorporationInventors: John Duffy, Stephen H. Toub, Huseyin S. Yildiz, Mike Liddell
-
Publication number: 20070100913Abstract: Embodiments of the present invention are directed to Web-Services-based data backup and data-archiving applications that provide remote data backup and data archiving to private individuals, small businesses, and other organizations that need reliable, secure, geographically remote, and cost-effective data backup, data archiving, and backed-up and archived-data retrieval. In one embodiment of the present invention, a private or small-business client contracts with a service provider for data-backup and data-archiving services. The service provider, in turn, contracts with a remote data-storage facility to provide secure, reliable data backup and data archiving to the personal or small-business client. A client-side application is downloaded to the client computer and configured to allow the client to store locally encrypted data at the remote, data-storage facilities. Neither the service provider nor the data-storage facility can decrypt or otherwise access the information stored by the client.Type: ApplicationFiled: October 12, 2006Publication date: May 3, 2007Inventors: Gary Sumner, Jaybe Ammons, Mike Liddell