tigerbeetle-node 0.11.3 → 0.11.4

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.
Files changed (74) hide show
  1. package/dist/.client.node.sha256 +1 -1
  2. package/package.json +1 -1
  3. package/src/node.zig +6 -1
  4. package/src/tigerbeetle/src/benchmark.zig +1 -1
  5. package/src/tigerbeetle/src/c/tb_client/context.zig +1 -1
  6. package/src/tigerbeetle/src/c/tb_client/echo_client.zig +1 -1
  7. package/src/tigerbeetle/src/c/tb_client/thread.zig +1 -1
  8. package/src/tigerbeetle/src/c/tb_client.h +97 -111
  9. package/src/tigerbeetle/src/c/tb_client.zig +29 -18
  10. package/src/tigerbeetle/src/c/tb_client_header.zig +218 -0
  11. package/src/tigerbeetle/src/c/test.zig +7 -7
  12. package/src/tigerbeetle/src/cli.zig +4 -4
  13. package/src/tigerbeetle/src/config.zig +183 -379
  14. package/src/tigerbeetle/src/constants.zig +394 -0
  15. package/src/tigerbeetle/src/demo.zig +1 -1
  16. package/src/tigerbeetle/src/ewah_fuzz.zig +2 -0
  17. package/src/tigerbeetle/src/io/darwin.zig +1 -1
  18. package/src/tigerbeetle/src/io/linux.zig +2 -2
  19. package/src/tigerbeetle/src/io/windows.zig +1 -1
  20. package/src/tigerbeetle/src/lsm/bloom_filter.zig +1 -1
  21. package/src/tigerbeetle/src/lsm/compaction.zig +8 -3
  22. package/src/tigerbeetle/src/lsm/forest.zig +1 -1
  23. package/src/tigerbeetle/src/lsm/forest_fuzz.zig +10 -7
  24. package/src/tigerbeetle/src/lsm/grid.zig +1 -1
  25. package/src/tigerbeetle/src/lsm/groove.zig +5 -39
  26. package/src/tigerbeetle/src/lsm/level_iterator.zig +1 -1
  27. package/src/tigerbeetle/src/lsm/manifest.zig +1 -6
  28. package/src/tigerbeetle/src/lsm/manifest_level.zig +1 -1
  29. package/src/tigerbeetle/src/lsm/manifest_log.zig +1 -1
  30. package/src/tigerbeetle/src/lsm/manifest_log_fuzz.zig +14 -9
  31. package/src/tigerbeetle/src/lsm/posted_groove.zig +2 -13
  32. package/src/tigerbeetle/src/lsm/segmented_array_benchmark.zig +1 -1
  33. package/src/tigerbeetle/src/lsm/set_associative_cache.zig +1 -1
  34. package/src/tigerbeetle/src/lsm/table.zig +25 -17
  35. package/src/tigerbeetle/src/lsm/table_immutable.zig +1 -1
  36. package/src/tigerbeetle/src/lsm/table_iterator.zig +1 -1
  37. package/src/tigerbeetle/src/lsm/table_mutable.zig +1 -1
  38. package/src/tigerbeetle/src/lsm/test.zig +1 -1
  39. package/src/tigerbeetle/src/lsm/tree.zig +28 -3
  40. package/src/tigerbeetle/src/lsm/tree_fuzz.zig +16 -17
  41. package/src/tigerbeetle/src/main.zig +18 -16
  42. package/src/tigerbeetle/src/message_bus.zig +1 -1
  43. package/src/tigerbeetle/src/message_pool.zig +2 -2
  44. package/src/tigerbeetle/src/simulator.zig +2 -9
  45. package/src/tigerbeetle/src/state_machine.zig +582 -1806
  46. package/src/tigerbeetle/src/storage.zig +1 -1
  47. package/src/tigerbeetle/src/test/accounting/auditor.zig +1 -1
  48. package/src/tigerbeetle/src/test/accounting/workload.zig +1 -1
  49. package/src/tigerbeetle/src/test/cluster.zig +1 -1
  50. package/src/tigerbeetle/src/test/conductor.zig +1 -1
  51. package/src/tigerbeetle/src/test/fuzz.zig +19 -0
  52. package/src/tigerbeetle/src/test/message_bus.zig +1 -1
  53. package/src/tigerbeetle/src/test/network.zig +1 -1
  54. package/src/tigerbeetle/src/test/state_checker.zig +1 -1
  55. package/src/tigerbeetle/src/test/storage.zig +5 -5
  56. package/src/tigerbeetle/src/test/storage_checker.zig +1 -1
  57. package/src/tigerbeetle/src/test/table.zig +226 -0
  58. package/src/tigerbeetle/src/time.zig +1 -1
  59. package/src/tigerbeetle/src/tracer.zig +400 -212
  60. package/src/tigerbeetle/src/unit_tests.zig +1 -0
  61. package/src/tigerbeetle/src/vsr/client.zig +1 -1
  62. package/src/tigerbeetle/src/vsr/clock.zig +1 -1
  63. package/src/tigerbeetle/src/vsr/journal.zig +6 -6
  64. package/src/tigerbeetle/src/vsr/journal_format_fuzz.zig +3 -1
  65. package/src/tigerbeetle/src/vsr/replica.zig +5 -3
  66. package/src/tigerbeetle/src/vsr/replica_format.zig +1 -1
  67. package/src/tigerbeetle/src/vsr/superblock.zig +1 -1
  68. package/src/tigerbeetle/src/vsr/superblock_client_table.zig +1 -1
  69. package/src/tigerbeetle/src/vsr/superblock_free_set.zig +3 -2
  70. package/src/tigerbeetle/src/vsr/superblock_free_set_fuzz.zig +2 -0
  71. package/src/tigerbeetle/src/vsr/superblock_fuzz.zig +8 -5
  72. package/src/tigerbeetle/src/vsr/superblock_manifest.zig +1 -1
  73. package/src/tigerbeetle/src/vsr/superblock_quorums_fuzz.zig +2 -0
  74. package/src/tigerbeetle/src/vsr.zig +1 -1
