This repository was archived by the owner on Feb 18, 2025. It is now read-only.
Add Consul KV store based on atomic transactions#1276
Merged
shlomi-noach merged 7 commits intoopenark:masterfrom Jan 22, 2021
Merged
Add Consul KV store based on atomic transactions#1276shlomi-noach merged 7 commits intoopenark:masterfrom
shlomi-noach merged 7 commits intoopenark:masterfrom
Conversation
shlomi-noach
approved these changes
Jan 22, 2021
Collaborator
shlomi-noach
left a comment
There was a problem hiding this comment.
Looks good! This being opt-in and backwards compatible is great. Thank you for adding a documentation section.
Collaborator
|
Closes #1273 |
This was referenced Feb 4, 2021
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related issue: #1273
Description
This PR introduces a new, optional KV store for performing atomic Consul KV updates. This KV store hopes to address a race condition when performing updates of several key-values, context: #1273
This new KV store updates many KVPairs by:
go/kv/consul.go)go/kv/consul.go)A new Consul library was required to add this support, the official consul api library. Unfortunately this new library has a tonne of dependencies. At first
govendor fetch github.com/hashicorp/consul/apiadded 1500+ files to thevendor/dir. After manually removing various dependencies I was able to get it compile with just 500~ additional files (👎)It seems the bulk of the dependencies come from
github.com/hashicorp/go-hclog, which requiresgithub.com/mattn/go-isattywhich requires the huge librarygolang.org/x/sys/unix(about 300 of the 500 files) 😕. We could shave off a few more files by deleting_test.gofiles, but I suspect this might confusegovendor. Any ideas to reduce deps further appreciated!Lastly, I ran
govendor remove +unusedto drop more deps, which explains the few unrelated files deleted fromvendor/cc @shlomi-noach