Skip to content

Commit

Permalink
Rename raft package to core/consensus.
Browse files Browse the repository at this point in the history
Also rename RaftInstance to RaftMachine.
  • Loading branch information
apcj committed Jul 31, 2016
1 parent 2154edf commit 455004f
Show file tree
Hide file tree
Showing 256 changed files with 923 additions and 936 deletions.
Expand Up @@ -24,8 +24,8 @@
import java.util.UUID;
import java.util.function.Supplier;

import org.neo4j.coreedge.raft.ConsensusModule;
import org.neo4j.coreedge.raft.RaftMessages;
import org.neo4j.coreedge.core.consensus.ConsensusModule;
import org.neo4j.coreedge.core.consensus.RaftMessages;
import org.neo4j.coreedge.messaging.Outbound;
import org.neo4j.coreedge.core.replication.ProgressTrackerImpl;
import org.neo4j.coreedge.core.replication.RaftReplicator;
Expand Down
Expand Up @@ -20,9 +20,9 @@
package org.neo4j.coreedge.catchup.tx;

import org.neo4j.coreedge.catchup.CoreClient;
import org.neo4j.coreedge.raft.schedule.RenewableTimeoutService;
import org.neo4j.coreedge.raft.schedule.RenewableTimeoutService.RenewableTimeout;
import org.neo4j.coreedge.raft.schedule.RenewableTimeoutService.TimeoutName;
import org.neo4j.coreedge.core.consensus.schedule.RenewableTimeoutService;
import org.neo4j.coreedge.core.consensus.schedule.RenewableTimeoutService.RenewableTimeout;
import org.neo4j.coreedge.core.consensus.schedule.RenewableTimeoutService.TimeoutName;
import org.neo4j.coreedge.identity.MemberId;
import org.neo4j.coreedge.messaging.routing.CoreMemberSelectionStrategy;
import org.neo4j.kernel.lifecycle.LifecycleAdapter;
Expand Down
Expand Up @@ -25,8 +25,8 @@

import org.neo4j.coreedge.discovery.DiscoveryServiceFactory;
import org.neo4j.coreedge.discovery.HazelcastDiscoveryServiceFactory;
import org.neo4j.coreedge.raft.RaftInstance;
import org.neo4j.coreedge.raft.roles.Role;
import org.neo4j.coreedge.core.consensus.RaftMachine;
import org.neo4j.coreedge.core.consensus.roles.Role;
import org.neo4j.coreedge.identity.MemberId;
import org.neo4j.kernel.impl.factory.DatabaseInfo;
import org.neo4j.kernel.impl.factory.EditionModule;
Expand All @@ -53,11 +53,11 @@ public CoreGraphDatabase( File storeDir, Map<String, String> params,

public MemberId id()
{
return (MemberId) getDependencyResolver().resolveDependency( RaftInstance.class ).identity();
return (MemberId) getDependencyResolver().resolveDependency( RaftMachine.class ).identity();
}

public Role getRole()
{
return getDependencyResolver().resolveDependency( RaftInstance.class ).currentRole();
return getDependencyResolver().resolveDependency( RaftMachine.class ).currentRole();
}
}
Expand Up @@ -20,7 +20,7 @@
package org.neo4j.coreedge.core;