@@ -4,11 +4,10 @@ const assert = std.debug.assert;
4
4
  const fmt = std.fmt;
5
5
  const mem = std.mem;
6
6
  const os = std.os;
7
- const log = std.log.scoped(.main);
7
+ const log_main = std.log.scoped(.main);
8
8
 
9
9
  const build_options = @import("tigerbeetle_build_options");
10
- const config = @import("config.zig");
11
- pub const log_level: std.log.Level = @intToEnum(std.log.Level, config.log_level);
10
+ const config = @import("constants.zig");
12
11
  const tracer = @import("tracer.zig");
13
12
 
14
13
  const cli = @import("cli.zig");
@@ -31,10 +30,8 @@ const SuperBlock = vsr.SuperBlockType(Storage);
31
30
  const superblock_zone_size = @import("vsr/superblock.zig").superblock_zone_size;
32
31
  const data_file_size_min = @import("vsr/superblock.zig").data_file_size_min;
33
32
 
34
- comptime {
35
- assert(config.deployment_environment == .production or
36
- config.deployment_environment == .development);
37
- }
33
+ pub const log_level: std.log.Level = config.log_level;
34
+ pub const log = config.log;
38
35
 
39
36
  pub fn main() !void {
40
37
  var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
@@ -129,7 +126,12 @@ const Command = struct {
129
126
  options: StateMachine.Options,
130
127
  path: [:0]const u8,
131
128
  ) !void {
132
- const allocator = arena.allocator();
129
+ var tracer_allocator = if (config.tracer_backend == .tracy)
130
+ tracer.TracerAllocator.init(arena.allocator())
131
+ else
132
+ arena;
133
+
134
+ const allocator = tracer_allocator.allocator();
133
135
 
134
136
  try tracer.init(allocator);
135
137
  defer tracer.deinit(allocator);
@@ -166,13 +168,13 @@ const Command = struct {
166
168
  node_maybe = node.next;
167
169
  }
168
170
  }
169
- log.info("{}: Allocated {} bytes in {} regions during replica init", .{
171
+ log_main.info("{}: Allocated {} bytes in {} regions during replica init", .{
170
172
  replica.replica,
171
173
  allocation_size,
172
174
  allocation_count,
173
175
  });
174
176
 
175
- log.info("{}: cluster={}: listening on {}", .{
177
+ log_main.info("{}: cluster={}: listening on {}", .{
176
178
  replica.replica,
177
179
  replica.cluster,
178
180
  addresses[replica.replica],
@@ -222,15 +224,15 @@ fn print_value(
222
224
  comptime field: []const u8,
223
225
  comptime value: anytype,
224
226
  ) !void {
225
- if (@typeInfo(@TypeOf(value)) == .Pointer) {
226
- try std.fmt.format(writer, "{s}=\"{s}\"\n", .{
227
+ switch (@typeInfo(@TypeOf(value))) {
228
+ .Fn => {}, // Ignore the log() function.
229
+ .Pointer => try std.fmt.format(writer, "{s}=\"{s}\"\n", .{
227
230
  field,
228
231
  std.fmt.fmtSliceEscapeLower(value),
229
- });
230
- } else {
231
- try std.fmt.format(writer, "{s}={}\n", .{
232
+ }),
233
+ else => try std.fmt.format(writer, "{s}={}\n", .{
232
234
  field,
233
235
  value,
234
- });
236
+ }),
235
237
  }
236
238
  }
@@ -6,7 +6,7 @@ const os = std.os;
6
6
 
7
7
  const is_linux = builtin.target.os.tag == .linux;
8
8
 
9
- const config = @import("config.zig");
9
+ const config = @import("constants.zig");
10
10
  const log = std.log.scoped(.message_bus);
11
11
 
12
12
  const vsr = @import("vsr.zig");
@@ -3,7 +3,7 @@ const builtin = @import("builtin");
3
3
  const assert = std.debug.assert;
4
4
  const mem = std.mem;
5
5
 
6
- const config = @import("config.zig");
6
+ const config = @import("constants.zig");
7
7
 
8
8
  const vsr = @import("vsr.zig");
9
9
  const Header = vsr.Header;
@@ -22,7 +22,7 @@ const message_size_max_padded = config.message_size_max + config.sector_size;
22
22
  pub const messages_max_replica = messages_max: {
23
23
  var sum: usize = 0;
24
24
 
25
- sum += config.io_depth_read + config.io_depth_write; // Journal I/O
25
+ sum += config.journal_iops_read_max + config.journal_iops_write_max; // Journal I/O
26
26
  sum += config.clients_max; // SuperBlock.client_table
27
27
  sum += 1; // Replica.loopback_queue
28
28
  sum += config.pipeline_max; // Replica.pipeline
@@ -4,7 +4,7 @@ const assert = std.debug.assert;
4
4
  const mem = std.mem;
5
5
 
6
6
  const tb = @import("tigerbeetle.zig");
7
- const config = @import("config.zig");
7
+ const config = @import("constants.zig");
8
8
  const vsr = @import("vsr.zig");
9
9
  const Header = vsr.Header;
10
10
 
@@ -31,12 +31,9 @@ const log_state_transitions_only = builtin.mode != .Debug;
31
31
 
32
32
  const log_simulator = std.log.scoped(.simulator);
33
33
 
34
- /// You can fine tune your log levels even further (debug/info/notice/warn/err/crit/alert/emerg):
34
+ /// You can fine tune your log levels even further (debug/info/warn/err):
35
35
  pub const log_level: std.log.Level = if (log_state_transitions_only) .info else .debug;
36
36
 
37
- /// Modifies compile-time constants on "config.zig".
38
- pub const deployment_environment = .simulation;
39
-
40
37
  const cluster_id = 0;
41
38
 
42
39
  var cluster: *Cluster = undefined;
@@ -44,10 +41,6 @@ var state_checker: *StateChecker = undefined;
44
41
  var storage_checker: *StorageChecker = undefined;
45
42
 
46
43
  pub fn main() !void {
47
- comptime {
48
- assert(config.deployment_environment == .simulation);
49
- }
50
-
51
44
  // This must be initialized at runtime as stderr is not comptime known on e.g. Windows.
52
45
  log_buffer.unbuffered_writer = std.io.getStdErr().writer();
53
46