>  Is there a properties/options object that I have to pass ratis?

Yes.  When building a RaftServer/RaftClient, we may pass a RaftProperties
object.

> Are these set via environment variables?

Ratis itself currently won't pick up conf properties from environment
variables.  Applications may (1) get the values from environment variables,
(2) set values to a RaftProperties and then (3) pass the RaftProperties to
build a RaftServer/RaftClient.

Thanks for your questions!
Tsz-Wo


On Wed, Jan 5, 2022 at 10:45 PM Asad Awadia <[email protected]> wrote:

> Are these set via environment variables? Is there a properties/options
> object that I have to pass ratis?
>
> Regards,
> Asad
> ------------------------------
> *From:* Tsz Wo Sze <[email protected]>
> *Sent:* Tuesday, December 28, 2021 5:53:10 AM
> *To:* [email protected] <[email protected]>
> *Subject:* Re: Snapshot and log truncation
>
> 1. The StateMachineUpdater is a thread to apply log transactions to the
> state machine and take snapshots (by
> calling StateMachine.applyTransaction(..)/takeSnapshot()).  If
> snapshot-auto-trigger is enabled, it will take a snapshot when the number
> of transactions hits the configured threshold.
> - raft.server.snapshot.auto.trigger.enabled (boolean, default=false)
> - raft.server.snapshot.auto.trigger.threshold (long, default=400000)
>
> 2. No, it can be multiple files.  The SnapshotInfo interface supports a
> list of files.  An implementation is FileListSnapshotInfo.
>
> 3. The server will determine if the log transactions can be purged.  There
> are two conf properties:
>
> - raft.server.log.purge.upto.snapshot.index (boolean, default=false)
> Once a snapshot has been taken at index i, try purging all the
> transactions with index up to i.
>
> - raft.server.log.purge.gap (int, default=1024)
> The gap between two purge operations to avoid executing the purge
> operations too frequently.  E.g. Suppose the purge.gap is 1024.  If a purge
> happened at log index 100, the next purge will NOT happen until log index
> 1124.
>
> 4. The latest snapshot and all the log transactions after it.
>
> Thanks.
> Tsz-Wo
>
>
> On Wed, Dec 22, 2021 at 12:43 PM Asad Awadia <[email protected]> wrote:
>
> Looking into snapshotting the statemachine I had a few questions
>
> 1. When is the takeSnapshot in the StateMachine function invoked and by
> whom?
>
> 2. Does the snapshot need to be in a single file returned by
> storage.getSnapshotFile ? If my DB has 5 files I have to merge them into
> one or something? Any compression done?
>
> 3. Is the log truncated after the snapshot? Is that automatic? Any
> frequency configuration required to be set?
>
> 4. When I backup my DB - what parts of the snapshot should I backup
> alongside my own DB files?
>
>
> Thank you again for your help
>
>

Reply via email to