Skip to content
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

Upgrade to etcd/bbolt #22

Merged
merged 4 commits into from
Apr 9, 2021
Merged

Upgrade to etcd/bbolt #22

merged 4 commits into from
Apr 9, 2021

Conversation

schristoff
Copy link
Contributor

@schristoff schristoff commented Mar 26, 2021

This closes #11.
Fixes #21
Thank you to #12, #19, #13.

go.mod Outdated Show resolved Hide resolved
@schristoff schristoff requested a review from rboyer March 26, 2021 22:45
@schristoff
Copy link
Contributor Author

I reverted the initial changes and made the necessary changes to do it this way

This was referenced Mar 30, 2021
Copy link
Member

@rboyer rboyer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM but maybe also get someone else raft-y to 👍 it too

Copy link
Member

@banks banks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this looks good Sarah. One downside of the v2 thing is that It's hard to tell in this PR whether you actually changed any code or tests here or just copied and switched out the dependency.

Can you confirm if there were any code changes needed so we can look a little more closely there?
Could y

v2/README.md Outdated Show resolved Hide resolved
@schristoff
Copy link
Contributor Author

Here's a quick little guide on the changes in the v2 folder -
Here's the changed import , vs v1
Update the BoltStore struct, vs v1
Also update the options, vs v1
The only place it's called afaik is in New(), vs v1

Then similarly in the test, changed import - and throughout the test bbolt.Options is called.

tl;dr - Because of the BoltStore{} struct and Options{} exist there are in minimal changes. My initial commit can be put next to this commit for reference as well - which may help with clarity.

@schristoff schristoff requested a review from banks April 7, 2021 20:25
Copy link
Member

@banks banks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome, thanks for the guide @s-christoff that looks very cool.

@schristoff schristoff merged commit 03c10cc into master Apr 9, 2021
@schristoff schristoff deleted the boltmig branch April 9, 2021 13:43
notnoop pushed a commit to hashicorp/raft that referenced this pull request Apr 14, 2021
Fuzzy depends on raft-boltdb, which depends on raft as well. Having
fuzzy as its own module, breaks the circular dependency.

Also, having `fuzzy` avoids leaking the raft-boltdb dependency and
versioning constaints into consumers. This was a significant factor, as
`raft-boltdb` changed storage engine in
hashicorp/raft-boltdb#22. However, given
raft-boltdb storage occured as a api major change, and both raft-boltdb
storage engines can coexist in the same go project, so it's less of an
issue now.
notnoop pushed a commit to hashicorp/raft that referenced this pull request Apr 14, 2021
Fuzzy depends on raft-boltdb, which depends on raft as well. Having
fuzzy as its own module, breaks the circular dependency.

Also, having `fuzzy` avoids leaking the raft-boltdb dependency and
versioning constaints into consumers. This was a significant factor, as
`raft-boltdb` changed storage engine in
hashicorp/raft-boltdb#22. However, given
raft-boltdb storage occured as a api major change, and both raft-boltdb
storage engines can coexist in the same go project, so it's less of an
issue now.
FrontMageew2 pushed a commit to FrontMageew2/raft that referenced this pull request Jan 31, 2024
Fuzzy depends on raft-boltdb, which depends on raft as well. Having
fuzzy as its own module, breaks the circular dependency.

Also, having `fuzzy` avoids leaking the raft-boltdb dependency and
versioning constaints into consumers. This was a significant factor, as
`raft-boltdb` changed storage engine in
hashicorp/raft-boltdb#22. However, given
raft-boltdb storage occured as a api major change, and both raft-boltdb
storage engines can coexist in the same go project, so it's less of an
issue now.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants