-
Notifications
You must be signed in to change notification settings - Fork 215
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
Fix Router performance issue #4327
Conversation
Signed-off-by: Krishna Kondaka <[email protected]>
@@ -24,11 +24,13 @@ public class Router { | |||
private final RouteEventEvaluator routeEventEvaluator; | |||
private final DataFlowComponentRouter dataFlowComponentRouter; | |||
private final Consumer<Event> noRouteHandler; | |||
private Set<Record> recordsUnRouted; |
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.
This is not thread-safe. Is there a particular reason you moved it to the field? I say we just keep this as a local variable.
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.
This should help make it final:
final Set<Record> recordsUnRouted;
if (!allRecordsRouted) {
recordsUnRouted = new HashSet<>(allRecords);
} else {
recordsUnRouted = null;
}
Signed-off-by: Krishna Kondaka <[email protected]>
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.
Thanks!
* Fix Router performance issue Signed-off-by: Krishna Kondaka <[email protected]> * Addressed comments Signed-off-by: Krishna Kondaka <[email protected]> --------- Signed-off-by: Krishna Kondaka <[email protected]> Co-authored-by: Krishna Kondaka <[email protected]> (cherry picked from commit 51ee0df)
* Fix Router performance issue Signed-off-by: Krishna Kondaka <[email protected]> * Addressed comments Signed-off-by: Krishna Kondaka <[email protected]> --------- Signed-off-by: Krishna Kondaka <[email protected]> Co-authored-by: Krishna Kondaka <[email protected]> (cherry picked from commit 51ee0df) Co-authored-by: Krishna Kondaka <[email protected]>
Description
Fix Router performance issue.
PR #3959 added
removeAll
to Router code. This method is very expensive in cases with ArrayLists(). Replacing it with for loop that removes individual records.Also, added a performance optimization to avoid populating
recordsUnRouted
if there is at least one sink to which all records are routed.Issues Resolved
Resolves #[Issue number to be closed when this PR is merged]
Check List
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.