-
Notifications
You must be signed in to change notification settings - Fork 470
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bugfix: Removed global filestore flush
The memcache filestore delays writes in order to batch them. This can cause race conditions in some cases. In particular when creating a download export zip, the GUI tries to access the file immediately. However if the writes are still in flight then it will not be able to find it. Previously this order was ensured by using FlushFilestore which is a global flush of all inflight writes. However, for memcache filestore on EFS this global flush is a performance killer since the filestore is locked for the duration of the flush. This appears as a deadlock where the entire process is blocked while an export is underway. This PR improves things in a number of ways: 1. The flushes are gone in the background - ensuring the filestore is not locked too long. 2. We avoid calling the global FlushFilestore by installing appropriate completion functions in the export functions. 3. The TTL cache is updated to allow for overriding the expiry behavior. This makes it simpler to avoid expiring files that are still open. Also this PR fixes a GUI issue where JSON parsing raises an exception for invalid data. Now the GUI handles it with a suitable default object.
- Loading branch information
Showing
31 changed files
with
180 additions
and
129 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.