Christopher Browne cbbrowne
Mon Mar 6 13:28:34 PST 2006
Florian G. Pflug wrote:

>> I think I need to write up a function to evaluate sl_listen in order to
>> have a proper test...
>
> If you just want to check that every node is reachable, that would be
> quite
> easy - e.g. with
> "select sum(1) from @NAMESPACE at .sl_listen group by sl_receiver,
> sl_origin".
> If this doesn't return N*(N-1), with N being the number of nodes, then
> something
> is fishy. Of course, this will only work if the algorihtm is take to
> be correct,
> so it's not really a test of the algorithm...
>
That only tests counts of things.

The trouble that we had with the former algorithm was that node 20 was
listening for events originating from node 10/11 from node 21.  That was
actually completely infeasible; 21 would never get those events.

> A real test would probably mean implementing another algorithm that
> should lead
> to the same result, and then comparing those... Which sounds like a
> lot of work :-(
>
I don't think it's forcibly all that bad.  We iterate up to (select
count(*) from sl_node) times, extending a network by a level each time,
so as to make sure that each origin and destination winds up covered.

> Anyway, I trust the algorithm itself much more than I trust my
> subscribed-set-special-case.
> This part is what really needs to be checked, IMHO.

I'll see about a "feasibility check"...

 



More information about the Slony1-general mailing list