How to keep external applications in synch to intersystems instance of a mirror

111 views Asked by At

Our application is built on top of Intersystems IRIS (previously cache) and consists of a large core and DB that is enhanced with several external modules that connect to the core.

We deploy IRIS and the external apps on premise on the same server (for several reasons). When we use mirror, we have several servers with the same content (IRIS + external modules) that act as a high availability mirroring system, where only one node is the 'active' one and the rest of them are waiting.

Ideally, our external modules are started up and stopped following the IRIS instance on each node using two callbacks available.

When configured in mirror, they are only started on the 'active' node (by a provided callback) and initially stopped on all other nodes. When a failover occurs and one of the 'waiting' nodes is promoted to 'active', the external apps are started on that promoting node. On the demoting node (passing from 'active' to waiting, crashed or hang) we don't have a good way to stop those services as there is no callback from intersystems.

We are analyzing possible alternatives, but any other would be greatly appreciated as well as comments:

  • Implementing an additional service that keeps track of the IRIS instance
  • Making the external modules 'mirror' aware
1

There are 1 answers

2
DAiMor On

I would recommend to use one more server, where you would not need to stop/start services. Just keep the mirror alone, two servers, just only for the mirror, only data, no running code, no users. And one more Server, connected to the mirror as ECP via VIP. In this case, all of your services would work on that server, and should not care about where the status was changed. There will be a short outage during the switch in the mirror, but nothing fatal. I have such a configuration in production, but I have 10 servers behind the mirror, including 1 is just for interoperability reasons. And we already had a few switches, with no issues.