1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
|
Event Documentation
---------------------
STORE_NODE
ev_data1 no_id
ev_data2 no_comment
ev_data3 no_spool
storeNode (no_id, no_comment, no_spool)
storeNode_int (no_id, no_comment, no_spool)
A new initially deactivated node is created. If the node already
exists, the no_comment and no_spool fields are updated.
ENABLE_NODE
ev_data1 no_id
enableNode (no_id)
enableNode_int (no_id)
Enabling a node in turn enables all subscriptions. The
ENABLE_NODE event must be generated on the local node. When
processing the event the origin of a set the newly activated node
is subscribed to will generate an ENABLE_SUBSCRIPTION event.
Every node will also create sl_confirm rows for the node.
DISABLE_NODE
ev_data1 no_id
disableNode (no_id)
disableNode_int (no_id)
Disabling a node also disables all its subscriptions.
DROP_NODE
ev_data1 no_id
dropNode (no_id)
dropNode_int (no_id)
This completely removes a node with all its subscriptions, path
and listen information from the configuration.
STORE_PATH
ev_data1 pa_server
ev_data2 pa_client
ev_data3 pa_conninfo
ev_data4 pa_connretry
storePath (pa_server, pa_client, pa_conninfo, pa_connretry)
storePath_int (pa_server, pa_client, pa_conninfo, pa_connretry)
DROP_PATH
ev_data1 pa_server
ev_data2 pa_client
storePath (pa_server, pa_client)
storePath_int (pa_server, pa_client)
STORE_LISTEN
ev_data1 li_origin
ev_data2 li_provider
ev_data3 li_receiver
storeListen (li_origin, li_provider, li_receiver)
storeListen_int (li_origin, li_provider, li_receiver)
DROP_LISTEN
ev_data1 li_origin
ev_data2 li_provider
ev_data3 li_receiver
dropListen (li_origin, li_provider, li_receiver)
dropListen_int (li_origin, li_provider, li_receiver)
STORE_SET
ev_data1 set_id
ev_data2 set_origin
ev_data3 set_comment
storeSet (set_id, set_comment)
storeSet_int (set_id, set_origin, set_comment)
The node on which storeSet is called is automatically the origin
of the new set.
MOVE_SET
ev_data1 set_id
ev_data2 new_set_origin
moveSet (set_id)
moveSet_int (set_id, new_set_origin)
The node on which moveSet is called is the one taking over the
origin of the set.
ACCEPT_SET
ev_data1 set_id
ev_data2 old_set_origin
ev_data3 new_set_origin
This was introduced to eliminate a data loss case.
When MOVE_SET is received by the new origin node, an ACCEPT_SET
is raised.
On nodes, then, if we receive the ACCEPT_SET first, then we
stop processing SYNCs so that a SYNC is not missed in the
interim.
DROP_SET
ev_data1 set_id
dropSet (set_id)
dropSet_int (set_id)
SET_ADD_TABLE
ev_data1 set_id
ev_data2 tab_id
ev_data3 tab_fqname
ev_data4 tab_attkind
ev_data5 tab_comment
setAddTable (set_id, tab_id, tab_fqname, tab_attkind, tab_comment)
setAddTable_int (set_id, tab_id, tab_fqname, tab_attkind, tab_comment)
tableAddTrigger (tab_id, tab_fqname, tab_attkind)
Only nodes that are currently subscribed to the set will add the
table to their configuration data. The call also adds the
replication log trigger to the table.
SET_DROP_TABLE
ev_data1 tab_id
setDropTable(tab_id)
setDropTable_int(tab_id)
Only nodes that are currently subscribed to the table will drop the
table from their configuration data. The call also drops the
replication log trigger from the table, and restores the "normal"
rules/triggers.
SET_DROP_SEQUENCE
ev_data1 seq_id
setDropSequence(seq_id)
setDropSequence_int(seq_id)
Only nodes that are currently subscribed to the sequence will drop the
table from their configuration data.
SET_MOVE_TABLE
ev_data1 tab_id
ev_data2 set_id
setMoveTable(tab_id, new_set_id)
setMoveTable_int(tab_id, new_set_id)
Only nodes currently subscribed to the table will drop it from
one set, and move it to another.
SET_MOVE_SEQUENCE
ev_data1 seq_id
ev_data2 set_id
setMoveSequence(seq_id, new_set_id)
setMoveSequence_int(seq_id, new_set_id)
Only nodes currently subscribed to the sequence will drop it
from one set, and move it to another.
SUBSCRIBE_SET
ev_data1 sub_set
ev_data2 sub_provider
ev_data3 sub_receiver
ev_data4 sub_forward
subscribeSet (sub_set, sub_provider, sub_forward)
subscribeSet_int (sub_set, sub_provider, sub_receiver, sub_forward)
The subscribeSet() function is called on the origin. This will
cascade through the system so that all nodes that store
forwarding information for this set are aware of the new
subscriber before the subscription is actually enabled. The
origin of the set will react to this with issuing the
ENABLE_SUBSCRIPTION message.
UNSUBSCRIBE_SET
ev_data1 sub_set
ev_data2 sub_receiver
unsubscribeSet (sub_set, sub_receiver)
unsubscribeSet_int (sub_set, sub_receiver)
ENABLE_SUBSCRIPTION
ev_data1 sub_set
ev_data2 sub_provider
ev_data3 sub_receiver
ev_data4 sub_forward
enableSubscription (sub_set, sub_receiver)
enableSubscription_int (sub_set, sub_receiver)
This is a special message issued by the origin of a set when a
node subscribes or a deactivated node gets reenabled.
|