Note that there are some explanatory texts on larger screens.

plurals
  1. PO.NET library for active/passive fail-over clustering
    text
    copied!<p>I want to develop an application that connects to some input sources and processes the messages it reads (think BizTalk in principle, but not as heavy). For performance and reliability I would like to enable horizontal scaling of the service, obviously by utilising a shared storage (such as DB) to act as a message queuing mechanism.</p> <p>However, threads that access resources such as email or disk folder cannot be scaled horizontally. Only one instance must be running at one time reading from that input source. (Further message processing business logic can of course reside on multiple nodes).</p> <p>This is a perfect candidate for Active/Passive clustering. One node is considered "Active" and actively connects to the "single-instance" resources (such as email inbox), while others are "Passive". If the "Active" node dies, then the other "Passive" nodes elect a new "Active" node among themselves.</p> <p>Now the question: is there a .NET library out there somewhere which helps one implement the usual failover clustering logic? (i.e. implementing the necessary heartbeat sending/detection, and "active" node election process). As I don't want to reinvent the wheel.</p> <p>What I can see from the research done already:</p> <ul> <li>BizTalk Server supports this functionality natively, but I am not using BizTalk as it's too heavy and expensive (but I want to emulate this functionality of it)</li> <li>Windows Server supports Failover Clustering (in certain high-end versions like Windows Server 2008 Enterprise or Datacenter), but again this is an expensive solution (as each node would need the expensive license)</li> <li>There is a lot of information on how failover algorithm should work, but I cannot see an open source implementation anywhere ... (only in commercial products sold at a premium)</li> </ul> <p>I understand that it might be considered advanced and desirable functionality, and hence why commercial solutions for it are expensive. This is fine - if there is no open-source implementation or library out there, I will develop one on my own. I just don't want to spend the effort it it already exists.</p> <p><strong>UPDATE 12/02/2011:</strong> Found SAForum (<a href="http://www.saforum.org/link/linkshow.asp?link_id=214720" rel="nofollow">http://www.saforum.org/link/linkshow.asp?link_id=214720</a>), which is a website that publishes open specification for developing service availability concepts. There is also OpenSAF (<a href="http://www.opensaf.org/Welcome-to-OpenSAF%E2%84%A2~151213~14944.htm" rel="nofollow">http://www.opensaf.org/Welcome-to-OpenSAF%E2%84%A2~151213~14944.htm</a>), and open-source C++ implementation of specifications on SAForum. Looks comprehensive, but is very heavy. It will take me a lot of time to wade through the specifications and documentation. It also covers a lot more than just fail-over, offering specification for full scalable distributed system (notifications, distributed events, locks, cluster management, etc.) ... Still no sign of a .NET implementation anywhere.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload