Skip to content

Arakoon 1.7.0

Compare
Choose a tag to compare
@domsj domsj released this 24 Jan 14:49
· 529 commits to 1.7 since this release

This is a new major release of arakoon. It should be built with camltc 0.8.2.
Besides the bug fixes on the 1.6 series it contains the following major feature additions

  • Witness nodes. These nodes participate in the quorum, but don't keep a store. Therefor they can never become the master.

    They can be configured with

   witness = true
  • Snappy compression for tlogs (in addition to the existing bzip2)

    One can choose a compressor via the configuration file.

   tlog_compression=bz2 # default; options are: none,bz2,snappy 

Snappy has a lower compression factor, but is also way cheaper than bz2.
Everything is backward compatible, so older nodes with .tlf files need not worry.
The format for new compressed tlog files changed, as well as the extension (.tlx).
(So even if you use bz2, the file will still be called xxx.tlx )

  • New replace client call:
   method replace : key -> value option -> (value option) Lwt.t
   (**
     [replace key wanted] assigns the wanted value to the key,
     and returns the previous assignment (if any) for that key.
     If wanted is None, the binding is deleted.
   *)
  • SSL, which can be enabled for clients only, for inter-node communications only, or for both.

    Documentation is available at https://github.com/Incubaid/arakoon/blob/1.7.0/doc/tls.rst

  • Fsync=true by default, which is the recommended configuration.

  • Paxos state machine changes resulting in quicker and more reliable master election.

  • nop call that goes through Paxos.

  • throttling of collapse:

# Throttle transaction processing during collapsing
# On some hardware and in some deployments, the collapsing process can be a
# very IO and CPU-hungry process. This can have a negative impact on the
# overall responsiveness of an Arakoon node.
# This setting allows some control over throttling database transaction rates
# during compaction.
# When this setting is configured, the collapsing thread yields execution
# (sleeps) for some time after every database transaction it processed. The
# sleep time is calculated by multiplying the time the previous transaction
# took to process with the configured number.
# As an example, when this is set to 1.0, the collapsing process will take
# at least twice as long to complete compared to no throttling being enabled.
collapse_slowdown = 1.5