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

replicated state machine improvements #3

Open
4 tasks
evanmcc opened this issue May 26, 2017 · 3 comments
Open
4 tasks

replicated state machine improvements #3

evanmcc opened this issue May 26, 2017 · 3 comments

Comments

@evanmcc
Copy link
Owner

evanmcc commented May 26, 2017

similar to vmware-archive/haret#103, the replicated state machine should be able to tell the vrrm machinery not to add something to the log when it does not mutate the inner state.

  • add keep_state and optimize log to use that information
  • make state machine more like gen_statem
  • allow state machine to know its current role in events
  • standardize state machine upcalls
@evanmcc evanmcc changed the title add immutable and unlogged operations. replicated state machine improvements May 27, 2017
@evanmcc
Copy link
Owner Author

evanmcc commented May 27, 2017

another important thing to do here is to change the replicated behavior to get role information. i.e. whether or not it is the primary or a follower. we also need to decide whether or not a follower gets its number, or just the information that it is a follower.

We want to do this to guarantee e.g. that only one member can do a particular thing with a global side effect (check on another machine, write to a durable data store).

@evanmcc
Copy link
Owner Author

evanmcc commented May 27, 2017

thirdly, it'd be nice to change the replicated state machine to something closer to gen_statem. The actions are nice, the singler event handler function is easier to support, and I'd like to be able to support internal actions so that we can pass internal operations back through the replicated machinery in and idiomatic way.

@evanmcc
Copy link
Owner Author

evanmcc commented May 31, 2017

another thing that's required is to improve the consistency of state machine handling. there are at least 4 places where upcalls to the replicated state machine can happen, and they're poorly standardized. We need to update the client table on followers, and make sure that we gracefully handle a replicated state machine that returns {stop, Reason, Data} etc.

evanmcc added a commit that referenced this issue Apr 1, 2018
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

1 participant