Patents by Inventor Joseph E. Hoag
Joseph E. Hoag 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: 9141422Abstract: A parallel execution runtime allows tasks to be executed concurrently in a runtime environment. The parallel execution runtime delegates the implementation of task queuing, dispatch, and thread management to one or more plug-in schedulers in a runtime environment of a computer system. The plug-in schedulers may be provided by user code or other suitable sources and include interfaces that operate in conjunction with the runtime. The runtime tracks the schedulers and maintains control of all aspects of the execution of tasks from user code including task initialization, task status, task waiting, task cancellation, task continuations, and task exception handling.Type: GrantFiled: May 18, 2010Date of Patent: September 22, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Stephen H. Toub, Huseyin S. Yildiz, Joseph E. Hoag, John J. Duffy, Danny Shih
-
Patent number: 8631279Abstract: The present invention extends to methods, systems, and computer program products for propagating unhandled exceptions in distributed execution environments, such as clusters. A job (e.g., a query) can include a series of computation steps that are executed on multiple compute nodes each processing parts of a distributed data set. Unhandled exceptions can be caught while computations are running on data partitions of different compute nodes. Unhandled exception objects can be stored in a serialized format in a compute node's local storage (or an alternate central location) along with auxiliary details such as the data partition being processed at the time. Stored serialized exception objects for a job can be harvested and aggregated in a single container object. The single container object can be passed back to the client.Type: GrantFiled: June 7, 2011Date of Patent: January 14, 2014Assignee: Microsoft CorporationInventors: Huseyin Serkan Yildiz, Massimo Mascaro, Joseph E. Hoag, Igor Ostrovsky
-
Patent number: 8392922Abstract: The present invention extends to methods, systems, and computer program products for marshaling results of nested tasks. Unwrap methods are used to reduce the level of task nesting and insure that appropriate results are marshaled between tasks. A proxy task is used to represent the aggregate asynchronous operation of a wrapping task and a wrapped task. The proxy task has a completion state that is at least indicative of the completion state of the aggregate asynchronous operation. The completion state of the aggregate asynchronous operation is determined and set from one or more of the completion state of the wrapping task and the wrapped task. The completion state of the proxy task can be conveyed to calling logic to indicate the completion state of the aggregate asynchronous operation to the calling logic.Type: GrantFiled: March 8, 2010Date of Patent: March 5, 2013Assignee: Microsoft CorporationInventors: Stephen H. Toub, Joseph E. Hoag, John J. Duffy, Danny S. Shih
-
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
-
Publication number: 20120317447Abstract: The present invention extends to methods, systems, and computer program products for propagating unhandled exceptions in distributed execution environments, such as clusters. A job (e.g., a query) can include a series of computation steps that are executed on multiple compute nodes each processing parts of a distributed data set. Unhandled exceptions can be caught while computations are running on data partitions of different compute nodes. Unhandled exception objects can be stored in a serialized format in a compute node's local storage (or an alternate central location) along with auxiliary details such as the data partition being processed at the time. Stored serialized exception objects for a job can be harvested and aggregated in a single container object. The single container object can be passed back to the client.Type: ApplicationFiled: June 7, 2011Publication date: December 13, 2012Applicant: Microsoft CorporationInventors: Huseyin Serkan Yildiz, Massimo Mascaro, Joseph E. Hoag, Igor Ostrovksy
-
Publication number: 20110289503Abstract: A parallel execution runtime allows tasks to be executed concurrently in a runtime environment. The parallel execution runtime delegates the implementation of task queuing, dispatch, and thread management to one or more plug-in schedulers in a runtime environment of a computer system. The plug-in schedulers may be provided by user code or other suitable sources and include interfaces that operate in conjunction with the runtime. The runtime tracks the schedulers and maintains control of all aspects of the execution of tasks from user code including task initialization, task status, task waiting, task cancellation, task continuations, and task exception handling.Type: ApplicationFiled: May 18, 2010Publication date: November 24, 2011Applicant: MICROSOFT CORPORATIONInventors: Stephen H. Toub, Huseyin S. Yildiz, Joseph E. Hoag, John J. Duffy, Danny Shih
-
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: 20110219380Abstract: The present invention extends to methods, systems, and computer program products for marshaling results of nested tasks. Unwrap methods are used to reduce the level of task nesting and insure that appropriate results are marshaled between tasks. A proxy task is used to represent the aggregate asynchronous operation of a wrapping task and a wrapped task. The proxy task has a completion state that is at least indicative of the completion state of the aggregate asynchronous operation. The completion state of the aggregate asynchronous operation is determined and set from one or more of the completion state of the wrapping task and the wrapped task. The completion state of the proxy task can be conveyed to calling logic to indicate the completion state of the aggregate asynchronous operation to the calling logic.Type: ApplicationFiled: March 8, 2010Publication date: September 8, 2011Applicant: Microsoft CorporationInventors: Stephen H. Toub, Joseph E. Hoag, John J. Duffy, Danny S. Shih
-
Patent number: 5859976Abstract: A data/video server having the following elements: n I/O access channel connectors, m storage arrays and a commutator which connects individual ones of the I/O access channel connectors to different individual ones of the storage arrays in accordance with a connection diagram with which the server is being operated in accordance with at a given time, further includes a system (operating in accordance with a method) for enabling it to implement operation in accordance with a new connection diagram (which can enable the bandwidth provided to one or more I/O access channels coupled thereto to be changed). That system includes a bandwidth manager for generating a new connection diagram; and a control system, coupled to the bandwidth manager, for obtaining the new connection diagram and causing the elements of the server to implement operation in accordance with the new connection diagram.Type: GrantFiled: July 29, 1996Date of Patent: January 12, 1999Assignee: Philips Electronics North America CorporationInventor: Joseph E. Hoag