-
Notifications
You must be signed in to change notification settings - Fork 93
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feature(adaptive-timeouts): calculate timeouts based on node load
During testing scenarios with different machine types and load it's impossible to have one timeout value that fits all. Various operations take more time when node performance is lower or data load is higher. Implement `adaptive_timeout` context manager that will calculate right timeout value for given operation based on node load (performance, data size, and other factors). It is not raising any exceptions, just returns timeout value that may be used within context. When context takes longer duration than it, publish `SoftTimeoutEvent` with `Error` severity. Because calculating timeout is not straightforward, collect various 'load metrics' to Elasticearch db for future reference and testing. `SoftTimeoutEvent` has been refactored - dropped the context-manager related code as it is no longer needed. Supported `adaptive_timout` operations: - `DECOMMISSION` - timeout for nodetool decommision operation. Currently simple implementation, used for publishing `SoftTimeoutEvent` - `SOFT_TIMEOUT` - passing timeout provided in args. Other operations (like REPAIR, REBUILD, FLUSH etc. are created only for collecting timeout data in ES for future reference when designing timeout calcluators).
- Loading branch information
Showing
8 changed files
with
529 additions
and
97 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
Oops, something went wrong.