[go: nahoru, domu]

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

Protocol and storage format under active development #1109

Open
cb22 opened this issue Aug 11, 2023 · 2 comments
Open

Protocol and storage format under active development #1109

cb22 opened this issue Aug 11, 2023 · 2 comments

Comments

@cb22
Copy link
Contributor
cb22 commented Aug 11, 2023

While still under active development, we may make changes that break the protocol and storage format at any time. It's strongly recommended that if you're experimenting with TigerBeetle you:

  • Use a freshly formatted data file for the commit you've built or installed.
  • Only run replicas of the same version in a cluster.
  • Use the identical matching client version.
@darcythomas
Copy link

This may be too soon to ask:

Nice to have:

A policy that the wire protocol and the storage format are not changed in the same commit/release.
(Or have a backwards compatibility by version -1 of the protocol)

Then we could build some migration tooling to upgrade a cluster between commits/releases.

This may come under: "StateMachine: Add bulk-import path for data (including timestamps). (Probably need a CLI for this too.)"

@sentientwaffle
Copy link
Member

Hi @darcythomas,

A policy that the wire protocol and the storage format are not changed in the same commit/release.
(Or have a backwards compatibility by version -1 of the protocol)

Certain changes to the wire protocol will necessarily impact the storage format. (That is to say, if you upgrade from version X to version X+1, then you are not subsequently able to downgrade to version X).

That said, the version X clients will still be compatible with the version X+1 cluster, so clients can be upgraded to X+1 later on at your convenience.

"migration tooling" (in the sense that ORMs use the term "migration"; lmk if you meant differently) won't be necessary; the cluster will be able to keep reading its old data without needing to rewrite it all.

This isn't implemented yet, but will be implemented prior to our 1.0 release.

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

No branches or pull requests

3 participants