Elliptics network: 2.6.0 release

Tagged:  

It is a rather major elliptics network release, although it does not bring something especially cool. Just what should be implemented in all and every distributed network storages.

So, changelog is pretty short:

  • implemented stall transactions reprocessing
  • proper node shutdown, it is now enabled by default even in examples which plainly destroyed objects by exiting previously
  • bug fixes

As usual code is available in archive and git tree.

A short feature list includes:

  • distributed hash tables, no metadata servers, horizontal scaling
  • data replication
  • transactions and parallel IO
  • different IO storage backends, modular architecture which allows to easily implement own transaction storage
  • automatic data repartitioning in case of removed or added nodes
  • ring addressing structure, ability to implement own transaction ID generation model
  • support for NATed connections
  • remote node statistics gathering module (usage of the disk, cpu, ram and so on)
  • IO update notifications support for any object in the network
  • advanced merge strategies
  • automatic tests (IO, joining, merge, deletion)

This is a milestone. And to date we stop here to wait for POHMELFS.
Enjoy!

May I ask to write a couple of words about "automatic data repartitioning in case of removed or added nodes"? Is it distributed hash recalculation?

Not quite hash recalculation, but exploitation of the ring addressing model.

The network uses ring addressing structure, where each node stores objects which belong to the ID range between given and the next node. When new node joins it splits ID range of the neighbour node and copies (if needed) more recent objects from the neighbour to own storage.

When node fails its neighbours will sync content they stored which would otherwise belonged to the failed node's range to the server which is now responsible for maintaining failed range.