summaryrefslogtreecommitdiff
path: root/src/backend/README.events
blob: 88e0f597b8abaf4891af6d2f1dce470b691e28eb (plain)
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.