-
Notifications
You must be signed in to change notification settings - Fork 158
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
Feature: add rkyv support #879
base: main
Are you sure you want to change the base?
Conversation
The tests for rkyv includes:
|
PR summary(by Claude):Accept changes to Cargo.toml and enable rkyv serialization / deserialization support on schema types |
I've looked into this issue some more after taking a break from it due to
several ICEs encountered during development :-(
Here are my findings so far:
* RaftMetrics `running_state` field uses `Fatal` which implies that several
errors need to implement the rkyv traits which includes the following two
types:
* `rkyv` traits are not implemented for `core::ops::range`. I've created
an issue rkyv/rkyv#404.
* AnyError would require rkyv support (via a feature flag). This is
non-trivial due to it being self-referencial. I think I've solved it but
would like to contact the `rkyv` maintainer to look at a PR once I've got a
complete example working.
* I don't agree with the comment in
#316 (comment)
But AFAIK, only types that need to be persisted on disk need rkyv support.
Errors in openraft are only used for transport.
Does it have to be encoded in the rkyv format for transport?
E.g., for `send_append_entries():
Due to RaftMetrics and Forward-ing requests requiring rkyv serialization
also for errors when used in transport.
Maybe the tracking issue #880
should be updated to mention/include rkyv support for transport and/or
storage and not just storage.
I'll continue to work on a complete example with rkyv used as transport
over tonic gRPC.
…On Fri, Jun 30, 2023 at 12:24 PM 张炎泼 ***@***.***> wrote:
PR summary(by Claude):
Accept changes to Cargo.toml and enable rkyv serialization /
deserialization support on schema types
—
Reply to this email directly, view it on GitHub
<#879 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AVZNEQI775PJGK52LCENT53XN2SMHANCNFSM6AAAAAAZVFHKJU>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Where is IMHO, errors and
Agree. These three pairs of RPC struct also needs rkyv support:
|
Checklist
This change is