tigerbeetle-node 0.8.1 → 0.9.143
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/README.md +584 -184
- package/dist/benchmark.js +59 -51
- package/dist/benchmark.js.map +1 -1
- package/dist/bin/aarch64-linux-gnu/client.node +0 -0
- package/dist/bin/aarch64-linux-musl/client.node +0 -0
- package/dist/bin/aarch64-macos/client.node +0 -0
- package/dist/bin/x86_64-linux-gnu/client.node +0 -0
- package/dist/bin/x86_64-linux-musl/client.node +0 -0
- package/dist/bin/x86_64-macos/client.node +0 -0
- package/dist/bin/x86_64-windows/client.node +0 -0
- package/dist/bindings.d.ts +141 -0
- package/dist/bindings.js +112 -0
- package/dist/bindings.js.map +1 -0
- package/dist/index.d.ts +2 -125
- package/dist/index.js +51 -101
- package/dist/index.js.map +1 -1
- package/dist/test.js +69 -55
- package/dist/test.js.map +1 -1
- package/package-lock.json +26 -0
- package/package.json +17 -28
- package/src/benchmark.ts +58 -49
- package/src/bindings.ts +631 -0
- package/src/index.ts +71 -163
- package/src/node.zig +169 -148
- package/src/test.ts +71 -57
- package/src/translate.zig +19 -36
- package/.yarn/releases/yarn-berry.cjs +0 -55
- package/.yarnrc.yml +0 -1
- package/scripts/download_node_headers.sh +0 -25
- package/scripts/postinstall.sh +0 -6
- package/src/tigerbeetle/scripts/benchmark.bat +0 -46
- package/src/tigerbeetle/scripts/benchmark.sh +0 -55
- package/src/tigerbeetle/scripts/install.sh +0 -6
- package/src/tigerbeetle/scripts/install_zig.bat +0 -109
- package/src/tigerbeetle/scripts/install_zig.sh +0 -84
- package/src/tigerbeetle/scripts/lint.zig +0 -199
- package/src/tigerbeetle/scripts/upgrade_ubuntu_kernel.sh +0 -39
- package/src/tigerbeetle/scripts/vopr.bat +0 -48
- package/src/tigerbeetle/scripts/vopr.sh +0 -33
- package/src/tigerbeetle/scripts/vr_state_enumerate +0 -46
- package/src/tigerbeetle/src/benchmark.zig +0 -290
- package/src/tigerbeetle/src/cli.zig +0 -244
- package/src/tigerbeetle/src/config.zig +0 -239
- package/src/tigerbeetle/src/demo.zig +0 -125
- package/src/tigerbeetle/src/demo_01_create_accounts.zig +0 -35
- package/src/tigerbeetle/src/demo_02_lookup_accounts.zig +0 -7
- package/src/tigerbeetle/src/demo_03_create_transfers.zig +0 -24
- package/src/tigerbeetle/src/demo_04_create_pending_transfers.zig +0 -61
- package/src/tigerbeetle/src/demo_05_post_pending_transfers.zig +0 -37
- package/src/tigerbeetle/src/demo_06_void_pending_transfers.zig +0 -24
- package/src/tigerbeetle/src/demo_07_lookup_transfers.zig +0 -7
- package/src/tigerbeetle/src/fifo.zig +0 -104
- package/src/tigerbeetle/src/io/benchmark.zig +0 -213
- package/src/tigerbeetle/src/io/darwin.zig +0 -793
- package/src/tigerbeetle/src/io/linux.zig +0 -1038
- package/src/tigerbeetle/src/io/test.zig +0 -643
- package/src/tigerbeetle/src/io/windows.zig +0 -1161
- package/src/tigerbeetle/src/io.zig +0 -34
- package/src/tigerbeetle/src/main.zig +0 -144
- package/src/tigerbeetle/src/message_bus.zig +0 -1000
- package/src/tigerbeetle/src/message_pool.zig +0 -142
- package/src/tigerbeetle/src/ring_buffer.zig +0 -289
- package/src/tigerbeetle/src/simulator.zig +0 -417
- package/src/tigerbeetle/src/state_machine.zig +0 -2470
- package/src/tigerbeetle/src/storage.zig +0 -308
- package/src/tigerbeetle/src/test/cluster.zig +0 -351
- package/src/tigerbeetle/src/test/message_bus.zig +0 -93
- package/src/tigerbeetle/src/test/network.zig +0 -179
- package/src/tigerbeetle/src/test/packet_simulator.zig +0 -387
- package/src/tigerbeetle/src/test/state_checker.zig +0 -145
- package/src/tigerbeetle/src/test/state_machine.zig +0 -76
- package/src/tigerbeetle/src/test/storage.zig +0 -438
- package/src/tigerbeetle/src/test/time.zig +0 -84
- package/src/tigerbeetle/src/tigerbeetle.zig +0 -222
- package/src/tigerbeetle/src/time.zig +0 -113
- package/src/tigerbeetle/src/unit_tests.zig +0 -14
- package/src/tigerbeetle/src/vsr/client.zig +0 -505
- package/src/tigerbeetle/src/vsr/clock.zig +0 -812
- package/src/tigerbeetle/src/vsr/journal.zig +0 -2293
- package/src/tigerbeetle/src/vsr/marzullo.zig +0 -309
- package/src/tigerbeetle/src/vsr/replica.zig +0 -5015
- package/src/tigerbeetle/src/vsr.zig +0 -1017
- package/yarn.lock +0 -42
package/src/benchmark.ts
CHANGED
|
@@ -23,32 +23,35 @@ const client = createClient({
|
|
|
23
23
|
})
|
|
24
24
|
|
|
25
25
|
const TRANSFER_SIZE = 128
|
|
26
|
-
const Zeroed48Bytes = Buffer.alloc(48, 0)
|
|
27
26
|
const accountA: Account = {
|
|
28
27
|
id: 137n,
|
|
29
|
-
user_data: 0n,
|
|
30
|
-
reserved: Zeroed48Bytes,
|
|
31
|
-
ledger: 1,
|
|
32
|
-
code: 1,
|
|
33
|
-
flags: 0,
|
|
34
28
|
debits_pending: 0n,
|
|
35
29
|
debits_posted: 0n,
|
|
36
30
|
credits_pending: 0n,
|
|
37
|
-
credits_posted: 0n,
|
|
31
|
+
credits_posted: 0n,
|
|
32
|
+
user_data_128: 0n,
|
|
33
|
+
user_data_64: 0n,
|
|
34
|
+
user_data_32: 0,
|
|
35
|
+
reserved: 0,
|
|
36
|
+
ledger: 1,
|
|
37
|
+
code: 1,
|
|
38
|
+
flags: 0,
|
|
38
39
|
timestamp: 0n,
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
const accountB: Account = {
|
|
42
43
|
id: 138n,
|
|
43
|
-
user_data: 0n,
|
|
44
|
-
reserved: Zeroed48Bytes,
|
|
45
|
-
ledger: 1,
|
|
46
|
-
code: 1,
|
|
47
|
-
flags: 0,
|
|
48
44
|
debits_pending: 0n,
|
|
49
45
|
debits_posted: 0n,
|
|
50
46
|
credits_pending: 0n,
|
|
51
|
-
credits_posted: 0n,
|
|
47
|
+
credits_posted: 0n,
|
|
48
|
+
user_data_128: 0n,
|
|
49
|
+
user_data_64: 0n,
|
|
50
|
+
user_data_32: 0,
|
|
51
|
+
reserved: 0,
|
|
52
|
+
ledger: 1,
|
|
53
|
+
code: 1,
|
|
54
|
+
flags: 0,
|
|
52
55
|
timestamp: 0n,
|
|
53
56
|
}
|
|
54
57
|
|
|
@@ -63,7 +66,7 @@ const rawCreateTransfers = async (batch: Buffer): Promise<CreateTransfersError[]
|
|
|
63
66
|
}
|
|
64
67
|
|
|
65
68
|
try {
|
|
66
|
-
client.rawRequest(Operation.
|
|
69
|
+
client.rawRequest(Operation.create_transfers, batch, callback)
|
|
67
70
|
} catch (error) {
|
|
68
71
|
reject(error)
|
|
69
72
|
}
|
|
@@ -74,17 +77,18 @@ const rawCreateTransfers = async (batch: Buffer): Promise<CreateTransfersError[]
|
|
|
74
77
|
* This encoding function is only for this benchmark script.
|
|
75
78
|
*
|
|
76
79
|
* ID_OFFSET = 0 (0 -> 16)
|
|
77
|
-
* DEBIT_ACCOUNT_ID_OFFSET = 0 + 16 =
|
|
78
|
-
* CREDIT_ACCOUNT_ID_OFFSET = 16 + 16 =
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
80
|
+
* DEBIT_ACCOUNT_ID_OFFSET = 0 + 16 = 16 (16 -> 32)
|
|
81
|
+
* CREDIT_ACCOUNT_ID_OFFSET = 16 + 16 = 32 (32 -> 48)
|
|
82
|
+
* AMOUNT_OFFSET = 48 + 16 = 64 (48 -> 64)
|
|
83
|
+
* PENDING_ID_OFFSET = 64 + 16 = 80 (64 -> 80)
|
|
84
|
+
* USER_DATA_128_OFFSET = 80 + 16 = 96 (80 -> 96)
|
|
85
|
+
* USER_DATA_64_OFFSET = 96 + 8 = 104 (96 -> 104)
|
|
86
|
+
* USER_DATA_32_OFFSET = 104 + 4 = 108 (104 -> 108)
|
|
87
|
+
* TIMEOUT_OFFSET = 108 + 4 = 112 (108 -> 112)
|
|
88
|
+
* LEDGER_OFFSET = 112 + 4 = 116 (112 -> 116)
|
|
89
|
+
* CODE_OFFSET = 116 + 2 = 118 (116 -> 118)
|
|
90
|
+
* FLAGS_OFFSET = 118 + 2 = 120 (118 -> 120)
|
|
91
|
+
* TIMESTAMP = 120 + 8 = 128 (120 -> 128)
|
|
88
92
|
*/
|
|
89
93
|
const encodeTransfer = (transfer: Transfer, offset: number, output: Buffer): void => {
|
|
90
94
|
assert(BigInt((offset + TRANSFER_SIZE)) <= BigInt(output.length), `Transfer ${transfer} exceeds buffer of ${output}!`)
|
|
@@ -92,14 +96,15 @@ const encodeTransfer = (transfer: Transfer, offset: number, output: Buffer): voi
|
|
|
92
96
|
output.writeBigUInt64LE(transfer.id, offset)
|
|
93
97
|
output.writeBigUInt64LE(transfer.debit_account_id, offset + 16)
|
|
94
98
|
output.writeBigUInt64LE(transfer.credit_account_id, offset + 32)
|
|
95
|
-
output.writeBigUInt64LE(transfer.
|
|
96
|
-
output.writeBigUInt64LE(transfer.
|
|
97
|
-
output.writeBigUInt64LE(transfer.
|
|
98
|
-
output.writeBigUInt64LE(transfer.
|
|
99
|
-
output.
|
|
100
|
-
output.
|
|
101
|
-
output.writeUInt32LE(transfer.
|
|
102
|
-
output.
|
|
99
|
+
output.writeBigUInt64LE(transfer.amount, offset + 48)
|
|
100
|
+
output.writeBigUInt64LE(transfer.pending_id, offset + 64)
|
|
101
|
+
output.writeBigUInt64LE(transfer.user_data_128, offset + 80)
|
|
102
|
+
output.writeBigUInt64LE(transfer.user_data_64, offset + 96)
|
|
103
|
+
output.writeInt32LE(transfer.user_data_32, offset + 104)
|
|
104
|
+
output.writeInt32LE(transfer.timeout, offset + 108)
|
|
105
|
+
output.writeUInt32LE(transfer.ledger, offset + 112)
|
|
106
|
+
output.writeUInt32LE(transfer.code, offset + 116)
|
|
107
|
+
output.writeUInt32LE(transfer.flags, offset + 118)
|
|
103
108
|
output.writeBigUInt64LE(transfer.timestamp, offset + 120)
|
|
104
109
|
}
|
|
105
110
|
|
|
@@ -125,14 +130,15 @@ const runBenchmarkRawRequest = async () => {
|
|
|
125
130
|
id: BigInt(count),
|
|
126
131
|
debit_account_id: accountA.id,
|
|
127
132
|
credit_account_id: accountB.id,
|
|
128
|
-
|
|
129
|
-
reserved: 0n,
|
|
133
|
+
amount: 1n,
|
|
130
134
|
pending_id: 0n,
|
|
131
|
-
|
|
135
|
+
user_data_128: 0n,
|
|
136
|
+
user_data_64: 0n,
|
|
137
|
+
user_data_32: 0,
|
|
138
|
+
timeout: IS_TWO_PHASE_TRANSFER ? 2 : 0,
|
|
132
139
|
ledger: 1,
|
|
133
140
|
code: 1,
|
|
134
141
|
flags: IS_TWO_PHASE_TRANSFER ? TransferFlags.pending : 0,
|
|
135
|
-
amount: 1n,
|
|
136
142
|
timestamp: 0n,
|
|
137
143
|
},
|
|
138
144
|
i * TRANSFER_SIZE,
|
|
@@ -145,14 +151,15 @@ const runBenchmarkRawRequest = async () => {
|
|
|
145
151
|
id: BigInt((MAX_TRANSFERS + count)),
|
|
146
152
|
debit_account_id: accountA.id,
|
|
147
153
|
credit_account_id: accountB.id,
|
|
148
|
-
|
|
149
|
-
reserved: 0n,
|
|
154
|
+
amount: 1n,
|
|
150
155
|
pending_id: BigInt(count),
|
|
151
|
-
|
|
156
|
+
user_data_128: 0n,
|
|
157
|
+
user_data_64: 0n,
|
|
158
|
+
user_data_32: 0,
|
|
159
|
+
timeout: 0,
|
|
152
160
|
ledger: 1,
|
|
153
161
|
code: 1,
|
|
154
162
|
flags: TransferFlags.post_pending_transfer,
|
|
155
|
-
amount: 1n,
|
|
156
163
|
timestamp: 0n,
|
|
157
164
|
},
|
|
158
165
|
i * TRANSFER_SIZE,
|
|
@@ -222,14 +229,15 @@ const runBenchmark = async () => {
|
|
|
222
229
|
id: BigInt(count),
|
|
223
230
|
debit_account_id: accountA.id,
|
|
224
231
|
credit_account_id: accountB.id,
|
|
232
|
+
amount: 1n,
|
|
225
233
|
pending_id: 0n,
|
|
234
|
+
user_data_128: 0n,
|
|
235
|
+
user_data_64: 0n,
|
|
236
|
+
user_data_32: 0,
|
|
237
|
+
timeout: IS_TWO_PHASE_TRANSFER ? 2 : 0,
|
|
226
238
|
code: 1,
|
|
227
239
|
ledger: 1,
|
|
228
|
-
reserved: 0n,
|
|
229
|
-
user_data: 0n,
|
|
230
240
|
flags: IS_TWO_PHASE_TRANSFER ? TransferFlags.pending : 0,
|
|
231
|
-
amount: 1n,
|
|
232
|
-
timeout: IS_TWO_PHASE_TRANSFER ? BigInt(2e9) : 0n,
|
|
233
241
|
timestamp: 0n,
|
|
234
242
|
})
|
|
235
243
|
|
|
@@ -238,14 +246,15 @@ const runBenchmark = async () => {
|
|
|
238
246
|
id: BigInt(MAX_TRANSFERS + count),
|
|
239
247
|
debit_account_id: accountA.id,
|
|
240
248
|
credit_account_id: accountB.id,
|
|
249
|
+
amount: 1n,
|
|
241
250
|
pending_id: BigInt(count),
|
|
251
|
+
user_data_128: 0n,
|
|
252
|
+
user_data_64: 0n,
|
|
253
|
+
user_data_32: 0,
|
|
254
|
+
timeout: 0,
|
|
242
255
|
code: 1,
|
|
243
256
|
ledger: 1,
|
|
244
|
-
reserved: 0n,
|
|
245
|
-
user_data: 0n,
|
|
246
257
|
flags: IS_TWO_PHASE_TRANSFER ? TransferFlags.post_pending_transfer : 0,
|
|
247
|
-
amount: 1n,
|
|
248
|
-
timeout: 0n,
|
|
249
258
|
timestamp: 0n,
|
|
250
259
|
})
|
|
251
260
|
}
|