LogCabin
Classes | Namespaces | Typedefs
Server/RaftConsensus.h File Reference
#include <chrono>
#include <deque>
#include <functional>
#include <memory>
#include <thread>
#include <unordered_map>
#include "build/Protocol/Client.pb.h"
#include "build/Protocol/Raft.pb.h"
#include "build/Protocol/ServerStats.pb.h"
#include "build/Server/SnapshotStats.pb.h"
#include "Client/SessionManager.h"
#include "Core/CompatAtomic.h"
#include "Core/ConditionVariable.h"
#include "Core/Mutex.h"
#include "Core/Time.h"
#include "RPC/ClientRPC.h"
#include "Storage/Layout.h"
#include "Storage/Log.h"
#include "Storage/SnapshotFile.h"

Go to the source code of this file.

Classes

class  LogCabin::Server::RaftConsensusInternal::Invariants
class  LogCabin::Server::RaftConsensusInternal::Server
 A base class for known servers in the cluster, including this process (see LocalServer) and others (see Peer). More...
class  LogCabin::Server::RaftConsensusInternal::LocalServer
 A type of Server for the local process. More...
class  LogCabin::Server::RaftConsensusInternal::Peer
 Represents another server in the cluster. More...
class  LogCabin::Server::RaftConsensusInternal::Configuration
 A configuration defines the servers that are part of the cluster. More...
struct  LogCabin::Server::RaftConsensusInternal::Configuration::SimpleConfiguration
 A list of servers in which a simple majority constitutes a quorum. More...
class  LogCabin::Server::RaftConsensusInternal::ConfigurationManager
 Ensures the current configuration reflects the latest state of the log and snapshot. More...
class  LogCabin::Server::RaftConsensusInternal::ClusterClock
 This is the rough equivalent of a SteadyClock that can be shared across the network with other Raft servers. More...
class  LogCabin::Server::RaftConsensus
 An implementation of the Raft consensus algorithm. More...
struct  LogCabin::Server::RaftConsensus::Entry
 This is returned by getNextEntry(). More...

Namespaces

namespace  LogCabin
namespace  LogCabin::Event
namespace  LogCabin::RPC
namespace  LogCabin::Server
namespace  LogCabin::Server::RaftConsensusInternal

Typedefs

typedef
LogCabin::Core::Time::SteadyClock 
LogCabin::Server::RaftConsensusInternal::Clock
 Reads the current time.
typedef Clock::time_point LogCabin::Server::RaftConsensusInternal::TimePoint
 Some point in time relative to the Clock's epoch.
typedef Core::Mutex LogCabin::Server::RaftConsensusInternal::Mutex
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines