Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
kvs-watch: improve watch cancel/disconnect performance
Problem: The performance of kvs-watch cancel and disconnect handling is very poor becuase the same operations to get the matchtag, credential, and route for the request message are duplicate on each match attempt. When there are many kvs watches active, this can take a significant amount of the kvs-watch module's time. (Profiling shows 7% of the total CPU time for the broker is spent in watcher_cancel_all() during a throughput test) Use struct flux_msg_match to capture the relevant request message data for the cancel/disconnect, then use flux_disconnect_match_ex() or flux_cancel_match_ex() so that this data can be reused for each match.
- Loading branch information