import org.neo4j.coreedge.core.state.machines.id.ReplicatedIdGeneratorFactory;
import org.neo4j.coreedge.raft.membership.MembershipWaiterLifecycle;
import org.neo4j.coreedge.core.consensus.membership.MembershipWaiterLifecycle;
import org.neo4j.kernel.impl.transaction.state.DataSourceManager;
import org.neo4j.kernel.lifecycle.LifeSupport;
import org.neo4j.kernel.lifecycle.Lifecycle;
Expand Down
Expand Up @@ -35,15 +35,15 @@
import org.neo4j.coreedge.catchup.storecopy.CopiedStoreRecovery;
import org.neo4j.coreedge.discovery.CoreTopologyService;
import org.neo4j.coreedge.discovery.DiscoveryServiceFactory;
import org.neo4j.coreedge.raft.ConsensusModule;
import org.neo4j.coreedge.raft.RaftInstance;
import org.neo4j.coreedge.raft.RaftMessages;
import org.neo4j.coreedge.core.consensus.ConsensusModule;
import org.neo4j.coreedge.core.consensus.RaftMachine;
import org.neo4j.coreedge.core.consensus.RaftMessages;
import org.neo4j.coreedge.messaging.CoreReplicatedContentMarshal;
import org.neo4j.coreedge.messaging.LoggingOutbound;
import org.neo4j.coreedge.messaging.Outbound;
import org.neo4j.coreedge.messaging.RaftChannelInitializer;
import org.neo4j.coreedge.messaging.RaftOutbound;
import org.neo4j.coreedge.raft.roles.Role;
import org.neo4j.coreedge.core.consensus.roles.Role;
import org.neo4j.coreedge.core.state.storage.DurableStateStorage;
import org.neo4j.coreedge.core.state.storage.StateStorage;
import org.neo4j.coreedge.identity.MemberId;
Expand Down Expand Up @@ -328,7 +328,7 @@ protected void doAfterRecoveryAndStartup( DatabaseInfo databaseInfo, DependencyR
{
super.doAfterRecoveryAndStartup( databaseInfo, dependencyResolver );

if ( dependencyResolver.resolveDependency( RaftInstance.class ).isLeader() )
if ( dependencyResolver.resolveDependency( RaftMachine.class ).isLeader() )
{
new RemoveOrphanConstraintIndexesOnStartup(
dependencyResolver.resolveDependency( NeoStoreDataSource.class ).getKernel(),
Expand Down
Expand Up @@ -17,7 +17,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.coreedge.raft;
package org.neo4j.coreedge.core.consensus;

import java.io.File;
import java.io.FileNotFoundException;
Expand All @@ -28,28 +28,28 @@

import org.neo4j.coreedge.discovery.CoreTopologyService;
import org.neo4j.coreedge.discovery.RaftDiscoveryServiceConnector;
import org.neo4j.coreedge.raft.log.InMemoryRaftLog;
import org.neo4j.coreedge.raft.log.MonitoredRaftLog;
import org.neo4j.coreedge.raft.log.RaftLog;
import org.neo4j.coreedge.raft.log.RaftLogEntry;
import org.neo4j.coreedge.raft.log.segmented.InFlightMap;
import org.neo4j.coreedge.raft.log.segmented.SegmentedRaftLog;
import org.neo4j.coreedge.raft.membership.MemberIdSetBuilder;
import org.neo4j.coreedge.raft.membership.RaftMembershipManager;
import org.neo4j.coreedge.core.consensus.log.InMemoryRaftLog;
import org.neo4j.coreedge.core.consensus.log.MonitoredRaftLog;
import org.neo4j.coreedge.core.consensus.log.RaftLog;
import org.neo4j.coreedge.core.consensus.log.RaftLogEntry;
import org.neo4j.coreedge.core.consensus.log.segmented.InFlightMap;
import org.neo4j.coreedge.core.consensus.log.segmented.SegmentedRaftLog;
import org.neo4j.coreedge.core.consensus.membership.MemberIdSetBuilder;
import org.neo4j.coreedge.core.consensus.membership.RaftMembershipManager;
import org.neo4j.coreedge.messaging.CoreReplicatedContentMarshal;
import org.neo4j.coreedge.messaging.LoggingOutbound;
import org.neo4j.coreedge.messaging.Outbound;
import org.neo4j.coreedge.messaging.RaftChannelInitializer;
import org.neo4j.coreedge.messaging.RaftOutbound;
import org.neo4j.coreedge.core.replication.SendToMyself;
import org.neo4j.coreedge.raft.schedule.DelayedRenewableTimeoutService;
import org.neo4j.coreedge.raft.shipping.RaftLogShippingManager;
import org.neo4j.coreedge.core.consensus.schedule.DelayedRenewableTimeoutService;
import org.neo4j.coreedge.core.consensus.shipping.RaftLogShippingManager;
import org.neo4j.coreedge.core.state.storage.DurableStateStorage;
import org.neo4j.coreedge.core.state.storage.StateStorage;
import org.neo4j.coreedge.raft.membership.RaftMembershipState;
import org.neo4j.coreedge.raft.term.MonitoredTermStateStorage;
import org.neo4j.coreedge.raft.term.TermState;
import org.neo4j.coreedge.raft.vote.VoteState;
import org.neo4j.coreedge.core.consensus.membership.RaftMembershipState;
import org.neo4j.coreedge.core.consensus.term.MonitoredTermStateStorage;
import org.neo4j.coreedge.core.consensus.term.TermState;
import org.neo4j.coreedge.core.consensus.vote.VoteState;
import org.neo4j.coreedge.core.CoreEdgeClusterSettings;
import org.neo4j.coreedge.identity.MemberId;
import org.neo4j.coreedge.messaging.NonBlockingChannels;
Expand Down Expand Up @@ -78,7 +78,7 @@ public class ConsensusModule
public static final String RAFT_VOTE_NAME = "vote";

private final MonitoredRaftLog raftLog;
private final RaftInstance raftInstance;
private final RaftMachine raftMachine;
private final DelayedRenewableTimeoutService raftTimeoutService;
private final RaftMembershipManager raftMembershipManager;

Expand Down Expand Up @@ -176,12 +176,12 @@ expectedClusterSize, electionTimeout1, systemUTC(),

raftTimeoutService = new DelayedRenewableTimeoutService( systemUTC(), logProvider );

raftInstance =
new RaftInstance( myself, termState, voteState, raftLog, electionTimeout1,
raftMachine =
new RaftMachine( myself, termState, voteState, raftLog, electionTimeout1,
heartbeatInterval, raftTimeoutService, loggingOutbound, logProvider, raftMembershipManager,
logShipping, inFlightMap, platformModule.monitors );

life.add( new RaftDiscoveryServiceConnector( discoveryService, raftInstance ) );
life.add( new RaftDiscoveryServiceConnector( discoveryService, raftMachine ) );

life.add(logShipping);
}
Expand Down Expand Up @@ -239,9 +239,9 @@ public RaftLog raftLog()
return raftLog;
}

public RaftInstance raftInstance()
public RaftMachine raftInstance()
{
return raftInstance;
return raftMachine;
}

public Lifecycle raftTimeoutService()
Expand Down
Expand Up @@ -17,7 +17,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.coreedge.raft;
package org.neo4j.coreedge.core.consensus;

import org.neo4j.kernel.impl.util.JobScheduler;
import org.neo4j.kernel.lifecycle.LifecycleAdapter;
Expand Down
Expand Up @@ -17,7 +17,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.coreedge.raft;
package org.neo4j.coreedge.core.consensus;

public interface CoreMetaData
{
Expand Down
Expand Up @@ -17,13 +17,13 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.coreedge.raft;
package org.neo4j.coreedge.core.consensus;

import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

import org.neo4j.coreedge.raft.roles.follower.FollowerStates;
import org.neo4j.coreedge.core.consensus.roles.follower.FollowerStates;

public class Followers
{
Expand Down
Expand Up @@ -17,7 +17,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.coreedge.raft;
package org.neo4j.coreedge.core.consensus;

import static java.lang.String.*;

Expand Down
Expand Up @@ -17,7 +17,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.coreedge.raft;
package org.neo4j.coreedge.core.consensus;

import org.neo4j.coreedge.identity.MemberId;
import org.neo4j.kernel.impl.util.Listener;
Expand Down
Expand Up @@ -17,7 +17,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.coreedge.raft;
package org.neo4j.coreedge.core.consensus;

public interface LeaderNotFoundMonitor
{
Expand Down
Expand Up @@ -17,7 +17,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.coreedge.raft;
package org.neo4j.coreedge.core.consensus;

public class MajorityIncludingSelfQuorum
{
Expand Down
Expand Up @@ -17,7 +17,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.coreedge.raft;
package org.neo4j.coreedge.core.consensus;

import org.neo4j.coreedge.identity.StoreId;
import org.neo4j.kernel.impl.store.StoreFailureException;
Expand Down
Expand Up @@ -17,7 +17,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.coreedge.raft;
package org.neo4j.coreedge.core.consensus;

import org.neo4j.coreedge.core.replication.ReplicatedContent;

Expand Down
Expand Up @@ -17,7 +17,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.coreedge.raft;
package org.neo4j.coreedge.core.consensus;

public class NoLeaderFoundException extends Exception
{
Expand Down
Expand Up @@ -17,7 +17,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.coreedge.raft;
package org.neo4j.coreedge.core.consensus;

import java.io.IOException;
import java.util.ArrayList;
Expand All @@ -27,23 +27,23 @@
import java.util.function.Predicate;

import org.neo4j.coreedge.helper.VolatileFuture;
import org.neo4j.coreedge.raft.log.RaftLog;
import org.neo4j.coreedge.raft.log.RaftLogEntry;
import org.neo4j.coreedge.raft.log.segmented.InFlightMap;
import org.neo4j.coreedge.raft.membership.RaftGroup;
import org.neo4j.coreedge.raft.membership.RaftMembershipManager;
import org.neo4j.coreedge.core.consensus.log.RaftLog;
import org.neo4j.coreedge.core.consensus.log.RaftLogEntry;
import org.neo4j.coreedge.core.consensus.log.segmented.InFlightMap;
import org.neo4j.coreedge.core.consensus.membership.RaftGroup;
import org.neo4j.coreedge.core.consensus.membership.RaftMembershipManager;
import org.neo4j.coreedge.messaging.Outbound;
import org.neo4j.coreedge.raft.outcome.AppendLogEntry;
import org.neo4j.coreedge.raft.outcome.ConsensusOutcome;
import org.neo4j.coreedge.raft.outcome.Outcome;
import org.neo4j.coreedge.raft.schedule.RenewableTimeoutService;
import org.neo4j.coreedge.raft.shipping.RaftLogShippingManager;
import org.neo4j.coreedge.raft.roles.Role;
import org.neo4j.coreedge.raft.state.RaftState;
import org.neo4j.coreedge.raft.state.ReadableRaftState;
import org.neo4j.coreedge.core.consensus.outcome.AppendLogEntry;
import org.neo4j.coreedge.core.consensus.outcome.ConsensusOutcome;
import org.neo4j.coreedge.core.consensus.outcome.Outcome;
import org.neo4j.coreedge.core.consensus.schedule.RenewableTimeoutService;
import org.neo4j.coreedge.core.consensus.shipping.RaftLogShippingManager;
import org.neo4j.coreedge.core.consensus.roles.Role;
import org.neo4j.coreedge.core.consensus.state.RaftState;
import org.neo4j.coreedge.core.consensus.state.ReadableRaftState;
import org.neo4j.coreedge.core.state.storage.StateStorage;
import org.neo4j.coreedge.raft.term.TermState;
import org.neo4j.coreedge.raft.vote.VoteState;
import org.neo4j.coreedge.core.consensus.term.TermState;
import org.neo4j.coreedge.core.consensus.vote.VoteState;
import org.neo4j.coreedge.identity.MemberId;
import org.neo4j.kernel.impl.util.Listener;
import org.neo4j.kernel.monitoring.Monitors;
Expand All @@ -52,27 +52,14 @@

import static java.lang.String.format;
import static java.util.Collections.singletonList;
import static org.neo4j.coreedge.raft.roles.Role.LEADER;
import static org.neo4j.coreedge.core.consensus.roles.Role.LEADER;

/**
* The core raft class representing a member of the raft group. The main interactions are
* with the network and the entry log.
* <p>
* The network is represented by the inbound and outbound classes, and inbound messages are
* handled by the core state machine, which in turn can generate outbound messages in
* response.
* <p>
* The raft entry log persists the user data which the raft system safely replicates. The raft
* algorithm ensures that these logs eventually are fed with the exact same entries, even in
* the face of failures.
* <p>
* The main entry point for adding a new entry is the sendToLeader() function, which starts of
* the process of safe replication. The new entry will be safely replicated and eventually
* added to the local log through a call to the append() function of the entry log. Eventually
* the leader will have replicated it safely, and at a later point in time the commit() function
* of the entry log will be called.
* Implements the Raft Consensus Algorithm.
*
* The algorithm is driven by incoming messages provided to {@link #handle}.
*/
public class RaftInstance implements LeaderLocator, CoreMetaData
public class RaftMachine implements LeaderLocator, CoreMetaData
{
private final LeaderNotFoundMonitor leaderNotFoundMonitor;
private RenewableTimeoutService.RenewableTimeout heartbeatTimer;
Expand Down Expand Up @@ -101,15 +88,15 @@ public enum Timeouts implements RenewableTimeoutService.TimeoutName

private RaftLogShippingManager logShipping;

public RaftInstance( MemberId myself, StateStorage<TermState> termStorage,
StateStorage<VoteState> voteStorage, RaftLog entryLog,
long electionTimeout, long heartbeatInterval,
RenewableTimeoutService renewableTimeoutService,
Outbound<MemberId, RaftMessages.RaftMessage> outbound,
LogProvider logProvider, RaftMembershipManager membershipManager,
RaftLogShippingManager logShipping,
InFlightMap<Long, RaftLogEntry> inFlightMap,
Monitors monitors )
public RaftMachine( MemberId myself, StateStorage<TermState> termStorage,
StateStorage<VoteState> voteStorage, RaftLog entryLog,
long electionTimeout, long heartbeatInterval,
RenewableTimeoutService renewableTimeoutService,
Outbound<MemberId, RaftMessages.RaftMessage> outbound,
LogProvider logProvider, RaftMembershipManager membershipManager,
RaftLogShippingManager logShipping,
InFlightMap<Long, RaftLogEntry> inFlightMap,
Monitors monitors )
{
this.myself = myself;
this.entryLog = entryLog;
Expand Down
Expand Up @@ -17,12 +17,12 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.coreedge.raft;
package org.neo4j.coreedge.core.consensus;

import java.io.IOException;

import org.neo4j.coreedge.raft.outcome.Outcome;
import org.neo4j.coreedge.raft.state.ReadableRaftState;
import org.neo4j.coreedge.core.consensus.outcome.Outcome;
import org.neo4j.coreedge.core.consensus.state.ReadableRaftState;
import org.neo4j.logging.Log;

public interface RaftMessageHandler
Expand Down

0 comments on commit 455004f

Please sign in to comment.