pulumi/pkg/resource
Sean Gillespie 0d0129e400
Execute non-delete step chains in parallel (#1673)
* Execute chains of steps in parallel

Fixes pulumi/pulumi#1624. Since register resource steps are known to be
ready to execute the moment the engine sees them, we can effectively
parallelize all incoming step chains. This commit adds the machinery
necessary to do so - namely a step executor and a plan executor.

* Remove dead code

* CR: use atomic.Value to be explicit about what values are atomically loaded and stored

* CR: Initialize atomics to 'false'

* Add locks around data structures in event callbacks

* CR: Add DegreeOfParallelism method on Options and add comment on select in Execute

* CR: Use context.Context for cancellation instead of cancel.Source

* CR: improve cancellation

* Rebase against master: execute read steps in parallel

* Please gometalinter

* CR: Inline a few methods in stepExecutor

* CR: Feedback and bug fixes

1. Simplify step_executor.go by 'bubbling' up errors as far as possible
and reporting diagnostics and cancellation in one place
2. Fix a bug where the CLI claimed that a plan was cancelled even if it
wasn't (it just has an error)

* Comments

* CR: Add comment around problematic select, move workers.Add outside of goroutine, return instead of break
2018-08-06 16:46:17 -07:00
..
config Add license headers 2018-05-22 15:02:47 -07:00
deploy Execute non-delete step chains in parallel (#1673) 2018-08-06 16:46:17 -07:00
graph Delete Before Create (#1365) 2018-05-23 14:43:17 -07:00
plugin Allow more types for runtimeOptions 2018-08-06 14:00:58 -07:00
provider Add URN argument to HostClient#Log 2018-08-01 11:00:48 -07:00
stack Save resources obtained from ".get" in the snapshot (#1654) 2018-08-03 14:06:00 -07:00
testdata Fix asset bugs; write more tests 2017-10-24 09:00:11 -07:00
asset.go Support empty text assets (#1599) 2018-07-05 14:30:35 -07:00
asset_test.go Support empty text assets (#1599) 2018-07-05 14:30:35 -07:00
errors.go Add license headers 2018-05-22 15:02:47 -07:00
properties.go Support Pulumi programs written in Go 2018-06-08 10:36:10 -07:00
properties_diff.go Add license headers 2018-05-22 15:02:47 -07:00
properties_diff_test.go Add license headers 2018-05-22 15:02:47 -07:00
properties_test.go Add license headers 2018-05-22 15:02:47 -07:00
resource_goal.go Add license headers 2018-05-22 15:02:47 -07:00
resource_id.go Add license headers 2018-05-22 15:02:47 -07:00
resource_id_test.go Add license headers 2018-05-22 15:02:47 -07:00
resource_state.go Save resources obtained from ".get" in the snapshot (#1654) 2018-08-03 14:06:00 -07:00
stack.go Add license headers 2018-05-22 15:02:47 -07:00
status.go Partial status for resource providers 2018-07-02 13:32:23 -07:00
urn.go Add license headers 2018-05-22 15:02:47 -07:00
urn_test.go Add license headers 2018-05-22 15:02:47 -07:00