raftres

package module
v0.0.0-...-2e7796a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 6, 2023 License: Apache-2.0 Imports: 10 Imported by: 0

README

raftres

raftres is a modular composition of the pure Raft protocol and a naive distributed key-value store. This system demonstrates the modular verification and composition of PGo-based systems.

Model

raftres is composed of two models: raft and kv. raft is a pure Raft protocol without any client interaction semantics. kv is a distributed key-value store that assumes it has access on an abstract consensus layer.

In the composition, raft and kv communicate using accept and propose channels. Each raft server accepts new request through its accept channel and broadcasts committed log entries through its propose channel. kv leverages these channels and implements a key-value store using them.

Assumptions

Both raft and kv make the same assumptions as the raftkvs systems.

Properties

raft only has the five properties from the Raft protocol.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Server

type Server struct {
	Id     int
	Config configs.Root
	// contains filtered or unexported fields
}

func NewServer

func NewServer(srvId int, c configs.Root) *Server

func (*Server) Close

func (s *Server) Close() error

func (*Server) Run

func (s *Server) Run() error

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL