Thread management in a storage system
First Claim
1. A method comprising:
- generating one or more input/output (I/O) caller threads to operate a storage system;
generating, for each of the one or more I/O caller threads, one or more background provider threads associated with a given one of the I/O caller threads; and
synchronizing each of the one or more background provider threads with the associated I/O caller thread according to respective states of the I/O caller threads and the one or more background provider threads, the respective states indicated by at least one of associated context data and an associated synchronization object,wherein synchronizing the one or more background provider threads with the associated I/O caller thread comprises;
checking, by each background provider thread, a state of the associated I/O caller thread, and based upon the state of the associated I/O caller thread, posting, by each background provider thread, a state indicator to a mailbox field in a context of the associated I/O caller thread; and
checking, by each I/O caller thread, a state of the one or more associated background provider threads, and based upon the state of the one or more associated background provider threads, posting, by the associated I/O caller thread, a state indicator to a mailbox field in a context of the one or more background provider threads associated with the I/O caller thread, andwherein checking, by each background provider thread, a state of the associated I/O caller thread further comprises determining whether the associated I/O caller thread has exited and, if so, exiting the background provider thread without posting the state indicator to the mailbox field in the context of the associated I/O caller thread.
4 Assignments
0 Petitions
Accused Products
Abstract
Described embodiments provide systems and methods for operating a storage system. The storage system may generate one or more input/output (I/O) caller threads. For each of the I/O caller threads, one or more background provider threads may be generated that may be associated with the I/O caller thread. Instructions associated with the I/O caller threads and the background provider threads may be performed. Each of the one or more background provider threads may be synchronized with the associated I/O caller thread. Each thread may check a state of the associated threads, and based upon the state of the associated threads, each thread may post a state indicator to a mailbox field in a context of the associated threads.
135 Citations
15 Claims
-
1. A method comprising:
-
generating one or more input/output (I/O) caller threads to operate a storage system; generating, for each of the one or more I/O caller threads, one or more background provider threads associated with a given one of the I/O caller threads; and synchronizing each of the one or more background provider threads with the associated I/O caller thread according to respective states of the I/O caller threads and the one or more background provider threads, the respective states indicated by at least one of associated context data and an associated synchronization object, wherein synchronizing the one or more background provider threads with the associated I/O caller thread comprises; checking, by each background provider thread, a state of the associated I/O caller thread, and based upon the state of the associated I/O caller thread, posting, by each background provider thread, a state indicator to a mailbox field in a context of the associated I/O caller thread; and checking, by each I/O caller thread, a state of the one or more associated background provider threads, and based upon the state of the one or more associated background provider threads, posting, by the associated I/O caller thread, a state indicator to a mailbox field in a context of the one or more background provider threads associated with the I/O caller thread, and wherein checking, by each background provider thread, a state of the associated I/O caller thread further comprises determining whether the associated I/O caller thread has exited and, if so, exiting the background provider thread without posting the state indicator to the mailbox field in the context of the associated I/O caller thread. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising:
-
a processor; and memory storing computer program code that when executed on the processor causes the processor to operate a storage system, the storage system operable to perform the operations of; generating one or more input/output (I/O) caller threads to operate a storage system; generating, for each of the one or more I/O caller threads, one or more background provider threads associated with a given one of the I/O caller threads; and
synchronizing each of the one or more background provider threads with the associated I/O caller thread according to respective states of the I/O caller threads and the one or more background provider threads, the respective states indicated by at least one of associated context data and an associated synchronization object,wherein synchronizing the one or more background provider threads with the associated I/O caller thread comprises; checking, by each background provider thread, a state of the associated I/O caller thread, and based upon the state of the associated I/O caller thread, posting, by each background provider thread, a state indicator to a mailbox field in a context of the associated I/O caller thread; and checking, by each I/O caller thread, a state of the one or more associated background provider threads, and based upon the state of the one or more associated background provider threads, posting, by the associated I/O caller thread, a state indicator to a mailbox field in a context of the one or more background provider threads associated with the I/O caller thread, and wherein checking, by each background provider thread, a state of the associated I/O caller thread further comprises determining whether the associated I/O caller thread has exited and, if so, exiting the background provider thread without posting the state indicator to the mailbox field in the context of the associated I/O caller thread. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A computer program product including a non-transitory computer readable storage medium having computer program code encoded thereon that when executed on a processor of a computer causes the computer to operate a storage system, the computer program product comprising:
-
computer program code for generating one or more input/output (I/O) caller threads to operate a storage system; computer program code for generating, for each of the one or more I/O caller threads, one or more background provider threads associated with a given one of the I/O caller threads; and computer program code for synchronizing each of the one or more background provider threads with the associated I/O caller thread according to respective states of the I/O caller threads and the one or more background provider threads, the respective states indicated by at least one of associated context data and an associated synchronization object, wherein synchronizing the one or more background provider threads with the associated I/O caller thread comprises; checking, by each background provider thread, a state of the associated I/O caller thread, and based upon the state of the associated I/O caller thread, posting, by each background provider thread, a state indicator to a mailbox field in a context of the associated I/O caller thread; and checking, by each I/O caller thread, a state of the one or more associated background provider threads, and based upon the state of the one or more associated background provider threads, posting, by the associated I/O caller thread, a state indicator to a mailbox field in a context of the one or more background provider threads associated with the I/O caller thread, and wherein checking, by each background provider thread, a state of the associated I/O caller thread further comprises determining whether the associated I/O caller thread has exited and, if so, exiting the background provider thread without posting the state indicator to the mailbox field in the context of the associated I/O caller thread. - View Dependent Claims (14, 15)
-
Specification