Releases: Incubaid/arakoon
Arakoon 1.6.11
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
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
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
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
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
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
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 thehead_dir
, and will be moved in-place using arename
call, instead of copying the file. (#315)
Arakoon 1.6.7
Arakoon 1.6.7 is a maintenance release containing the following bug fixes:
Arakoon 1.6.6
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
This release contains some extra logging on info level (administrative calls, nursery calls, long on_accept duration).