raft.proto 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package raftpb;
  2. import "code.google.com/p/gogoprotobuf/gogoproto/gogo.proto";
  3. option (gogoproto.marshaler_all) = true;
  4. option (gogoproto.sizer_all) = true;
  5. option (gogoproto.unmarshaler_all) = true;
  6. option (gogoproto.goproto_getters_all) = false;
  7. option (gogoproto.goproto_enum_prefix_all) = false;
  8. enum EntryType {
  9. EntryNormal = 0;
  10. EntryConfChange = 1;
  11. }
  12. message Entry {
  13. required EntryType Type = 1 [(gogoproto.nullable) = false];
  14. required uint64 Term = 2 [(gogoproto.nullable) = false];
  15. required uint64 Index = 3 [(gogoproto.nullable) = false];
  16. optional bytes Data = 4 [(gogoproto.nullable) = false];
  17. }
  18. message SnapshotMetadata {
  19. required ConfState conf_state = 1 [(gogoproto.nullable) = false];
  20. required uint64 index = 2 [(gogoproto.nullable) = false];
  21. required uint64 term = 3 [(gogoproto.nullable) = false];
  22. }
  23. message Snapshot {
  24. optional bytes data = 1 [(gogoproto.nullable) = false];
  25. required SnapshotMetadata metadata = 2 [(gogoproto.nullable) = false];
  26. }
  27. enum MessageType {
  28. MsgHup = 0;
  29. MsgBeat = 1;
  30. MsgProp = 2;
  31. MsgApp = 3;
  32. MsgAppResp = 4;
  33. MsgVote = 5;
  34. MsgVoteResp = 6;
  35. MsgSnap = 7;
  36. MsgHeartbeat = 8;
  37. MsgHeartbeatResp = 9;
  38. MsgUnreachable = 10;
  39. MsgSnapStatus = 11;
  40. }
  41. message Message {
  42. required MessageType type = 1 [(gogoproto.nullable) = false];
  43. required uint64 to = 2 [(gogoproto.nullable) = false];
  44. required uint64 from = 3 [(gogoproto.nullable) = false];
  45. required uint64 term = 4 [(gogoproto.nullable) = false];
  46. required uint64 logTerm = 5 [(gogoproto.nullable) = false];
  47. required uint64 index = 6 [(gogoproto.nullable) = false];
  48. repeated Entry entries = 7 [(gogoproto.nullable) = false];
  49. required uint64 commit = 8 [(gogoproto.nullable) = false];
  50. required Snapshot snapshot = 9 [(gogoproto.nullable) = false];
  51. required bool reject = 10 [(gogoproto.nullable) = false];
  52. required uint64 rejectHint = 11 [(gogoproto.nullable) = false];
  53. }
  54. message HardState {
  55. required uint64 term = 1 [(gogoproto.nullable) = false];
  56. required uint64 vote = 2 [(gogoproto.nullable) = false];
  57. required uint64 commit = 3 [(gogoproto.nullable) = false];
  58. }
  59. message ConfState {
  60. repeated uint64 nodes = 1 [(gogoproto.nullable) = false];
  61. }
  62. enum ConfChangeType {
  63. ConfChangeAddNode = 0;
  64. ConfChangeRemoveNode = 1;
  65. ConfChangeUpdateNode = 2;
  66. }
  67. message ConfChange {
  68. required uint64 ID = 1 [(gogoproto.nullable) = false];
  69. required ConfChangeType Type = 2 [(gogoproto.nullable) = false];
  70. required uint64 NodeID = 3 [(gogoproto.nullable) = false];
  71. optional bytes Context = 4 [(gogoproto.nullable) = false];
  72. }