Jan Wieck JanWieck at Yahoo.com
Fri Dec 23 08:11:30 PST 2011
Some of the logic in the slon daemon is rather complicated and I was 
wondering if anyone is actually using this "feature".

Currently it is possible to subscribe to multiple sets that originate on 
the same node through different data providers. Example

   +-- node 1 --+                   +-- node 2 --+
   |  origin A  | ------ A -------> |   sub A    |
   |  origin B  |                   |            |
   +------------+                   +------------+
         |                                 |
         B                                 A
         |                                 |
         V                                 V
   +-- node 3 --+                   +-- node 4 --+
   |   sub B    | ------ B -------> |   sub A    |
   |            |                   |   sub B    |
   +------------+                   +------------+

This does create two problems.

1) Node 4 must ensure that both nodes have processed a given SYNC. This
    is currently implemented correctly, but causes SYNC retries and
    thereby delays.

2) The log rows from data providers 2 and 3 would need to be properly
    merged according to their log_actionseq, or data updates could be
    applied out of order with respect to tables in different sets. This
    is currently NOT implemented right.

I would like to simplify this code and make Slony require that a node 
must use the same data provider for all the sets, that originate on 
another node. In the above scenario, either 2 or 3 would have to 
subscribe both sets and node 4 would have to get both from that node.

It would still be possible to have another set originating on another 
node and subscribe to that from a different data provider, like below:

   +-- node 1 --+                   +-- node 2 --+
   |  origin A  | ----- A,B ------> |   sub A    |
   |  origin B  |                   |   sub B    |
   +------------+                   +------------+
         |                                 |
         A                                A,B
         |                                 |
         V                                 V
   +-- node 3 --+                   +-- node 4 --+
   |   sub A    | ------ C -------> |   sub A    |
   |  origin C  |                   |   sub B    |
   +------------+                   |   sub C    |
                                    +------------+


If there are no objections to this change, it will most likely appear in 
Slony-I version 2.2 which is supposed to go into BETA early next year.


Jan

-- 
Anyone who trades liberty for security deserves neither
liberty nor security. -- Benjamin Franklin


More information about the Slony1-general mailing list