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

Use a backwards/forwards compatible serialization format #26

Open
andrewjstone opened this issue Jun 23, 2017 · 0 comments
Open

Use a backwards/forwards compatible serialization format #26

andrewjstone opened this issue Jun 23, 2017 · 0 comments

Comments

@andrewjstone
Copy link
Owner

andrewjstone commented Jun 23, 2017

We need to support rolling upgrade of nodes. And this means backwards and forwards compatibility of messages. We could do version negotiation, but this gets dirty real fast, so instead we want this supported in the serialization format ala protobuf. But the format also must support serde and be fast.

Currently msgpack is used, but the implementation doesn't allow fields to be added to messages and for them to be ignored by old nodes. Similarly, new nodes can't fill in default fields for old messages without those fields.

Bincode is the fastest solution that I've benchmarked but it also doesn't support this.

JSON support in serde is very fast and would probably work here. CBOR takes up less space on the wire but the implementation is at least 5x slower from my prior measurements.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant