tigerbeetle-node 0.11.4 → 0.11.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.client.node.sha256 +1 -1
- package/dist/index.d.ts +41 -42
- package/dist/index.js +41 -42
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +0 -1
- package/src/node.zig +5 -5
- package/src/tigerbeetle/scripts/benchmark.bat +6 -1
- package/src/tigerbeetle/scripts/benchmark.sh +1 -1
- package/src/tigerbeetle/src/benchmark.zig +4 -4
- package/src/tigerbeetle/src/c/tb_client/context.zig +6 -6
- package/src/tigerbeetle/src/c/tb_client/echo_client.zig +2 -2
- package/src/tigerbeetle/src/c/tb_client/thread.zig +0 -1
- package/src/tigerbeetle/src/c/tb_client.h +42 -43
- package/src/tigerbeetle/src/c/tb_client.zig +2 -2
- package/src/tigerbeetle/src/c/test.zig +8 -8
- package/src/tigerbeetle/src/cli.zig +41 -17
- package/src/tigerbeetle/src/config.zig +24 -3
- package/src/tigerbeetle/src/constants.zig +8 -5
- package/src/tigerbeetle/src/demo.zig +4 -4
- package/src/tigerbeetle/src/io/darwin.zig +4 -4
- package/src/tigerbeetle/src/io/linux.zig +6 -6
- package/src/tigerbeetle/src/io/windows.zig +4 -4
- package/src/tigerbeetle/src/lsm/compaction.zig +17 -51
- package/src/tigerbeetle/src/lsm/forest.zig +2 -2
- package/src/tigerbeetle/src/lsm/forest_fuzz.zig +11 -16
- package/src/tigerbeetle/src/lsm/grid.zig +5 -5
- package/src/tigerbeetle/src/lsm/groove.zig +7 -4
- package/src/tigerbeetle/src/lsm/level_iterator.zig +2 -2
- package/src/tigerbeetle/src/lsm/manifest.zig +19 -18
- package/src/tigerbeetle/src/lsm/manifest_level.zig +3 -2
- package/src/tigerbeetle/src/lsm/manifest_log.zig +8 -8
- package/src/tigerbeetle/src/lsm/manifest_log_fuzz.zig +31 -15
- package/src/tigerbeetle/src/lsm/merge_iterator.zig +106 -0
- package/src/tigerbeetle/src/lsm/posted_groove.zig +4 -3
- package/src/tigerbeetle/src/lsm/segmented_array.zig +1 -0
- package/src/tigerbeetle/src/lsm/segmented_array_benchmark.zig +13 -13
- package/src/tigerbeetle/src/lsm/set_associative_cache.zig +2 -2
- package/src/tigerbeetle/src/lsm/table.zig +33 -19
- package/src/tigerbeetle/src/lsm/table_immutable.zig +4 -4
- package/src/tigerbeetle/src/lsm/table_iterator.zig +19 -11
- package/src/tigerbeetle/src/lsm/table_mutable.zig +52 -18
- package/src/tigerbeetle/src/lsm/test.zig +14 -10
- package/src/tigerbeetle/src/lsm/tree.zig +48 -45
- package/src/tigerbeetle/src/lsm/tree_fuzz.zig +310 -271
- package/src/tigerbeetle/src/main.zig +40 -36
- package/src/tigerbeetle/src/message_bus.zig +25 -25
- package/src/tigerbeetle/src/message_pool.zig +18 -17
- package/src/tigerbeetle/src/simulator.zig +28 -83
- package/src/tigerbeetle/src/{test/accounting → state_machine}/auditor.zig +9 -9
- package/src/tigerbeetle/src/{test/accounting → state_machine}/workload.zig +112 -52
- package/src/tigerbeetle/src/state_machine.zig +20 -14
- package/src/tigerbeetle/src/storage.zig +12 -12
- package/src/tigerbeetle/src/test/cluster.zig +17 -17
- package/src/tigerbeetle/src/test/conductor.zig +8 -8
- package/src/tigerbeetle/src/test/id.zig +10 -0
- package/src/tigerbeetle/src/test/message_bus.zig +0 -2
- package/src/tigerbeetle/src/test/network.zig +5 -5
- package/src/tigerbeetle/src/test/state_checker.zig +2 -2
- package/src/tigerbeetle/src/test/state_machine.zig +151 -46
- package/src/tigerbeetle/src/test/storage.zig +54 -51
- package/src/tigerbeetle/src/test/storage_checker.zig +3 -3
- package/src/tigerbeetle/src/tigerbeetle.zig +0 -1
- package/src/tigerbeetle/src/time.zig +0 -1
- package/src/tigerbeetle/src/tracer.zig +4 -4
- package/src/tigerbeetle/src/unit_tests.zig +2 -2
- package/src/tigerbeetle/src/vsr/client.zig +10 -10
- package/src/tigerbeetle/src/vsr/clock.zig +11 -10
- package/src/tigerbeetle/src/vsr/journal.zig +581 -531
- package/src/tigerbeetle/src/vsr/journal_format_fuzz.zig +11 -11
- package/src/tigerbeetle/src/vsr/replica.zig +377 -367
- package/src/tigerbeetle/src/vsr/replica_format.zig +14 -11
- package/src/tigerbeetle/src/vsr/superblock.zig +125 -80
- package/src/tigerbeetle/src/vsr/superblock_client_table.zig +9 -9
- package/src/tigerbeetle/src/vsr/superblock_free_set.zig +4 -4
- package/src/tigerbeetle/src/vsr/superblock_fuzz.zig +11 -6
- package/src/tigerbeetle/src/vsr/superblock_manifest.zig +5 -5
- package/src/tigerbeetle/src/vsr/superblock_quorums_fuzz.zig +3 -3
- package/src/tigerbeetle/src/vsr.zig +25 -25
|
@@ -3,7 +3,7 @@ const std = @import("std");
|
|
|
3
3
|
const assert = std.debug.assert;
|
|
4
4
|
const log = std.log.scoped(.fuzz_journal_format);
|
|
5
5
|
|
|
6
|
-
const
|
|
6
|
+
const constants = @import("../constants.zig");
|
|
7
7
|
const util = @import("../util.zig");
|
|
8
8
|
const vsr = @import("../vsr.zig");
|
|
9
9
|
const journal = @import("./journal.zig");
|
|
@@ -19,9 +19,9 @@ pub fn main() !void {
|
|
|
19
19
|
var prng = std.rand.DefaultPrng.init(args.seed);
|
|
20
20
|
|
|
21
21
|
// +10 to occasionally test formatting into a buffer larger than the total data size.
|
|
22
|
-
const write_sectors_max = @divExact(
|
|
22
|
+
const write_sectors_max = @divExact(constants.journal_size_headers, constants.sector_size);
|
|
23
23
|
const write_sectors = 1 + prng.random().uintLessThan(usize, write_sectors_max + 10);
|
|
24
|
-
const write_size = write_sectors *
|
|
24
|
+
const write_size = write_sectors * constants.sector_size;
|
|
25
25
|
|
|
26
26
|
log.info("write_size={} write_sectors={}", .{ write_size, write_sectors });
|
|
27
27
|
|
|
@@ -32,13 +32,13 @@ pub fn main() !void {
|
|
|
32
32
|
pub fn fuzz_format_wal_headers(write_size_max: usize) !void {
|
|
33
33
|
assert(write_size_max > 0);
|
|
34
34
|
assert(write_size_max % @sizeOf(vsr.Header) == 0);
|
|
35
|
-
assert(write_size_max %
|
|
35
|
+
assert(write_size_max % constants.sector_size == 0);
|
|
36
36
|
|
|
37
37
|
const write = try std.testing.allocator.alloc(u8, write_size_max);
|
|
38
38
|
defer std.testing.allocator.free(write);
|
|
39
39
|
|
|
40
40
|
var offset: usize = 0;
|
|
41
|
-
while (offset <
|
|
41
|
+
while (offset < constants.journal_size_headers) {
|
|
42
42
|
const write_size = journal.format_wal_headers(cluster, offset, write);
|
|
43
43
|
defer offset += write_size;
|
|
44
44
|
|
|
@@ -48,19 +48,19 @@ pub fn fuzz_format_wal_headers(write_size_max: usize) !void {
|
|
|
48
48
|
try verify_slot_header(slot, header);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
assert(offset ==
|
|
51
|
+
assert(offset == constants.journal_size_headers);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
pub fn fuzz_format_wal_prepares(write_size_max: usize) !void {
|
|
55
55
|
assert(write_size_max > 0);
|
|
56
56
|
assert(write_size_max % @sizeOf(vsr.Header) == 0);
|
|
57
|
-
assert(write_size_max %
|
|
57
|
+
assert(write_size_max % constants.sector_size == 0);
|
|
58
58
|
|
|
59
59
|
const write = try std.testing.allocator.alloc(u8, write_size_max);
|
|
60
60
|
defer std.testing.allocator.free(write);
|
|
61
61
|
|
|
62
62
|
var offset: usize = 0;
|
|
63
|
-
while (offset <
|
|
63
|
+
while (offset < constants.journal_size_prepares) {
|
|
64
64
|
const write_size = journal.format_wal_prepares(cluster, offset, write);
|
|
65
65
|
defer offset += write_size;
|
|
66
66
|
|
|
@@ -68,12 +68,12 @@ pub fn fuzz_format_wal_prepares(write_size_max: usize) !void {
|
|
|
68
68
|
while (offset_checked < write_size) {
|
|
69
69
|
const offset_header_next = std.mem.alignForward(
|
|
70
70
|
offset + offset_checked,
|
|
71
|
-
|
|
71
|
+
constants.message_size_max,
|
|
72
72
|
) - offset;
|
|
73
73
|
|
|
74
74
|
if (offset_checked == offset_header_next) {
|
|
75
75
|
// Message header.
|
|
76
|
-
const slot = @divExact(offset + offset_checked,
|
|
76
|
+
const slot = @divExact(offset + offset_checked, constants.message_size_max);
|
|
77
77
|
const header_bytes = write[offset_checked..][0..@sizeOf(vsr.Header)];
|
|
78
78
|
const header = std.mem.bytesToValue(vsr.Header, header_bytes);
|
|
79
79
|
|
|
@@ -92,7 +92,7 @@ pub fn fuzz_format_wal_prepares(write_size_max: usize) !void {
|
|
|
92
92
|
}
|
|
93
93
|
assert(offset_checked == write_size);
|
|
94
94
|
}
|
|
95
|
-
assert(offset ==
|
|
95
|
+
assert(offset == constants.journal_size_prepares);
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
fn verify_slot_header(slot: usize, header: vsr.Header) !void {
|