-
Notifications
You must be signed in to change notification settings - Fork 133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change DICOM storage stop behavior to soft stop #684
Conversation
- let the index queue worker thread finish processing all items in queue before exiting - do not interrupt ongoing indexing tasks
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Putting this on hold because an index worker thread already waiting on |
- periodically poll from priority queue instead of take, giving the thread an opportunity to exit after DICOM storage was stopped
Mostly replaced There is also room for implementing a hard stop in the future, should we ever want that. |
after discussion, we decided to reuse the thread. |
- move IndexQueueWorker to a dedicated class - start index worker thread when needed - do not halt index worker thread when service is stopped
I can say that this is working as intended now. Indexing continues to work for a TCP connection, even if the storage service is stopped midway. Subsequent TCP connections are not possible, as expected. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The PR works as intended.
I ran a traffic generator that sends DICOM files over CSTORE, and studies are no longer interrupted if they are mid-transfer. Subsequent transfers cannot be performed, as intended.
LGTM!
#664 introduced a mechanism which stops the DICOM storage service's indexer worker thread when the service is stopped by request. An unwanted side-effect of this is that stopping the storage service will halt any pending requests to index files already in storage, leaving them in the state of stored but not indexed.
Summary