We should probably change the consumer such that when multiple consumers are
configured on a context, only one of them can be active at a time. In
particular, in refresh phase, you'll get multiple redundant copies of the
refresh data. All providers should be equivalent, so whichever one we connect
to first should be used and any others should be left idle.
Or, each session should be established completely sequentially - do a complete
refresh from provider #1, then do the same for provider #2, etc... In a
quiescent setup, the refreshes after provider #1 will be no-ops because the
consumer is already up to date. In a busy setup, each refresh will still have
work to do but it will be a smaller volume after provider #1's refresh completes.
Simplest would be to just establish the first connection and ignore other
providers unless the first connection breaks. Unfortunately this wouldn't be
reliable in MMR - you could have two nodes pointed at each other, ignoring any
other nodes in the configuration.
--
-- Howard Chu
CTO, Symas Corp.
http://www.symas.com
Director, Highland Sun
http://highlandsun.com/hyc/
Chief Architect, OpenLDAP
http://www.openldap.org/project/