Armada KVArmada KV
/vmain

armada follower

Start Armada in follower mode.

armada follower [flags]

Options

      --api.address string                                    API server address. The address the server listens on. (default "http://0.0.0.0:8443")
      --api.advertise-address string                          Advertise API server address, used for NAT traversal. (default "http://127.0.0.1:8443")
      --api.allowed-cn string                                 AllowedCN is a CN which must be provided by a client.
      --api.allowed-hostname string                           AllowedHostname is an IP address or hostname that must match the TLS certificate provided by a client.
      --api.ca-filename string                                Path to the API server client auth CA file.
      --api.cert-filename string                              Path to the API server certificate.
      --api.client-cert-auth                                  API server client certificate auth enabled. If set to true the api.ca-filename should be provided as well.
      --api.key-filename string                               Path to the API server private key file.
      --api.max-concurrent-connections uint32                 Maximum number of allowed concurrent client connections. Default of 0 means no limit.
      --api.max-concurrent-streams uint32                     Maximum number of concurrent streams open. Default of 0 means no limit.
      --api.stream-workers int                                Number of workers to use to process incoming streams. These workers are pre-started and should reduce an overhead of stack allocation as well as prevent potential overload of a storage layer. Default of 0 means number of CPUs + 1, any negative number will result in unlimited workers.
      --dev-mode                                              Development mode enabled (verbose logging, human-friendly log format).
  -h, --help                                                  help for follower
      --log-level string                                      Log level: DEBUG/INFO/WARN/ERROR. (default "INFO")
      --maintenance.enabled                                   Whether maintenance API is enabled. (default true)
      --maintenance.token string                              Token to check for maintenance API access, if left empty (default) no token is checked.
      --memberlist.advertise-address string                   AdvertiseAddress is the address to advertise to other Armada instances used for NAT traversal.
                                                              Gossip services running on remote Armada instances will use AdvertiseAddress to exchange gossip service related messages. AdvertiseAddress is in the format of IP:Port, Hostname:Port or DNS Name:Port.
                                                              When not set, the raft.address value is used (gossip shares the raft UDP port).
      --memberlist.cluster-name string                        Cluster name, propagated in Memberlist API responses as well as used as used as a label when forming the gossip cluster.
                                                              All nodes of the cluster MUST set this to the same value. If changing it is advisable to turn off all the nodes and then startup with the new value. (default "default")
      --memberlist.members strings                            Seed is a list of addresses of remote Armada instances to bootstrap the gossip service.
                                                              Each address should be the raft address (IP:Port) of a peer — gossip shares the same UDP port as raft via ALPN multiplexing.
                                                              When not set, the raft.initial-members addresses are used automatically as gossip seeds.
      --memberlist.node-name string                           Node name override, MUST be unique in a cluster, if not specified random stable UUID will be used instead.
      --memberlist.tls-ca-file string                         Path to the CA certificate file used to verify gossip peer certificates.
      --memberlist.tls-cert-file string                       Path to the TLS certificate file for mutual TLS between gossip peers.
      --memberlist.tls-key-file string                        Path to the TLS private key file for mutual TLS between gossip peers.
      --raft.address string                                   RaftAddress is a hostname:port or IP:port address used by the Raft RPC module for exchanging Raft messages and snapshots.
                                                              This is also the identifier for a Storage instance. RaftAddress should be set to the public address that can be accessed from remote Storage instances.
      --raft.compaction-overhead uint                         CompactionOverhead defines the number of most recent entries to keep after each Raft log compaction.
                                                              Raft log compaction is performed automatically every time when a snapshot is created. (default 5000)
      --raft.election-rtt int                                 ElectionRTT is the minimum number of message RTT between elections. Message RTT is defined by NodeHostConfig.RTTMillisecond. 
                                                              The Raft paper suggests it to be a magnitude greater than HeartbeatRTT, which is the interval between two heartbeats. In Raft, the actual interval between elections is randomized to be between ElectionRTT and 2 * ElectionRTT.
                                                              As an example, assuming NodeHostConfig.RTTMillisecond is 100 millisecond, to set the election interval to be 1 second, then ElectionRTT should be set to 10.
                                                              When CheckQuorum is enabled, ElectionRTT also defines the interval for checking leader quorum. (default 20)
      --raft.heartbeat-rtt int                                HeartbeatRTT is the number of message RTT between heartbeats. Message RTT is defined by NodeHostConfig.RTTMillisecond. The Raft paper suggest the heartbeat interval to be close to the average RTT between nodes.
                                                              As an example, assuming NodeHostConfig.RTTMillisecond is 100 millisecond, to set the heartbeat interval to be every 200 milliseconds, then HeartbeatRTT should be set to 2. (default 1)
      --raft.initial-members strings                          Raft cluster initial members is an ordered list of raft addresses for the initial cluster nodes.
                                                              The position in the list (1-based) determines the replica ID. Each node derives its own replica ID
                                                              by finding its own raft.address in this list. All nodes must specify the same list in the same order.
                                                              Example for a 3-node cluster: "--raft.initial-members=127.0.0.1:5012,127.0.0.1:5013,127.0.0.1:5014".
      --raft.listen-address string                            ListenAddress is a hostname:port or IP:port address used by the Raft RPC module to listen on for Raft message and snapshots.
                                                              When the ListenAddress field is not set, The Raft RPC module listens on RaftAddress. If 0.0.0.0 is specified as the IP of the ListenAddress, Armada listens to the specified port on all interfaces.
                                                              When hostname or domain name is specified, it is locally resolved to IP addresses first and Armada listens to all resolved IP addresses.
      --raft.max-in-mem-log-size uint                         MaxInMemLogSize is the target size in bytes allowed for storing in memory Raft logs on each Raft node.
                                                              In memory Raft logs are the ones that have not been applied yet. (default 6291456)
      --raft.max-recv-queue-size uint                         MaxReceiveQueueSize is the maximum size in bytes of each receive queue. Once the maximum size is reached, further replication messages will be
                                                              dropped to restrict memory usage. When set to 0, it means the queue size is unlimited.
      --raft.max-send-queue-size uint                         MaxSendQueueSize is the maximum size in bytes of each send queue. Once the maximum size is reached, further replication messages will be
                                                              dropped to restrict memory usage. When set to 0, it means the send queue size is unlimited.
      --raft.node-host-dir string                             NodeHostDir raft internal storage (default "/tmp/armada/raft")
      --raft.quic-udp-buffer-size int                         QUICUDPBufferSize is the UDP socket receive/send buffer size in bytes requested for the QUIC transport.
                                                              When set to a positive value the QUIC library's buffer requests are capped at this value, preventing log warnings on systems
                                                              where the kernel UDP buffer limit is lower than the library default (7 MiB). A value of 0 uses the library default.
      --raft.rtt duration                                     RTTMillisecond defines the average Round Trip Time (RTT) between two NodeHost instances.
                                                              Such a RTT interval is internally used as a logical clock tick, Raft heartbeat and election intervals are both defined in term of how many such RTT intervals.
                                                              Note that RTTMillisecond is the combined delays between two NodeHost instances including all delays caused by network transmission, delays caused by NodeHost queuing and processing. (default 50ms)
      --raft.snapshot-entries uint                            SnapshotEntries defines how often the state machine should be snapshot automatically.
                                                              It is defined in terms of the number of applied Raft log entries.
                                                              SnapshotEntries can be set to 0 to disable such automatic snapshotting. (default 10000)
      --raft.snapshot-recovery-type string                    Specifies the way how the snapshots should be shared between nodes within the cluster. Options: snapshot, checkpoint, default: checkpoint for non Windows systems. 
                                                              Type 'snapshot' uses in-memory snapshot of DB to send over wire to the peer. Type 'checkpoint'' uses hardlinks on FS a sends DB in tarball over wire. Checkpoint is thus much more memory and compute efficient at the potential expense of disk space, it is not advisable to use on OS/FS which does not support hardlinks.
      --raft.state-machine-dir string                         StateMachineDir persistent storage for the state machine. (default "/tmp/armada/state-machine")
      --raft.tls-ca-file string                               Path to the CA certificate file used to verify raft peer certificates.
      --raft.tls-cert-file string                             Path to the TLS certificate file for mutual TLS between raft peers. Must be set together with raft.tls-key-file and raft.tls-ca-file.
      --raft.tls-key-file string                              Path to the TLS private key file for mutual TLS between raft peers.
      --raft.wal-dir string                                   WALDir is the directory used for storing the WAL of Raft entries. 
                                                              It is recommended to use low latency storage such as NVME SSD with power loss protection to store such WAL data. 
                                                              Leave WALDir to have zero value will have everything stored in NodeHostDir.
      --replication.ca-filename string                        Path to the client CA cert file. The CA file is used to verify server authority. (default "hack/replication/ca.crt")
      --replication.cert-filename string                      Path to the client certificate. (default "hack/replication/client.crt")
      --replication.insecure-skip-verify                      InsecureSkipVerify controls whether a client verifies the server's certificate chain and host name. If InsecureSkipVerify is true, crypto/tls accepts any certificate presented by the server and any host name in that certificate.
      --replication.keepalive-time duration                   After a duration of this time if the replication client doesn't see any activity it pings the server to see if the transport is still alive. If set below 10s, a minimum value of 10s will be used instead. (default 1m0s)
      --replication.keepalive-timeout duration                After having pinged for keepalive check, the replication client waits for a duration of Timeout and if no activity is seen even after that the connection is closed. (default 10s)
      --replication.key-filename string                       Path to the client private key file. (default "hack/replication/client.key")
      --replication.leader-address string                     Address of the leader replication API to connect to. (default "localhost:8444")
      --replication.lease-interval duration                   Interval in which the workers re-new their table leases. (default 15s)
      --replication.log-rpc-timeout duration                  The log RPC timeout. (default 1m0s)
      --replication.max-recovery-in-flight uint               The maximum number of recovery goroutines allowed to run in this instance. (default 1)
      --replication.max-recv-message-size-bytes uint          The maximum size of single replication message allowed to receive. (default 8388608)
      --replication.max-snapshot-recv-bytes-per-second uint   Maximum bytes per second received by the snapshot API client, default value 0 means unlimited.
      --replication.poll-interval duration                    Replication interval in seconds, the leader poll time. (default 1s)
      --replication.reconcile-interval duration               Replication interval of tables reconciliation (workers startup/shutdown). (default 30s)
      --replication.server-name string                        ServerName ensures the cert matches the given host in case of discovery/virtual hosting.
      --replication.snapshot-rpc-timeout duration             The snapshot RPC timeout. (default 1h0m0s)
      --rest.address string                                   REST API server address. (default "http://127.0.0.1:8079")
      --rest.read-timeout duration                            Maximum duration for reading the entire request. (default 5s)
      --storage.block-cache-size int                          Shared block cache size in bytes, the cache is used to hold uncompressed blocks of data in memory. (default 16777216)
      --storage.table-cache-size int                          Shared table cache size, the cache is used to hold handles to open SSTs. (default 1024)
      --tables.enabled                                        Whether tables API is enabled. (default true)
      --tables.token string                                   Token to check for tables API access, if left empty (default) no token is checked.

SEE ALSO

  • armada - Armada is a read-optimized distributed key-value store.