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

Raft uses BoltDB #857

Merged
merged 4 commits into from
Apr 11, 2015
Merged

Raft uses BoltDB #857

merged 4 commits into from
Apr 11, 2015

Conversation

ryanuber
Copy link
Member

Switches over to the raft-boltdb backend for persisting the Raft log. There are a few things to note about these changes:

  • Existing clusters will automatically migrate their MDB data to BoltDB on Consul 0.5.1 startup using an embedded consul-migrate.
  • Cgo is still required for the 0.5.1 release. This is because we want to have LMDB embedded for the transition so we can perform the migration automatically. The next release (likely 0.6.0) will be pure Go.

@ryanbreen
Copy link
Contributor

This is awesome!

ryanuber added a commit that referenced this pull request Apr 11, 2015
@ryanuber ryanuber merged commit 6cc0eef into master Apr 11, 2015
@ryanuber ryanuber deleted the f-boltdb branch April 11, 2015 01:30
@ryanbreen
Copy link
Contributor

I'm editing the internals/consensus.html doc now. I should update all references to LMDB to BoltDB, right?

@ryanuber
Copy link
Member Author

@ryanbreen not all of them, actually. We still use an in-memory only LMDB for Consul's state store, so for example, the FAQ entry about virtual memory size should be left intact until we completely remove it in 0.6. Anything specifically about the Raft log + LMDB can be updated though.

@ryanbreen
Copy link
Contributor

Thanks!

Is this line still true wrt Bolt?

One of the advantages of using LMDB is that it allows Consul to continue accepting new transactions even while old state is being snapshotted, preventing any availability issues."

@ryanuber
Copy link
Member Author

BoltDB supports MVCC so this should still hold true with that backend. So yep!

ryanbreen added a commit that referenced this pull request Apr 11, 2015
artushin added a commit to artushin/consul that referenced this pull request Apr 22, 2015
* upstream/master: (191 commits)
  Fix invalid link to sessions page
  Upstart: Consul leave now works as expected.
  Caps not necessary here
  Updating the docs to include information about registering a check with a serviceid.
  ampersand
  add consul and the hc ecosystem
  Website: minor fix for docs/agent/http/agent.html.
  Website: cleanup for docs/internals/sessions.html.
  agent: parse raw query URL to avoid closing the request body early
  Website: cleanup for docs/internals/security.html.
  Website: minor tweaks for docs/internals/jepsen.html.
  agent: hide tokens from logs and monitor
  Add XXX to the end of mktemp template to support more linux versions.
  Website: fix caps issue in docs/internals/consensus.html.
  Build consul to a temp dir for API tests
  Website: revert link to securing Consul doc since it's not ready yet.
  Website: minor additional tweaks for docs/internals/consensus.html.
  Website: cleanup for docs/internals/consensus.html, including removing LMDB references in favor of BoltDB per hashicorpGH-857.
  agent: Don't attempt migration on new server
  Update CHANGELOG.md
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants