archiva-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kishore g <g.kish...@gmail.com>
Subject Replication and Fault tolerance using Helix
Date Wed, 12 Dec 2012 00:10:20 GMT
Hi,

I am writing this email to propose a solution to add replication and fault
tolerance to Archiva. To be honest my knowledge and understanding of
Archiva is superficial. What ever I have understood about it is from
reading docs and my interaction with Olivier.

As of today, Archiva does not support replication and does not support
automatic fail over. Archiva has two main storage types, the files uploaded
to the repository which uses file system for storage and metadata storage
for which Jack Rabbit is used. Archiva also supports notification mechanism
where a consumer can be notified of the changes in the repository.

In order to have fault tolerance and replication, we can have multiple
archiva instances running for redundancy. One of them will be elected as
the master and will accept writes/reads. And the remaining will be slaves
and only serve reads. The slaves can get notified from the master of every
change and it will apply the changes. When the master dies, one of the
slaves will become the master and serve writes.

Apache Helix is a newly incubated project and provides the basic building
blocks to add partition management, recovery from failure and cluster
expansion with ease. I have built a sample prototype how one can build such
a replicated file store using Helix.  More information can be found here.
http://helix.incubator.apache.org/recipes/rsync_replicated_file_store.html

I have used rsync for replication and  apache jci module to detect file
system changes to show case the recipe as a generic use case. However in
case of Archiva, one can use the notification mechanism provided by archiva
consumer for detecting changes and using archiva api's to fetch the changed
files.

There are lot of other benefits that comes from integrating with Helix. For
example, it allows rolling upgrade without impacting the clients, change
the topology dynamically, supports cluster wide scheduling and monitoring
of various tasks.
More info on Helix: http://helix.incubator.apache.org/index.html
User list: user-subscribe@helix.incubator.apache.org

I have been interacting with Olivier while building this prototype and he
has provided valuable suggestions  I would be glad to get feedback on this
approach and if it makes sense to try out an integration with Helix and is
this something that is of value to Archiva.

thanks,
Kishore G

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message