Archived

This forum has been archived. Please start a new discussion on GitHub.

IceStorm, IceGrid, Fault tolerancy

Hello Guys !

I've question around fault tolerancy, IceStorm, IceGrid.

I've a simple application that use IceStorm. However, sometimes the server hosting the IceStorm can shutdown... So the idea is to define a replica group inside IceGrid and to define a set of IceStorm.

Using both IceGrid and IceStorm doesn't resolve my problem. In fact, client and server using IceStorm should subscribe to all IceStorms available.

I would like to know the best way to do it.

Thank you.

Joël

Comments

  • The problem space comes down to how you want to handle the failure of your IceStorm node.

    If you can tolerate a few lost messages, just have the publisher continue publishing oneway messages as you don't need a full TCP socket for that and as such you won't have to reconnect the publisher after a failure. The subscribers can simply handle the connection lost exception and gracefully attempt to reconnect every 10 seconds or so over the next 5 minutes.

    If failure is not an option, can I ask why the IceStorm server is shutting down? Servers should have uptime measured in years, not days :) so...
  • eric.hill wrote: »
    The problem space comes down to how you want to handle the failure of your IceStorm node.
    Right ;)
    eric.hill wrote: »
    If you can tolerate a few lost messages, just have the publisher continue publishing oneway messages as you don't need a full TCP socket for that and as such you won't have to reconnect the publisher after a failure. The subscribers can simply handle the connection lost exception and gracefully attempt to reconnect every 10 seconds or so over the next 5 minutes.
    I can imagine to lost message and follow your advice. However, how you catch a connection lost exception from the subscriber side ?
    eric.hill wrote: »
    If failure is not an option, can I ask why the IceStorm server is shutting down? Servers should have uptime measured in years, not days :) so...
    It is fair, but I know pretty well laws of Murphy ... ;)

    Thank you
  • I can imagine to lost message and follow your advice. However, how you catch a connection lost exception from the subscriber side?
    Set up a thread that calls ice_ping on the proxy every so often. If that call fails with a ConnectionLostException, your connection is dead and needs to be reconnected.
    It is fair, but I know pretty well laws of Murphy ... ;)
    Yes, I know Mr. Murphy all too well... ;)