We explicitly model Services, which can have an Init step, a Run step and a
Stop step. Every registered service get initialized in the order they were
registered in, then they all run concurrently until Stop is called, when they
all get Stopped in reverse order. It's possible for clients to wait for init to
be completed and be delivered any errors encountered on startup. They can also
wait for stop, to be delivered any errors encountered on shutdown.
* Only rebase transaction start for read replica
* [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh
* missed var names
* another var name
* [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh
* server lock file
* put serverLockFile in dsess
* better multiEnv locking
* more doc comments
* zach's comments
Co-authored-by: max-hoffman <max-hoffman@users.noreply.github.com>
* small push on write perf benchmark with no prog channel
* remove unused prog funcs
* remove unused prog funcs
* fix bench name
* [ga-format-pr] Run go/utils/repofmt/format_repo.sh and go/Godeps/update.sh
Co-authored-by: max-hoffman <max-hoffman@users.noreply.github.com>