Scalaris 0.7.0 released

Skip to first unread message

Nico Kruber

Apr 30, 2014, 9:45:12 AM4/30/14
We are happy to announce the new release of Scalaris, 0.7.0.
It includes major rewrites of the replica repair and gossip frameworks, new
(experimental) support for Map-Reduce jobs and active load balancing and
several enhancements and bug fixes among all modules. Please refer to
the most notable changes, listed below.

As usually, the source can be downloaded from

Packages for various linux distributions are available in the Open Build

The latest stable version is available in our main repository:

If you would like to stick with the 0.7 branch, use this repository:

For more instructions on how to use the prebuild packages, see

Scalaris' Java-API (in different versions) is also available in our maven
repository at:

Scalaris 0.7.0 (codename "Stauroderus scalaris") - April 28, 2014


- Java-API: integrate new OtpErlang library (1.5.9 from Erlang 17.0)

Demonstrator "Wiki on Scalaris" (supported by 4CaaSt
and Contrail

- add support for reading 7z dumps

Business Logic (partly supported by the EU project IES Cities
and the EIT ICT Labs project MCData):

- add an experimental Map-Reduce framework on top of Scalaris
- add experimental support for active load balancing with Karger and
Ruhl's algorithm including more flexible "load" definitions
- rrepair: completely new merkle tree sync protocol with an order of
magnitude lower traffic costs (use dynamic signature sizes based
on a "recon probability of one error" (p1e) in the leaf nodes)
- rrepair: add a trivial probabilistic reconciliation protocol using the
"recon probability of one error" (p1e)
- rrepair: replace bloom_fpr parameter with a generic "recon probability of
one error" (p1e)
- rrepair: add a trivial reconciliation phase for the differences identified
by bloom
- rrepair: more efficient resolve also including a list of keys to request
- gossip: completely new (more flexible) gossip framework
- slide: add support for 'jump' operations
- slide: do not create a timer for each received message (use a periodic
- comm_layer: tune TCP connection parameters to increase throughput and
latency (no delay_send)
- comm_layer: close idle TCP connections, support for no_keep_alive
connections (used by cyclon, for example)
- comm_layer: try to bundle more messages
- node join: less overhead during joins, especially in small rings
- rm_tman: less overhead by not adding nodes in the cache to the dn_cache
- rt_chord: skip trying to contact nodes in the own range
- rt_chord: stop stabilize when the own node is reached


- intervals: more compact (and transfer-friendly) representation
- trigger: replace modules with msg_delay:send_trigger/2
- config: replace implementation with a public ets table
- tune the garbage collection of some core processes and periodically
garbage collect all processes
- reduce the number of generated atoms and the number of ets tables used
- several smaller performance optimisations
- support for Erlang R13B01 up to 17.0 and current otp master


- improve test coverage (manual tests and random tests)
- change test definitions and allow groups of tests, e.g.
test (default), test-skipped,
all_TESTS, all_with_cover_TESTS, performance_TESTS, proto_sched_TESTS,


- add rrepair documentation


- proto_sched: new API, better determinism, more strict self-control
- proto_sched: support for short-lived processes
- proto_sched: more information in get_infos
- trace_mpath: more flexible LaTeX exports with more detailed message info
- trace_mpath: support meaningful PID names when tracing remote messages
- tester: full support for Erlang 17.0
- make: re-compile after Emakefile changes


- rrepair: fix unnecessary feedback for KVV items of the same version
- bulkowner: some fixes for (gracefully) leaving nodes
- fix numerous more (less severe) bugs
Reply all
Reply to author
0 new messages