Hi,

what's the advantage of Hazelcast or Zookeeper compared to a filesystem on a NAS or SAN ?

To avoid single point of failure, you have to setup multiple Hazelcast or Zookeeper instances. If you have only one instance, it's like having a single filesystem. Using a SAN or NAS (it could be simply a mdadm partition on Linux with NFS for instance), you have the same thing as multiple Hazelcast/Zookeeper but in a more straight forward/convenient way.

Regards
JB

On 05/05/2014 04:25 PM, Jeremy Jongsma wrote:
The easiest implementation (or the least custom code) would be to block
on a distributed lock via Hazelcast or Zookeeper, both of which have
high-availability designs that mitigate any single points of failure.
When the primary dies/disappears, the lock is automatically released,
the standby gets the lock, and it takes over as primary.

I'd also recommend not caring which is primary. Treat them as identical
instances, and let the lock decide who is primary - whoever gets in
first wins. That way you don't have to worry about maintaining multiple
application configurations.


On Sun, May 4, 2014 at 3:32 PM, Achim Nierbeck <[email protected]
<mailto:[email protected]>> wrote:

    Hi,

    this exact scenario you've been describing is not available
    out-of-the-box.
    Though I think, regarding the jdbc-lock vs. an active ping-pong via
    network, there is not much of a difference, in the end you rely on
    the network interface for communicating either directly or via the
    data-base. I'd use a database cause this is something that could be
    "clustered" also and therefore be as good as a direct ping-pong.
    Another alternative would be to create this on top of cellar, where
    you'd use hazelcast as your shared medium containing the information
    of state.
    So in the end you have to "die a certain death" :)
    In different environments databases are considered to be "fail-safe"
    in others not, so this solely depends on the environment you working
    in.

    Regarding the realization, if you really think the jdbc-lock with
    the default hot-stand-by mechanism isn't enough, I'd take the
    clustering of Karaf with Hazelcast (that would be Karaf-Cellar) into
    account. I would use the hazelcast map as a "shared" resource
    instead of a ping, this way all nodes know of each other and as soon
    as one is missing on adding it's timestamp the others know of the
    failed node.

    regards, Achim



    2014-05-04 21:35 GMT+02:00 Benjamin Debeerst <[email protected]
    <mailto:[email protected]>>:

        Hello Karaf Users,

        I was having a look into redundant setups for a Karaf container.
        What I found is this documentation [1], which describes failover
        configurations with locks on a file or a database.

        But doesn't a lock on a single resource introduce a new single
        point of failure? Or am I missing something here?

        How can I setup a full-redundant setup without that single
        resource lock? Can I at all? Or will I have to roll this on my
        own completely?

        The setup I imagine is a master-slave setup like the following:
        - two instances run on (physically) separate machines
        - one is dedicated (configured as) master, the other as slave
        - similar to container level locking, the slave instance is on
        hot standby
        - master and slave hold an active connection (heartbeat or ping
        pong)
        - as soon as the slave doesn't see a heartbeat from the master,
        it assumes the master is dead and becomes (temporary) master
        - when the (original) master shows up again, the slave goes back
        to standby

        What do you think about such a setup? How would you realize it
        with Karaf and are there maybe already existing solutions for
        such a setup? Could I maybe realize this with some kind of child
        instances setup?

        Thanks in advance for any comments,
        Benjamin

        [1]
        http://karaf.apache.org/manual/latest-2.3.x/users-guide/failover.html




    --

    Apache Karaf <http://karaf.apache.org/> Committer & PMC
    OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
    Committer & Project Lead
    blog <http://notizblog.nierbeck.de/>

    Software Architect / Project Manager / Scrum Master



--
Jean-Baptiste Onofré
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com

Reply via email to