GitHub user ahgittin opened a pull request:
https://github.com/apache/brooklyn-server/pull/816
[WIP] Tasks code improvements
Tidies up many things about tasks
* different types of execution follow the same code path
* scheduled tasks are tracked better
* remove deprecation
* optimize task execution, including removing soft references in submitters
* indicate (with `TODO`) where downstream improvements should be made
WIP here:
* clean up "schedule task" API
* wait for 0.12.0 RC branch (this should be done early in the next release
cycle)
This is prep work for the main event (which will be done in separate PRs):
* improve the tasks tree so ops users can explore it more naturally, esp
for init, publishing, and scheduled tasks
* tag tasks running by adjuncts so they can be retrieved
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/ahgittin/brooklyn-server tasks-better
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/brooklyn-server/pull/816.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #816
----
commit bc7d8f4ff2889f3fb8bd8c045a53e4d1d0ca0df0
Author: Alex Heneveld <[email protected]>
Date: 2017-09-11T10:03:52Z
more performance monitoring util routines
commit bae58c93051d779704efbc7b52e2f30a508dfaa7
Author: Alex Heneveld <[email protected]>
Date: 2017-09-11T14:43:18Z
optimization: skip conversion to then from TypeToken if we have a raw class
as a type
this was a noticeable expense when doing profiling
commit faf4501dc2a54d00b77a74058814191857dd1820
Author: Alex Heneveld <[email protected]>
Date: 2017-09-11T14:47:44Z
optimization: skip tags copy on common simple lookups
commit ec8159aa745fb86992ea37caa6e0e1ea3cf801ea
Author: Alex Heneveld <[email protected]>
Date: 2017-09-08T15:00:29Z
don't repeat task tracking code between scheduled and non-scheduled code
paths
commit 13579d621ae2781de6cdc9291a120c1818961565
Author: Alex Heneveld <[email protected]>
Date: 2017-09-11T07:40:31Z
more bookkeeping for immediate/same-thread tasks
commit 7b3695b7f812386c27e747495d7ae25c12483e05
Author: Alex Heneveld <[email protected]>
Date: 2017-09-11T17:00:11Z
use new public class MaybeSupplier for Maybe instances backed by supplier
so callers can access the supplier in cases where it might also provide
other info such as Identifiable
commit 25a8dc8bcc2f5661cb5f4d3a3760b9d07e733203
Author: Alex Heneveld <[email protected]>
Date: 2017-09-11T22:14:59Z
optimization: cache common type tokens
commit 5fe5188eafa14231cda88e88757cdcaf3cf8b36c
Author: Alex Heneveld <[email protected]>
Date: 2017-09-11T10:04:08Z
mark task names needing tidy as TODO and tidy some
commit 05c30c6608a26b0c25550754598d1f8ab3504b95
Author: Alex Heneveld <[email protected]>
Date: 2017-09-11T17:03:37Z
remove soft refs in tasks in favour of lookup
soft refs are expensive in the GC phase -- improves speed by 20% in some
cases
commit 51f09b08ec13a9edad57e1c68764f2922114ac7f
Author: Alex Heneveld <[email protected]>
Date: 2017-09-11T22:15:50Z
add support for same-thread execution
submitting and blocking is unnecessary overhead in many places
commit db7ffdbc6a740aa2f6e8d2c2eb6b13de35756e13
Author: Alex Heneveld <[email protected]>
Date: 2017-09-12T11:12:00Z
diff task submisson paths share code about how to end, and tidy listeners
fix bug where some where executed and GC'd before the child had actually
run,
by ensuring listeners don't run until the task recognizes the cancellation.
also tidy how end code is shared, and remove deprecation
commit 7d9eedd5ac40fca686c977b654fb240f647100d1
Author: Alex Heneveld <[email protected]>
Date: 2017-09-12T10:49:51Z
WIP task visibility: validation of config
commit 2d8840101436d202f1733311489f69882537340c
Author: Alex Heneveld <[email protected]>
Date: 2017-09-12T14:01:09Z
WIP task visibility: entity mgmt startup wrapped in its own task
----
---