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: 11163677
    Abstract: 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: Grant
    Filed: November 20, 2018
    Date of Patent: November 2, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Igor Ostrovsky, Joseph E. Hoag, Stephen H. Toub, Mike Liddell
  • Publication number: 20190087316
    Abstract: 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: Application
    Filed: November 20, 2018
    Publication date: March 21, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Igor Ostrovsky, Joseph E. Hoag, Stephen H. Toub, Mike Liddell
  • Patent number: 10133660
    Abstract: 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: Grant
    Filed: May 31, 2016
    Date of Patent: November 20, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Igor Ostrovsky, Joseph E. Hoag, Stephen H. Toub, Mike Liddell
  • Publication number: 20160275010
    Abstract: 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: Application
    Filed: May 31, 2016
    Publication date: September 22, 2016
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Igor Ostrovsky, Joseph E. Hoag, Stephen H. Toub, Mike Liddell
  • Patent number: 9354932
    Abstract: 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: Grant
    Filed: June 21, 2011
    Date of Patent: May 31, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Igor Ostrovsky, Joseph E. Hoag, Stephen H. Toub, Mike Liddell
  • Patent number: 9229788
    Abstract: 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: Grant
    Filed: March 26, 2010
    Date of Patent: January 5, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Stephen H. Toub, Joseph E. Hoag, Huseyin S. Yildiz, Danny S. Shih, Mike Liddell, John Duffy
  • Patent number: 8996556
    Abstract: 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: Grant
    Filed: June 5, 2009
    Date of Patent: March 31, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Igor Ostrovsky, John Duffy, Mike Liddell
  • Patent number: 8521721
    Abstract: 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: Grant
    Filed: September 14, 2010
    Date of Patent: August 27, 2013
    Assignee: Microsoft Corporation
    Inventors: Stephen Harris Toub, Igor Ostrovsky, Mike Liddell
  • Patent number: 8359604
    Abstract: 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: Grant
    Filed: January 22, 2009
    Date of Patent: January 22, 2013
    Assignee: Microsoft Corporation
    Inventors: John Duffy, Stephen Toub, Huseyin Yildiz, Mike Liddell
  • Publication number: 20120331475
    Abstract: 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: Application
    Filed: June 21, 2011
    Publication date: December 27, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Igor Ostrovsky, Joseph E. Hoag, Stephen H. Toub, Mike Liddell
  • Patent number: 8327383
    Abstract: 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: Grant
    Filed: March 19, 2010
    Date of Patent: December 4, 2012
    Assignee: Microsoft Corporation
    Inventors: Mike Liddell, John Duffy
  • Patent number: 8266172
    Abstract: 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: Grant
    Filed: April 3, 2009
    Date of Patent: September 11, 2012
    Assignee: Microsoft Corporation
    Inventors: Igor Ostrovsky, John Duffy, Mike Liddell, Edward G. Essey, Stephen H. Toub
  • Publication number: 20120066250
    Abstract: 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: Application
    Filed: September 14, 2010
    Publication date: March 15, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Stephen Harris Toub, Igor Ostrovsky, Mike Liddell
  • Patent number: 8041677
    Abstract: 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: Grant
    Filed: October 12, 2006
    Date of Patent: October 18, 2011
    Assignee: Datacastle Corporation
    Inventors: Gary Steven Sumner, Jaybe Mark Ammons, Mike Liddell
  • Publication number: 20110239217
    Abstract: 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: Application
    Filed: March 26, 2010
    Publication date: September 29, 2011
    Applicant: Microsoft Corporation
    Inventors: Stephen H. Toub, Joseph E. Hoag, Huseyin S. Yildiz, Danny S. Shih, Mike Liddell, John Duffy
  • Publication number: 20110231861
    Abstract: 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: Application
    Filed: March 19, 2010
    Publication date: September 22, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Mike Liddell, John Duffy
  • Publication number: 20100312801
    Abstract: 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: Application
    Filed: June 5, 2009
    Publication date: December 9, 2010
    Applicant: Microsoft Corporation
    Inventors: Igor Ostrovsky, John Duffy, Mike Liddell
  • Publication number: 20100257191
    Abstract: 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: Application
    Filed: April 3, 2009
    Publication date: October 7, 2010
    Applicant: Microsoft Corporation
    Inventors: Igor Ostrovsky, John Duffy, Mike Liddell, Edward G. Essey, Stephen H. Toub
  • Publication number: 20100185840
    Abstract: 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: Application
    Filed: January 22, 2009
    Publication date: July 22, 2010
    Applicant: Microsoft Corporation
    Inventors: John Duffy, Stephen H. Toub, Huseyin S. Yildiz, Mike Liddell
  • Publication number: 20070100913
    Abstract: 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: Application
    Filed: October 12, 2006
    Publication date: May 3, 2007
    Inventors: Gary Sumner, Jaybe Ammons, Mike Liddell