324.1.1
by Mats Kindahl
Adding specification of a simple protobuf-based binary log format, |
1 |
package BinaryLog; |
2 |
||
3 |
// Design goals:
|
|
4 |
||
5 |
// - Keep the name of the individual binary logs out of the files. We
|
|
6 |
// assume that each binary log has a base name (e.g., the name of
|
|
7 |
// the server) and a sequence number, but we do not want to tie the
|
|
8 |
// base name
|
|
9 |
||
10 |
message Header { |
|
11 |
required uint32 server_id = 1; |
|
12 |
required uint32 trans_id = 2; |
|
13 |
required uint32 seqno = 3; |
|
14 |
}
|
|
15 |
||
16 |
// Start of a binary log. Note that the name
|
|
17 |
message Start { |
|
18 |
required Header header = 1; |
|
19 |
required uint32 server_version = 2; |
|
20 |
required string server_signature = 3; |
|
21 |
}
|
|
22 |
||
23 |
// Chain a binary log to the next binary log
|
|
24 |
message Chain { |
|
25 |
required Header header = 1; |
|
26 |
required uint32 next = 2; // Sequence number of next file |
|
27 |
}
|
|
28 |
||
29 |
message Query { |
|
30 |
// Assignments to variables that are part of the query
|
|
31 |
message Variable { |
|
32 |
required string name = 1; |
|
33 |
required string value = 2; |
|
34 |
// Character set?
|
|
35 |
}
|
|
36 |
||
37 |
required Header header = 1; |
|
38 |
repeated Variable variable = 3; |
|
39 |
required string query = 2; |
|
40 |
}
|
|
41 |
||
42 |
message Commit { |
|
43 |
required Header header = 1; |
|
44 |
}
|
|
45 |
||
46 |
message Rollback { |
|
47 |
required Header header = 1; |
|
48 |
}
|
|
49 |
||
50 |
||
51 |
||
52 |