Scalaris release 0.3.0 available

9 views
Skip to first unread message

Florian Schintke

unread,
Jul 15, 2011, 12:00:39 PM7/15/11
to scal...@googlegroups.com
After two years of development, we are happy to announce a new release
of Scalaris (see http://scalaris.googlecode.com):

Scalaris 0.3.0 (codename "Rhinechis Scalaris")

Changes include:

API:

- new API with interoperable bindings to Java, Python, Ruby, and JSON
- support for several data types, including strings, integers, JSON
objects, binary objects.
- new transaction interface with support for bundled requests for
better latency.
- separate APIs to access the raw DHT, a DHT with replication, and the
transactional DHT

Demonstrator:

- added Wikipedia-hosting using Scalaris as demonstrator application

Business Logic:

- fault-tolerant startup: start Scalaris when a quorum of the
known_hosts becomes available (option -q in bin/scalarisctl)
- perform data hand-over when nodes join/gracefully leave
(also works when transactions are executed concurrently)
- added passive load balancing (when a node joins a ring, it samples
several other nodes and joins at the node that balances the number
of stored items the most)
- completely rewritten transaction layer (more modular, more
extendible, less latency)
- modularized / reimplemented Paxos algorithm, so the algorithm can
also be used outside transactions (e.g. used for quorum-startup)
- switched almost all components to our component framework 'gen_component'
- added gossiping for estimating e.g. the number of nodes or the
average load in a ring
- more reliable unreliable look-up
- better ring start-up on slow networks

Infrastructure:

- Vivaldi and topology inference
- support for Erlang 13B01 and newer
- faster TCP/IP communication between Scalaris nodes
- completely rewritten failure detector framework for more accurate
detection of node failures
- added numerous Erlang type specifications
- extended unittests

Tests:

- added own random testing framework that reads type specifications
and scans the source code for constants to generate proper random
test-data
- extended gen_component with breakpoint-support for debugging and
testing (perform deterministic pseudo-random message interleaving
tests)
- added numerous unittests
- added language-binding interoperability tests

Documentation:

- extended, but - as always - by far not enough...

Bugs:

- fixed countless bugs

Thorsten, Nico, Florian

Reply all
Reply to author
Forward
0 new messages