Durable subcription persistence in router network
2 posts in topic
Flat View  Flat View
TOPIC ACTIONS:
 

Posted By:   David_McCullough
Posted On:   Tuesday, April 18, 2006 12:31 PM

I've read the FAQ "How are durable subscriptions handled in a router network?" and I'm wondering why durable subscriptions are not stored persistently. The scenario we have here at work is where we have multiple branch routers connected to a single "enterprise" router. The enterprise has the listener defined and the branches have connectors pointing at the listener. When a new store is added, no changes are required at the enterprise to bring the new store into the network - you just point the store at the enterprise and you're ready to go. This is a nice feature of Swift. The problem is, since the durable subscriptions from the stores are not persisted, messages can be lost in certain scenarios: Suppose   More>>

I've read the FAQ "How are durable subscriptions handled in a router network?" and I'm wondering why durable subscriptions are not stored persistently.


The scenario we have here at work is where we have multiple branch routers connected to a single "enterprise" router. The enterprise has the listener defined and the branches have connectors pointing at the listener. When a new store is added, no changes are required at the enterprise to bring the new store into the network - you just point the store at the enterprise and you're ready to go. This is a nice feature of Swift.


The problem is, since the durable subscriptions from the stores are not persisted, messages can be lost in certain scenarios: Suppose both a store and the enterprise are up, with the store receiving messages from the enterprise on a durable susscription. Suppose now that they both go down, and that the enterprise is the first to be brought up and that it start publishing messages again before the store is brought back up. These interim messages will never be seen by the store.


I know that a way around this issue is to use Static Remote Subscriptions, but I don't like the idea of having to "hardcode" the list of subscribed topics of a client (the store) in the server (enterprise). I'd rather let the client decide what it wants to subscribe to dynamically. More importantly, though, is I don't want to have to touch the enterprise configuration every time I add a new store.


Could you consider persisting the remote durables in a future release?


Thanks.

   <<Less

Re: Durable subcription persistence in router network

Posted By:   Andreas_Mueller  
Posted On:   Monday, May 15, 2006 09:15 AM

Bad news, sorry. We have done an evaluation of the changes required to persist remote subscriptions. It requires deep changes including protocol changes etc. A static remote subscription requires a static route so dynamic routes must also persisted, too. Further, if you enable persistence of subscriptions and routes, you'll get into other problems, mostly things like unsubscriptions or taking routers out of service while another router with persistency is down. These cases require administrative actions and so on. This is a wide area. Just consider that we have customers with 100 and more connected routers in very complex topologies. To ensure that this still works, we would have to test it extensively with a large router network. This is not a quick shot so we decided that we will not implement it for 6.1.0. However, we have it on our feature list for future releases.


So, again: sorry. We care what customers want but here it is not a quick shot. Anyway, you can implement it but you have to use static routes and static remote subs.

Re: Durable subcription persistence in router network

Posted By:   Andreas_Mueller  
Posted On:   Tuesday, April 18, 2006 02:07 PM

Yes, will do. But requires a protocol change because on a reconnect, both routers have to find out which subscriptions are there and which are not. Implementing this requires some effort.
About | Sitemap | Contact