Add Raft RPC messages
Summary: Basic RPC messages for Raft protocol. They will most likely be updated as we move along with the implementation. Reviewers: msantl, teon.banek, mferencevic Reviewed By: msantl, teon.banek Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D1726
This commit is contained in:
parent
54fa46541e
commit
7f44b895b4
4
.gitignore
vendored
4
.gitignore
vendored
@ -85,6 +85,10 @@ src/durability/single_node_ha/state_delta.hpp
|
||||
src/query/plan/distributed_ops.capnp
|
||||
src/query/plan/distributed_ops.hpp
|
||||
src/query/plan/operator.hpp
|
||||
src/raft/log_entry.capnp
|
||||
src/raft/log_entry.hpp
|
||||
src/raft/raft_rpc_messages.capnp
|
||||
src/raft/raft_rpc_messages.hpp
|
||||
src/stats/stats_rpc_messages.capnp
|
||||
src/stats/stats_rpc_messages.hpp
|
||||
src/storage/distributed/rpc/concurrent_id_mapper_rpc_messages.capnp
|
||||
|
@ -291,6 +291,10 @@ add_lcp_single_node_ha(database/single_node_ha/serialization.lcp CAPNP_SCHEMA @0
|
||||
add_capnp_single_node_ha(database/single_node_ha/serialization.capnp)
|
||||
add_lcp_single_node_ha(query/frontend/ast/ast.lcp)
|
||||
add_lcp_single_node_ha(query/plan/operator.lcp)
|
||||
add_lcp_single_node_ha(raft/raft_rpc_messages.lcp CAPNP_SCHEMA @0xa6c29b4287233b66)
|
||||
add_capnp_single_node_ha(raft/raft_rpc_messages.capnp)
|
||||
add_lcp_single_node_ha(raft/log_entry.lcp CAPNP_SCHEMA @0x96c07fe13850c22a)
|
||||
add_capnp_single_node_ha(raft/log_entry.capnp)
|
||||
|
||||
add_custom_target(generate_lcp_single_node_ha DEPENDS ${generated_lcp_single_node_ha_files})
|
||||
|
||||
|
19
src/raft/log_entry.lcp
Normal file
19
src/raft/log_entry.lcp
Normal file
@ -0,0 +1,19 @@
|
||||
#>cpp
|
||||
#pragma once
|
||||
|
||||
#include "database/single_node_ha/serialization.hpp"
|
||||
#include "durability/single_node_ha/state_delta.hpp"
|
||||
#include "raft/log_entry.capnp.h"
|
||||
cpp<#
|
||||
|
||||
(lcp:namespace raft)
|
||||
|
||||
(lcp:capnp-namespace "raft")
|
||||
|
||||
(lcp:capnp-import 'database "/database/single_node_ha/serialization.capnp")
|
||||
|
||||
(lcp:define-struct log-entry ()
|
||||
((deltas "std::vector<database::StateDelta>" :capnp-type "List(Database.StateDelta)"))
|
||||
(:serialize :capnp))
|
||||
|
||||
(lcp:pop-namespace) ;; raft
|
39
src/raft/raft_rpc_messages.lcp
Normal file
39
src/raft/raft_rpc_messages.lcp
Normal file
@ -0,0 +1,39 @@
|
||||
#>cpp
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "communication/rpc/messages.hpp"
|
||||
#include "raft/log_entry.hpp"
|
||||
#include "raft/raft_rpc_messages.capnp.h"
|
||||
cpp<#
|
||||
|
||||
(lcp:namespace raft)
|
||||
|
||||
(lcp:capnp-namespace "raft")
|
||||
|
||||
(lcp:capnp-import 'raft "/raft/log_entry.capnp")
|
||||
|
||||
(lcp:define-rpc request-vote
|
||||
(:request
|
||||
((candidate-id :uint16_t)
|
||||
(term :uint64_t)
|
||||
(last-log-index :uint64_t)
|
||||
(last-log-term :uint64_t)))
|
||||
(:response
|
||||
((vote-granted :bool)
|
||||
(term :uint64_t))))
|
||||
|
||||
(lcp:define-rpc append-entries
|
||||
(:request
|
||||
((leader-id :uint16_t)
|
||||
(leader-commit :uint16_t)
|
||||
(term :uint64_t)
|
||||
(prev-log-index :uint64_t)
|
||||
(prev-log-term :uint64_t)
|
||||
(entries "std::vector<raft::LogEntry>" :capnp-type "List(Raft.LogEntry)")))
|
||||
(:response
|
||||
((success :bool)
|
||||
(term :uint64_t))))
|
||||
|
||||
(lcp:pop-namespace) ;; raft
|
Loading…
Reference in New Issue
Block a user