File: 2pc_docs.go

package info (click to toggle)
golang-github-cznic-lldb 1.0.1-1.1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 708 kB
  • sloc: makefile: 46
file content (44 lines) | stat: -rw-r--r-- 1,174 bytes parent folder | download | duplicates (3)
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
// Copyright 2014 The lldb Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

/*

Anatomy of a WAL file

WAL file
	A sequence of packets

WAL packet, parts in slice notation
	[0:4],   4 bytes:        N uint32        // network byte order
	[4:4+N], N bytes:        payload []byte  // gb encoded scalars

Packets, including the 4 byte 'size' prefix, MUST BE padded to size == 0 (mod
16). The values of the padding bytes MUST BE zero.

Encoded scalars first item is a packet type number (packet tag). The meaning of
any other item(s) of the payload depends on the packet tag.

Packet definitions

	{wpt00Header int, typ int, s string}
		typ:	Must be zero (ACIDFiler0 file).
		s:	Any comment string, empty string is okay.

		This packet must be present only once - as the first packet of
		a WAL file.

	{wpt00WriteData int, b []byte, off int64}
		Write data (WriteAt(b, off)).

	{wpt00Checkpoint int, sz int64}
		Checkpoint (Truncate(sz)).

		This packet must be present only once - as the last packet of
		a WAL file.

*/

package lldb

//TODO optimize bitfiler/wal/2pc data above final size