Class ReplicationMaster

java.lang.Object
com.google.common.util.concurrent.AbstractService
org.yamcs.AbstractYamcsService
org.yamcs.replication.ReplicationMaster
All Implemented Interfaces:
com.google.common.util.concurrent.Service, YamcsService

public class ReplicationMaster extends AbstractYamcsService
Implements the master part of the replication. At any moment there is one current file where the replication data is written.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
     

    Nested classes/interfaces inherited from interface com.google.common.util.concurrent.Service

    com.google.common.util.concurrent.Service.Listener, com.google.common.util.concurrent.Service.State
  • Field Summary

    Fields inherited from class org.yamcs.AbstractYamcsService

    config, log, serviceName, yamcsInstance
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
     
    protected void
     
    org.yamcs.replication.ManagedReplicationFile
    getFile(long startTxId)
    Get the file where startTxId transaction is or the earliest file available if the transaction is in the past
     
    Returns the valid configuration options for this service.
     
    long
    returns the id of the last transaction
    void
    init(String yamcsInstance, String serviceName, YConfiguration config)
    Initialize this service.
    boolean
     
    io.netty.channel.ChannelHandler
     

    Methods inherited from class org.yamcs.AbstractYamcsService

    findStream, getConfig, getYamcsInstance

    Methods inherited from class com.google.common.util.concurrent.AbstractService

    addListener, awaitRunning, awaitRunning, awaitRunning, awaitTerminated, awaitTerminated, awaitTerminated, doCancelStart, failureCause, isRunning, notifyFailed, notifyStarted, notifyStopped, startAsync, state, stopAsync, toString

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface com.google.common.util.concurrent.Service

    addListener, awaitRunning, awaitRunning, awaitRunning, awaitTerminated, awaitTerminated, awaitTerminated, failureCause, isRunning, startAsync, state, stopAsync
  • Constructor Details

    • ReplicationMaster

      public ReplicationMaster()
  • Method Details

    • init

      public void init(String yamcsInstance, String serviceName, YConfiguration config) throws InitException
      Description copied from interface: YamcsService
      Initialize this service. This is called before the service is started. All operations should finish fast.
      Specified by:
      init in interface YamcsService
      Overrides:
      init in class AbstractYamcsService
      Parameters:
      yamcsInstance - The yamcs instance, or null if this is a global service.
      serviceName - The service name.
      config - The configured arguments for this service. If YamcsService.getSpec() is implemented then this contains the arguments after being validated (including any defaults).
      Throws:
      InitException - When something goes wrong during the execution of this method.
    • getSpec

      public Spec getSpec()
      Description copied from interface: YamcsService
      Returns the valid configuration options for this service.
      Returns:
      the argument specification, or null if the args should not be validated.
    • doStart

      protected void doStart()
      Specified by:
      doStart in class com.google.common.util.concurrent.AbstractService
    • doStop

      protected void doStop()
      Specified by:
      doStop in class com.google.common.util.concurrent.AbstractService
    • getTxId

      public long getTxId()
      returns the id of the last transaction

      If there is no transaction, returns -1

    • newChannelHandler

      public io.netty.channel.ChannelHandler newChannelHandler(Request req)
    • getStreamNames

      public List<String> getStreamNames()
    • isTcpClient

      public boolean isTcpClient()
    • getSlaveServers

      public List<ReplicationMaster.SlaveServer> getSlaveServers()
    • getFile

      public org.yamcs.replication.ManagedReplicationFile getFile(long startTxId)
      Get the file where startTxId transaction is or the earliest file available if the transaction is in the past

      Return null if the transaction is in the future. If there is a file which does not contain the startTxId but it's just the next one to come, then return that file.

      The file has the refCount increased so the caller must call the release method once it finished with it

      Parameters:
      startTxId -
      Returns: