Skip to content

Releases: Incubaid/arakoon

Arakoon 1.6.11

27 May 12:52
Compare
Choose a tag to compare

This release contains the following changes compared to arakoon 1.6.10:

  • fix handling of multiple ips for nodes in the qshell client extension (#422)
  • fix a bug which could result in multiple masters being active at the same time (and thus result in reads not being consistent) (#427)
  • fix a bug in catchup-only mode where a new database was fetched from another node but not copied to head.db. This could result in data loss (missing head.db/tlfs/tlogs) on that node when after an unclean shutdown the main database would be removed. (#430)
  • fix a case where node could remain isolated from the others which are making progress (#429)

Arakoon 1.7.2

07 Apr 07:08
Compare
Choose a tag to compare

This release contains the following changes compared to arakoon 1.7.1:

  • now available under the Apache v2 license
  • prevent dirty tree from resulting in a nice version number
  • fix for the memory leak in server loop (#382) ARAKOON-467
  • remove unused name attribute in node config
  • debian packaging cleaned up using lintian
  • packages are now built on our CI environment and have libev4 as a dependency

Arakoon 1.6.10

04 Apr 11:40
Compare
Choose a tag to compare

This release contains the following changes compared to arakoon 1.6.9:

  • dump crash log when going down with StoreCounterTooLow
  • prevent dirty tree from resulting in a nice version number
  • fix for the memory leak in server loop (#382) ARAKOON-467

Arakoon 1.7.1

19 Mar 12:49
Compare
Choose a tag to compare

Some dependency versions have been updated/added:

  • opam 1.1
  • ocaml 4.01.0
  • camltc 0.9.0
  • lwt 2.4.4
  • quickcheck 1.0.0

New functionalities and improvements are:

  • better drop master behavior while maintenance is ongoing in the cluster (#324)
  • qshell dependency is now optional (#323)
  • some optimizations:
    • remove applying of updates to the store (on slaves) from the critical loop (#339)
    • send accept messages to slaves before appending (+fsync) to the master tlog (#332)
    • improved batched store behavior when doing range queries (less flushing) (#351)
    • avoiding some string copies for queries (#361, #356, #333)
    • create less tuples (#368)
    • use some ocaml primitives to (de)serialize ints (#368)
  • fuse client protocol (#338)
  • flush_store client call (can be useful for testing, not to be used in production)
  • dump crash log when going down with StoreCounterTooLow (#346)
  • more fine grained read consistency (Consistent, AtLeast txid, NoGuarantees) in a backwards compatible manner + accompanying get_txid client operation (#354)
  • copy_db_to_head maintenance operation (#355)
  • extra logging for fsync_dir (#359)

Arakoon 1.6.9

18 Feb 14:37
Compare
Choose a tag to compare

This is an arakoon maintenance release containing the following changes:

  • added a timeout to the drop master procedure, this should prevent clusters in which some nodes are doing maintenance from hanging (until the maintenance operations finished) (#324)
  • fuse the client protocol, which should result a smoother shutdown of nodes under heavy load by clients (#338)
  • range_entries and rev_range_entries statistics (#331)
  • remove applying of updates against the store from the inner (critical) loop (#339)

Arakoon 1.7.0

24 Jan 14:49
Compare
Choose a tag to compare

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

Arakoon 1.6.8

23 Jan 08:56
Compare
Choose a tag to compare

Arakoon 1.6.8 contains the following change:

  • ARAKOON-455 New --in-place option for inject-as-head to reduce space overhead during the operation.

    When using the --in-place option, the new head database should be present on the same volume as the head_dir, and will be moved in-place using a rename call, instead of copying the file. (#315)

Arakoon 1.6.7

07 Jan 11:45
Compare
Choose a tag to compare

Arakoon 1.6.7 is a maintenance release containing the following bug fixes:

  • prevent a cluster from potentially remaining masterless after the master was shut down (#280)
  • ipv6 support (#273)
  • don't close store and tlog when a node dies with an exception (#282)
  • a tentative fix for ARAKOON-449 (masterless cluster) (#288)

Arakoon 1.6.6

09 Dec 10:05
Compare
Choose a tag to compare

Arakoon 1.6.6 is a maintenance release. It depends on camltc.0.8.1.
It contains the following changes:

  • fix for ARAKOON-447 which could cause inconsistencies between the store of different nodes (#249)
  • always copy files through a temp file to their destination (#220)
  • always fsync the directory after renaming or creating a file (#220)
  • better (more conservative) defaults for batched_store (#222)
  • compress in smaller chuncks (#222)
  • fix memory leak (#254)
  • fix for ARAKOON-442 Allow slaves running in defrag to keep participating in the cluster (#252)
  • bump a log level (#257)

Arakoon 1.6.5

01 Oct 15:59
Compare
Choose a tag to compare

This release contains some extra logging on info level (administrative calls, nursery calls, long on_accept duration).