qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aidan Skinner" <ai...@apache.org>
Subject High Availability through a shared filesystem
Date Thu, 24 Jan 2008 18:10:04 GMT
Comrades in Messaging,

I've been thinking recently about a paired broker setup using a shared
filesystem (eg. a SAN or NAS) for a persistent message store for a
high availability configuration. Briefly (and this is still a bit
back-of-a-beer-mat):

Broker A (BA) is started as a primary, pointing to a persistent
message store. It opens a unix domain socket in that filesystem and
listens on it.

Broker B (BB) is started as a secondary, also pointing to a persistent
message store. It opens the same unix domain socket and starts a
heartbeat conversation with BA.

Client's A (CA) and B (CB) connect to BA and publish and consume
persistent messages to it. They are configured to talk to BB in case
of failover.

BA fails, causing the heartbeat to fail. BB acquires the locks and
reads state from disk into it's message store. CA and CB to connect to
BB and continue to publish and consume messages as before.

BA comes back up and enters secondary mode since BB has the store
locks. If BB fails then clients connect to BA.

Obvious problems:
 It's only as reliable as the shared filesystem, it will survive a
broker host going down but not the storage.
 Failover could occur before the store has been fully read, requiring
the secondary to hold clients before it can start processing them.

Thoughts, comments and flames welcome. ;)

- Aidan
-- 
aim/y!:aidans42  g:aidan.skinner@gmail.com
http://aidan.skinner.me.uk/
"Almost everything is imitation... The most original writers borrowed
from one another." - Voltaire

Mime
View raw message