blob: d5c56d93635dc9ceeef31d02653bccd872694890 (
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
226
|
/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 2001, 2015 Oracle and/or its affiliates. All rights reserved.
*
* $Id$
*/
DBPRIVATE
PREFIX __rep
INCLUDE #include "db_int.h"
INCLUDE #include "dbinc/db_page.h"
INCLUDE #include "dbinc/db_am.h"
INCLUDE #include "dbinc/mp.h"
INCLUDE #include "dbinc/txn.h"
INCLUDE
/*
* bulk - message for bulk log records or pages
*/
BEGIN_MSG bulk check_length
ARG len u_int32_t
ARG lsn DB_LSN
ARG bulkdata DBT
END
/*
* control - replication control message
*/
BEGIN_MSG control check_length
ARG rep_version u_int32_t
ARG log_version u_int32_t
ARG lsn DB_LSN
ARG rectype u_int32_t
ARG gen u_int32_t
ARG msg_sec u_int32_t
ARG msg_nsec u_int32_t
ARG flags u_int32_t
END
/*
* egen data
*/
BEGIN_MSG egen check_length
ARG egen u_int32_t
END
/*
* file info
*
* NOTE: The order of the DBTs is important and relevant in the
* GET_CURINFO macro.
*/
BEGIN_MSG fileinfo alloc check_length version
ARG pgsize u_int32_t
ARG pgno db_pgno_t
ARG max_pgno db_pgno_t
ARG filenum u_int32_t
ARG finfo_flags u_int32_t
ARG type u_int32_t
ARG db_flags u_int32_t
ARG uid DBT
ARG info DBT
ARG dir DBT
ARG blob_fid_lo u_int32_t
ARG blob_fid_hi u_int32_t
END
BEGIN_MSG fileinfo_v7 alloc check_length version
ARG pgsize u_int32_t
ARG pgno db_pgno_t
ARG max_pgno db_pgno_t
ARG filenum u_int32_t
ARG finfo_flags u_int32_t
ARG type u_int32_t
ARG db_flags u_int32_t
ARG uid DBT
ARG info DBT
ARG dir DBT
END
BEGIN_MSG fileinfo_v6 alloc check_length version
ARG pgsize u_int32_t
ARG pgno db_pgno_t
ARG max_pgno db_pgno_t
ARG filenum u_int32_t
ARG finfo_flags u_int32_t
ARG type u_int32_t
ARG db_flags u_int32_t
ARG uid DBT
ARG info DBT
END
/*
* grant info - clients send to masters granting a lease.
*/
BEGIN_MSG grant_info check_length
ARG msg_sec u_int32_t
ARG msg_nsec u_int32_t
END
/*
* We do not need to do anything with LOG record data.
* It is opaque data to us.
*/
/*
* log request
*/
BEGIN_MSG logreq check_length
ARG endlsn DB_LSN
END
/*
* We do not need to do anything with NEWCLIENT/NEWSITE cdata dbt.
* It is user data and the app has to do whatever transformation
* it needs to with its own data.
*/
/*
* newfile version
*/
BEGIN_MSG newfile check_length
ARG version u_int32_t
END
/*
* update - send update information
*/
BEGIN_MSG update alloc check_length version
ARG first_lsn DB_LSN
ARG first_vers u_int32_t
ARG num_files u_int32_t
END
/*
* vote info. Current version.
*/
BEGIN_MSG vote_info check_length
ARG egen u_int32_t
ARG nsites u_int32_t
ARG nvotes u_int32_t
ARG priority u_int32_t
ARG spare_pri u_int32_t
ARG tiebreaker u_int32_t
ARG data_gen u_int32_t
END
/*
* vote info old version from REPVERSION 5 and earlier.
*/
BEGIN_MSG vote_info_v5 check_length
ARG egen u_int32_t
ARG nsites u_int32_t
ARG nvotes u_int32_t
ARG priority u_int32_t
ARG tiebreaker u_int32_t
END
/*
* LSN history database - key
*/
BEGIN_MSG lsn_hist_key
ARG version u_int32_t
ARG gen u_int32_t
END
/*
* LSN history database - data
*/
BEGIN_MSG lsn_hist_data
ARG envid u_int32_t
ARG lsn DB_LSN
ARG hist_sec u_int32_t
ARG hist_nsec u_int32_t
END
/*
* Request for blob files.
*/
BEGIN_MSG blob_update_req
ARG blob_fid u_int64_t
ARG blob_sid u_int64_t
ARG blob_id u_int64_t
ARG highest_id u_int64_t
END
/*
* A list of blob file for a database.
*/
BEGIN_MSG blob_update
ARG blob_fid u_int64_t
ARG highest_id u_int64_t
ARG flags u_int32_t
ARG num_blobs u_int32_t
END
/*
* Blob file description, part of blob_update.
*/
BEGIN_MSG blob_file
ARG blob_sid u_int64_t
ARG blob_id u_int64_t
ARG blob_size u_int64_t
END
/*
* A piece of data from a blob file.
*/
BEGIN_MSG blob_chunk
ARG flags u_int32_t
ARG blob_fid u_int64_t
ARG blob_sid u_int64_t
ARG blob_id u_int64_t
ARG offset u_int64_t
ARG data DBT
END
/*
* Request for data from a blob file at the given offset.
*/
BEGIN_MSG blob_chunk_req
ARG blob_fid u_int64_t
ARG blob_sid u_int64_t
ARG blob_id u_int64_t
ARG offset u_int64_t
END
|