@optimystic/db-core 0.5.2 → 0.6.0

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 (92) hide show
  1. package/dist/src/btree/btree.d.ts +2 -0
  2. package/dist/src/btree/btree.d.ts.map +1 -1
  3. package/dist/src/btree/btree.js +72 -52
  4. package/dist/src/btree/btree.js.map +1 -1
  5. package/dist/src/cluster/structs.d.ts +13 -0
  6. package/dist/src/cluster/structs.d.ts.map +1 -1
  7. package/dist/src/collection/collection.d.ts +3 -0
  8. package/dist/src/collection/collection.d.ts.map +1 -1
  9. package/dist/src/collection/collection.js +6 -0
  10. package/dist/src/collection/collection.js.map +1 -1
  11. package/dist/src/index.d.ts +1 -0
  12. package/dist/src/index.d.ts.map +1 -1
  13. package/dist/src/index.js +1 -0
  14. package/dist/src/index.js.map +1 -1
  15. package/dist/src/log/log.js +1 -1
  16. package/dist/src/log/log.js.map +1 -1
  17. package/dist/src/logger.d.ts +4 -0
  18. package/dist/src/logger.d.ts.map +1 -0
  19. package/dist/src/logger.js +8 -0
  20. package/dist/src/logger.js.map +1 -0
  21. package/dist/src/transaction/coordinator.d.ts +9 -1
  22. package/dist/src/transaction/coordinator.d.ts.map +1 -1
  23. package/dist/src/transaction/coordinator.js +76 -8
  24. package/dist/src/transaction/coordinator.js.map +1 -1
  25. package/dist/src/transaction/index.d.ts +2 -2
  26. package/dist/src/transaction/index.d.ts.map +1 -1
  27. package/dist/src/transaction/index.js +1 -1
  28. package/dist/src/transaction/index.js.map +1 -1
  29. package/dist/src/transaction/session.d.ts +7 -3
  30. package/dist/src/transaction/session.d.ts.map +1 -1
  31. package/dist/src/transaction/session.js +23 -10
  32. package/dist/src/transaction/session.js.map +1 -1
  33. package/dist/src/transaction/transaction.d.ts +9 -3
  34. package/dist/src/transaction/transaction.d.ts.map +1 -1
  35. package/dist/src/transaction/transaction.js +14 -7
  36. package/dist/src/transaction/transaction.js.map +1 -1
  37. package/dist/src/transaction/validator.d.ts +9 -2
  38. package/dist/src/transaction/validator.d.ts.map +1 -1
  39. package/dist/src/transaction/validator.js +26 -6
  40. package/dist/src/transaction/validator.js.map +1 -1
  41. package/dist/src/transactor/network-transactor.d.ts.map +1 -1
  42. package/dist/src/transactor/network-transactor.js +84 -9
  43. package/dist/src/transactor/network-transactor.js.map +1 -1
  44. package/dist/src/transactor/transactor-source.d.ts +4 -0
  45. package/dist/src/transactor/transactor-source.d.ts.map +1 -1
  46. package/dist/src/transactor/transactor-source.js +25 -9
  47. package/dist/src/transactor/transactor-source.js.map +1 -1
  48. package/dist/src/transform/atomic-proxy.d.ts +26 -0
  49. package/dist/src/transform/atomic-proxy.d.ts.map +1 -0
  50. package/dist/src/transform/atomic-proxy.js +47 -0
  51. package/dist/src/transform/atomic-proxy.js.map +1 -0
  52. package/dist/src/transform/cache-source.d.ts +3 -2
  53. package/dist/src/transform/cache-source.d.ts.map +1 -1
  54. package/dist/src/transform/cache-source.js +15 -3
  55. package/dist/src/transform/cache-source.js.map +1 -1
  56. package/dist/src/transform/index.d.ts +1 -0
  57. package/dist/src/transform/index.d.ts.map +1 -1
  58. package/dist/src/transform/index.js +1 -0
  59. package/dist/src/transform/index.js.map +1 -1
  60. package/dist/src/utility/batch-coordinator.d.ts.map +1 -1
  61. package/dist/src/utility/batch-coordinator.js +6 -1
  62. package/dist/src/utility/batch-coordinator.js.map +1 -1
  63. package/dist/src/utility/hash-string.d.ts +3 -6
  64. package/dist/src/utility/hash-string.d.ts.map +1 -1
  65. package/dist/src/utility/hash-string.js +8 -11
  66. package/dist/src/utility/hash-string.js.map +1 -1
  67. package/dist/src/utility/lru-map.d.ts +18 -0
  68. package/dist/src/utility/lru-map.d.ts.map +1 -0
  69. package/dist/src/utility/lru-map.js +52 -0
  70. package/dist/src/utility/lru-map.js.map +1 -0
  71. package/package.json +15 -8
  72. package/src/btree/btree.ts +71 -50
  73. package/src/cluster/structs.ts +11 -0
  74. package/src/collection/collection.ts +9 -0
  75. package/src/index.ts +1 -0
  76. package/src/log/log.ts +1 -1
  77. package/src/logger.ts +10 -0
  78. package/src/transaction/coordinator.ts +86 -9
  79. package/src/transaction/index.ts +4 -2
  80. package/src/transaction/session.ts +34 -10
  81. package/src/transaction/transaction.ts +23 -10
  82. package/src/transaction/validator.ts +34 -7
  83. package/src/transactor/network-transactor.ts +92 -11
  84. package/src/transactor/transactor-source.ts +28 -9
  85. package/src/transform/atomic-proxy.ts +49 -0
  86. package/src/transform/cache-source.ts +18 -4
  87. package/src/transform/index.ts +1 -0
  88. package/src/utility/batch-coordinator.ts +7 -1
  89. package/src/utility/hash-string.ts +14 -17
  90. package/src/utility/lru-map.ts +55 -0
  91. package/dist/index.min.js +0 -9
  92. package/dist/index.min.js.map +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/transaction/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/transaction/validator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"network-transactor.d.ts","sourceRoot":"","sources":["../../../src/transactor/network-transactor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAA6B,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAc,aAAa,EAA+B,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAM5S,KAAK,qBAAqB,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,UAAU,EAAE,WAAW,CAAC;IACxB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC;CACnC,CAAA;AAED,qBAAa,iBAAkB,YAAW,WAAW;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;gBAGnD,IAAI,EAAE,qBAAqB;IAQtB,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC;IAkHnD,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAkC7D,uBAAuB;IA0C/B,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA4EnD,MAAM,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9C,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAOtE,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;YAkC7C,WAAW;IAezB,0EAA0E;YAC5D,YAAY;IAiC1B,8FAA8F;YAChF,iBAAiB;IAe/B,oHAAoH;YACtG,WAAW;IAqBzB,OAAO,CAAC,mBAAmB;CAY3B;AAGD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAIlG"}
1
+ {"version":3,"file":"network-transactor.d.ts","sourceRoot":"","sources":["../../../src/transactor/network-transactor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAA6B,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAc,aAAa,EAA+B,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAS5S,KAAK,qBAAqB,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,UAAU,EAAE,WAAW,CAAC;IACxB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC;CACnC,CAAA;AAED,qBAAa,iBAAkB,YAAW,WAAW;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;gBAGnD,IAAI,EAAE,qBAAqB;IAQtB,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC;IAuHnD,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;YAkC7D,uBAAuB;IA+F/B,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA2FnD,MAAM,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB9C,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAOtE,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;YAqC7C,WAAW;IAezB,0EAA0E;YAC5D,YAAY;IAkC1B,8FAA8F;YAChF,iBAAiB;IAe/B,oHAAoH;YACtG,WAAW;IAqBzB,OAAO,CAAC,mBAAmB;CAY3B;AAGD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAIlG"}
@@ -3,6 +3,8 @@ import { transformForBlockId, groupBy, concatTransforms, concatTransform, transf
3
3
  import { blockIdToBytes } from "../utility/block-id-to-bytes.js";
4
4
  import { isRecordEmpty } from "../utility/is-record-empty.js";
5
5
  import { makeBatchesByPeer, incompleteBatches, everyBatch, allBatches, mergeBlocks, processBatches, createBatchesForPayload } from "../utility/batch-coordinator.js";
6
+ import { createLogger, verbose } from "../logger.js";
7
+ const log = createLogger('network-transactor');
6
8
  export class NetworkTransactor {
7
9
  keyNetwork;
8
10
  timeoutMs;
@@ -17,6 +19,8 @@ export class NetworkTransactor {
17
19
  async get(blockGets) {
18
20
  // Group by block id
19
21
  const distinctBlockIds = Array.from(new Set(blockGets.blockIds));
22
+ const t0 = Date.now();
23
+ log('get blockIds=%d', distinctBlockIds.length);
20
24
  const batches = await this.batchesForPayload(distinctBlockIds, distinctBlockIds, (gets, blockId, mergeWithGets) => [...(mergeWithGets ?? []), ...gets.filter(bid => bid === blockId)], []);
21
25
  const expiration = Date.now() + this.timeoutMs;
22
26
  let error;
@@ -44,6 +48,7 @@ export class NetworkTransactor {
44
48
  // This provides tolerance for different cluster member views
45
49
  const retryable = Array.from(allBatches(batches)).filter(b => !hasValidResponse(b) || !hasBlockInResponse(b));
46
50
  if (retryable.length > 0 && Date.now() < expiration) {
51
+ log('get:retry retryable=%d', retryable.length);
47
52
  try {
48
53
  const excludedByRoot = new Map();
49
54
  for (const b of retryable) {
@@ -81,6 +86,7 @@ export class NetworkTransactor {
81
86
  // Ensure we have at least one response per requested block id
82
87
  const missingIds = distinctBlockIds.filter(bid => !resultEntries.has(bid));
83
88
  if (missingIds.length > 0) {
89
+ log('get:missing blockIds=%o', missingIds);
84
90
  const details = this.formatBatchStatuses(batches, b => b.request?.isResponse ?? false, b => {
85
91
  const status = b.request == null ? 'no-response' : (b.request.isResponse ? 'response' : 'in-flight');
86
92
  return `${b.peerId.toString()}[block:${b.blockId}](${status})`;
@@ -89,6 +95,7 @@ export class NetworkTransactor {
89
95
  aggregate.cause = error;
90
96
  throw aggregate;
91
97
  }
98
+ log('get:done blockIds=%d ms=%d', distinctBlockIds.length, Date.now() - t0);
92
99
  return Object.fromEntries(resultEntries);
93
100
  }
94
101
  async getStatus(blockActions) {
@@ -122,27 +129,75 @@ export class NetworkTransactor {
122
129
  }));
123
130
  }
124
131
  async consolidateCoordinators(blockIds, transforms, transformForBlock) {
125
- const blockCoordinators = await Promise.all(blockIds.map(async (bid) => ({
132
+ // Use cluster intersections to minimize the number of coordinators.
133
+ // For each block, find its full cluster, then greedily assign blocks to
134
+ // peers that appear in the most clusters — reducing round trips when
135
+ // blocks share cluster members.
136
+ // Step 1: Get cluster peer sets for each block
137
+ const blockClusterPeerIds = new Map();
138
+ const fallbackBlocks = [];
139
+ await Promise.all(blockIds.map(async (bid) => {
140
+ try {
141
+ const clusterPeers = await this.keyNetwork.findCluster(await blockIdToBytes(bid));
142
+ blockClusterPeerIds.set(bid, new Set(Object.keys(clusterPeers)));
143
+ }
144
+ catch {
145
+ fallbackBlocks.push(bid);
146
+ }
147
+ }));
148
+ // Step 2: Build peer → blocks index (which blocks each peer can coordinate)
149
+ const peerBlocks = new Map();
150
+ for (const [blockId, peerIds] of blockClusterPeerIds) {
151
+ for (const peerId of peerIds) {
152
+ const blocks = peerBlocks.get(peerId) ?? [];
153
+ blocks.push(blockId);
154
+ peerBlocks.set(peerId, blocks);
155
+ }
156
+ }
157
+ // Step 3: Greedy set cover — assign blocks to peers covering the most uncovered blocks
158
+ const uncovered = new Set(blockClusterPeerIds.keys());
159
+ const assignments = new Map(); // peerIdStr → assigned blockIds
160
+ while (uncovered.size > 0) {
161
+ let bestPeer;
162
+ let bestCount = 0;
163
+ for (const [peerId, blocks] of peerBlocks) {
164
+ const coverCount = blocks.filter(bid => uncovered.has(bid)).length;
165
+ if (coverCount > bestCount) {
166
+ bestCount = coverCount;
167
+ bestPeer = peerId;
168
+ }
169
+ }
170
+ if (!bestPeer || bestCount === 0)
171
+ break;
172
+ const covered = peerBlocks.get(bestPeer).filter(bid => uncovered.has(bid));
173
+ assignments.set(bestPeer, covered);
174
+ for (const bid of covered)
175
+ uncovered.delete(bid);
176
+ }
177
+ // Step 4: Any remaining uncovered blocks fall back to findCoordinator
178
+ for (const bid of uncovered)
179
+ fallbackBlocks.push(bid);
180
+ const fallbackCoordinators = await Promise.all(fallbackBlocks.map(async (bid) => ({
126
181
  blockId: bid,
127
182
  coordinator: await this.keyNetwork.findCoordinator(await blockIdToBytes(bid), { excludedPeers: [] })
128
183
  })));
129
- const byCoordinator = new Map();
130
- for (const { blockId, coordinator } of blockCoordinators) {
184
+ for (const { blockId, coordinator } of fallbackCoordinators) {
131
185
  const key = coordinator.toString();
132
- const blocks = byCoordinator.get(key) ?? [];
133
- blocks.push(blockId);
134
- byCoordinator.set(key, blocks);
186
+ const existing = assignments.get(key) ?? [];
187
+ existing.push(blockId);
188
+ assignments.set(key, existing);
135
189
  }
190
+ // Step 5: Convert assignments to batches
136
191
  const batches = [];
137
- for (const [coordinatorStr, consolidatedBlocks] of byCoordinator) {
138
- const coordinator = blockCoordinators.find(bc => bc.coordinator.toString() === coordinatorStr).coordinator;
192
+ for (const [peerIdStr, consolidatedBlocks] of assignments) {
193
+ const peerId = peerIdFromString(peerIdStr);
139
194
  let batchTransforms = { inserts: {}, updates: {}, deletes: [] };
140
195
  for (const bid of consolidatedBlocks) {
141
196
  const blockTransforms = transformForBlock(transforms, bid, batchTransforms);
142
197
  batchTransforms = blockTransforms;
143
198
  }
144
199
  batches.push({
145
- peerId: coordinator,
200
+ peerId,
146
201
  payload: batchTransforms,
147
202
  blockId: consolidatedBlocks[0],
148
203
  coordinatingBlockIds: consolidatedBlocks,
@@ -152,6 +207,7 @@ export class NetworkTransactor {
152
207
  return batches;
153
208
  }
154
209
  async pend(blockAction) {
210
+ const t0 = Date.now();
155
211
  const transformForBlock = (payload, blockId, mergeWithPayload) => {
156
212
  const filteredTransform = transformForBlockId(payload, blockId);
157
213
  return mergeWithPayload
@@ -160,6 +216,17 @@ export class NetworkTransactor {
160
216
  };
161
217
  const blockIds = blockIdsForTransforms(blockAction.transforms);
162
218
  const batches = await this.consolidateCoordinators(blockIds, blockAction.transforms, transformForBlock);
219
+ log('pend actionId=%s blockIds=%d batches=%d', blockAction.actionId, blockIds.length, batches.length);
220
+ if (verbose) {
221
+ const batchSummary = batches.map(b => ({
222
+ peer: b.peerId.toString().substring(0, 12),
223
+ blocks: b.coordinatingBlockIds ?? [b.blockId],
224
+ inserts: Object.keys(b.payload.inserts ?? {}).length,
225
+ updates: Object.keys(b.payload.updates ?? {}).length,
226
+ deletes: b.payload.deletes?.length ?? 0
227
+ }));
228
+ log('pend:batches actionId=%s detail=%o', blockAction.actionId, batchSummary);
229
+ }
163
230
  const expiration = Date.now() + this.timeoutMs;
164
231
  let error;
165
232
  try {
@@ -196,9 +263,11 @@ export class NetworkTransactor {
196
263
  error = aggregate;
197
264
  }
198
265
  if (error) { // If any failures, cancel all pending actions as background microtask
266
+ log('pend:cancel actionId=%s', blockAction.actionId);
199
267
  void Promise.resolve().then(() => this.cancelBatch(batches, { blockIds, actionId: blockAction.actionId }));
200
268
  const stale = Array.from(allBatches(batches, b => b.request?.isResponse && !b.request.response.success));
201
269
  if (stale.length > 0) { // Any active stale failures should preempt reporting connection or other potential transient errors (we have information)
270
+ log('pend:stale actionId=%s staleCount=%d', blockAction.actionId, stale.length);
202
271
  return {
203
272
  success: false,
204
273
  missing: distinctBlockActionTransforms(stale.flatMap(b => b.request.response.missing).filter((x) => x !== undefined)),
@@ -208,6 +277,7 @@ export class NetworkTransactor {
208
277
  }
209
278
  // Collect replies back into result structure
210
279
  const completed = Array.from(allBatches(batches, b => b.request?.isResponse && b.request.response.success));
280
+ log('pend:done actionId=%s ms=%d batches=%d', blockAction.actionId, Date.now() - t0, batches.length);
211
281
  return {
212
282
  success: true,
213
283
  pending: completed.flatMap(b => b.request.response.pending),
@@ -215,6 +285,7 @@ export class NetworkTransactor {
215
285
  };
216
286
  }
217
287
  async cancel(actionRef) {
288
+ log('cancel actionId=%s blockIds=%d', actionRef.actionId, actionRef.blockIds.length);
218
289
  const batches = await this.batchesForPayload(actionRef.blockIds, actionRef.blockIds, mergeBlocks, []);
219
290
  const expiration = Date.now() + this.abortOrCancelTimeoutMs;
220
291
  await processBatches(batches, (batch) => this.getRepo(batch.peerId).cancel({ actionId: actionRef.actionId, blockIds: batch.payload }, { expiration }), batch => batch.payload, mergeBlocks, expiration, async (blockId, options) => this.keyNetwork.findCoordinator(await blockIdToBytes(blockId), options));
@@ -226,6 +297,8 @@ export class NetworkTransactor {
226
297
  return { nominees };
227
298
  }
228
299
  async commit(request) {
300
+ const t0 = Date.now();
301
+ log('commit actionId=%s rev=%d blockIds=%d', request.actionId, request.rev, request.blockIds.length);
229
302
  const allBlockIds = [...new Set([...request.blockIds, request.tailId])];
230
303
  // Commit the header block if provided and not already in blockIds
231
304
  if (request.headerId && !request.blockIds.includes(request.headerId)) {
@@ -253,6 +326,7 @@ export class NetworkTransactor {
253
326
  catch { /* ignore */ }
254
327
  }
255
328
  }
329
+ log('commit:done actionId=%s ms=%d', request.actionId, Date.now() - t0);
256
330
  return { success: true };
257
331
  }
258
332
  async commitBlock(blockId, blockIds, actionId, rev) {
@@ -273,6 +347,7 @@ export class NetworkTransactor {
273
347
  async commitBlocks({ blockIds, actionId, rev }) {
274
348
  const expiration = Date.now() + this.timeoutMs;
275
349
  const batches = await this.batchesForPayload(blockIds, blockIds, mergeBlocks, []);
350
+ log('commitBlocks actionId=%s rev=%d batches=%d', actionId, rev, batches.length);
276
351
  let error;
277
352
  try {
278
353
  await processBatches(batches, (batch) => this.getRepo(batch.peerId).commit({ actionId, blockIds: batch.payload, rev }, { expiration }), batch => batch.payload, mergeBlocks, expiration, async (blockId, options) => this.keyNetwork.findCoordinator(await blockIdToBytes(blockId), options));
@@ -1 +1 @@
1
- {"version":3,"file":"network-transactor.js","sourceRoot":"","sources":["../../../src/transactor/network-transactor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network-transactor.js","sourceRoot":"","sources":["../../../src/transactor/network-transactor.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,16 @@
1
1
  import type { IBlock, BlockId, BlockHeader, ITransactor, ActionId, StaleFailure, ActionContext, BlockType, BlockSource, Transforms } from "../index.js";
2
+ import type { ReadDependency } from "../transaction/transaction.js";
2
3
  export declare class TransactorSource<TBlock extends IBlock> implements BlockSource<TBlock> {
3
4
  private readonly collectionId;
4
5
  private readonly transactor;
5
6
  actionContext: ActionContext | undefined;
7
+ private readDependencies;
6
8
  constructor(collectionId: BlockId, transactor: ITransactor, actionContext: ActionContext | undefined);
7
9
  createBlockHeader(type: BlockType, newId?: BlockId): BlockHeader;
8
10
  generateId(): BlockId;
9
11
  tryGet(id: BlockId): Promise<TBlock | undefined>;
12
+ getReadDependencies(): ReadDependency[];
13
+ clearReadDependencies(): void;
10
14
  /**
11
15
  * Attempts to apply the given transforms in a transactional manner.
12
16
  * @param transform - The transforms to apply.
@@ -1 +1 @@
1
- {"version":3,"file":"transactor-source.d.ts","sourceRoot":"","sources":["../../../src/transactor/transactor-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAExJ,qBAAa,gBAAgB,CAAC,MAAM,SAAS,MAAM,CAAE,YAAW,WAAW,CAAC,MAAM,CAAC;IAEjF,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU;IACpB,aAAa,EAAE,aAAa,GAAG,SAAS;gBAF9B,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,WAAW,EACjC,aAAa,EAAE,aAAa,GAAG,SAAS;IAGhD,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW;IAQhE,UAAU,IAAI,OAAO;IAKf,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAUtD;;;;;;;;;;;OAWG;IACG,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;CAiB7I"}
1
+ {"version":3,"file":"transactor-source.d.ts","sourceRoot":"","sources":["../../../src/transactor/transactor-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACxJ,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,qBAAa,gBAAgB,CAAC,MAAM,SAAS,MAAM,CAAE,YAAW,WAAW,CAAC,MAAM,CAAC;IAIjF,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU;IACpB,aAAa,EAAE,aAAa,GAAG,SAAS;IALhD,OAAO,CAAC,gBAAgB,CAAwB;gBAG9B,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,WAAW,EACjC,aAAa,EAAE,aAAa,GAAG,SAAS;IAGhD,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW;IAQhE,UAAU,IAAI,OAAO;IAKf,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAYtD,mBAAmB,IAAI,cAAc,EAAE;IAIvC,qBAAqB,IAAI,IAAI;IAI7B;;;;;;;;;;;OAWG;IACG,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;CAuB7I"}
@@ -4,6 +4,7 @@ export class TransactorSource {
4
4
  collectionId;
5
5
  transactor;
6
6
  actionContext;
7
+ readDependencies = [];
7
8
  constructor(collectionId, transactor, actionContext) {
8
9
  this.collectionId = collectionId;
9
10
  this.transactor = transactor;
@@ -24,11 +25,19 @@ export class TransactorSource {
24
25
  const result = await this.transactor.get({ blockIds: [id], context: this.actionContext });
25
26
  if (result) {
26
27
  const { block, state } = result[id];
28
+ // Record read dependency for optimistic concurrency control
29
+ this.readDependencies.push({ blockId: id, revision: state.latest?.rev ?? 0 });
27
30
  // TODO: if the state reports that there is a pending action, record this so that we are sure to update before syncing
28
31
  //state.pendings
29
32
  return block;
30
33
  }
31
34
  }
35
+ getReadDependencies() {
36
+ return this.readDependencies;
37
+ }
38
+ clearReadDependencies() {
39
+ this.readDependencies = [];
40
+ }
32
41
  /**
33
42
  * Attempts to apply the given transforms in a transactional manner.
34
43
  * @param transform - The transforms to apply.
@@ -47,15 +56,22 @@ export class TransactorSource {
47
56
  return pendResult;
48
57
  }
49
58
  const isNew = transform.inserts && Object.hasOwn(transform.inserts, headerId);
50
- const commitResult = await this.transactor.commit({
51
- headerId: isNew ? headerId : undefined,
52
- tailId,
53
- blockIds: pendResult.blockIds,
54
- actionId,
55
- rev
56
- });
57
- if (!commitResult.success) {
58
- return commitResult;
59
+ try {
60
+ const commitResult = await this.transactor.commit({
61
+ headerId: isNew ? headerId : undefined,
62
+ tailId,
63
+ blockIds: pendResult.blockIds,
64
+ actionId,
65
+ rev
66
+ });
67
+ if (!commitResult.success) {
68
+ await this.transactor.cancel({ actionId, blockIds: pendResult.blockIds });
69
+ return commitResult;
70
+ }
71
+ }
72
+ catch (e) {
73
+ await this.transactor.cancel({ actionId, blockIds: pendResult.blockIds });
74
+ throw e;
59
75
  }
60
76
  }
61
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transactor-source.js","sourceRoot":"","sources":["../../../src/transactor/transactor-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAGtE,MAAM,OAAO,gBAAgB;IAEV;IACA;IACV;IAHR,YACkB,YAAqB,EACrB,UAAuB,EACjC,aAAwC;QAF9B,iBAAY,GAAZ,YAAY,CAAS;QACrB,eAAU,GAAV,UAAU,CAAa;QACjC,kBAAa,GAAb,aAAa,CAA2B;IAC5C,CAAC;IAEL,iBAAiB,CAAC,IAAe,EAAE,KAAe;QACjD,OAAO;YACN,IAAI;YACJ,EAAE,EAAE,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;YAC9B,YAAY,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAC;IACH,CAAC;IAED,UAAU;QACT,8CAA8C;QAC9C,OAAO,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAW;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC1F,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,EAAE,CAAE,CAAC;YACrC,sHAAsH;YACtH,gBAAgB;YAChB,OAAO,KAAe,CAAC;QACxB,CAAC;IACF,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,QAAQ,CAAC,SAAqB,EAAE,QAAkB,EAAE,GAAW,EAAE,QAAiB,EAAE,MAAe;QACxG,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACrG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,UAAU,CAAC;QACnB,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACjD,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACtC,MAAM;YACN,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,QAAQ;YACR,GAAG;SACH,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,YAAY,CAAC;QACrB,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"transactor-source.js","sourceRoot":"","sources":["../../../src/transactor/transactor-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { IBlock, BlockId, BlockStore, BlockType, BlockHeader, BlockOperation } from '../index.js';
2
+ /**
3
+ * A BlockStore proxy that enables scoped atomic operations.
4
+ * Operations normally delegate directly to the underlying store,
5
+ * but during an `atomic()` call, they route through an Atomic tracker
6
+ * that commits all-or-nothing on success, or rolls back on error.
7
+ *
8
+ * Both the BTree and its trunk should share the same AtomicProxy instance
9
+ * so that all mutations (including root pointer updates) are part of the
10
+ * same atomic batch.
11
+ */
12
+ export declare class AtomicProxy<T extends IBlock> implements BlockStore<T> {
13
+ private _base;
14
+ private _active;
15
+ constructor(store: BlockStore<T>);
16
+ tryGet(id: BlockId): Promise<T | undefined>;
17
+ insert(block: T): void;
18
+ update(blockId: BlockId, op: BlockOperation): void;
19
+ delete(blockId: BlockId): void;
20
+ generateId(): BlockId;
21
+ createBlockHeader(type: BlockType, newId?: BlockId): BlockHeader;
22
+ /** Execute fn within an atomic scope. All store mutations are collected
23
+ * and committed on success, or discarded on error. Re-entrant safe. */
24
+ atomic<R>(fn: () => Promise<R>): Promise<R>;
25
+ }
26
+ //# sourceMappingURL=atomic-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomic-proxy.d.ts","sourceRoot":"","sources":["../../../src/transform/atomic-proxy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEvG;;;;;;;;;GASG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,UAAU,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,OAAO,CAAgB;gBAEnB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;IAK1B,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IACtB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI;IAClD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAC9B,UAAU,IAAI,OAAO;IACrB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW;IAEhE;4EACwE;IAClE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAiBjD"}
@@ -0,0 +1,47 @@
1
+ import { Atomic } from './atomic.js';
2
+ /**
3
+ * A BlockStore proxy that enables scoped atomic operations.
4
+ * Operations normally delegate directly to the underlying store,
5
+ * but during an `atomic()` call, they route through an Atomic tracker
6
+ * that commits all-or-nothing on success, or rolls back on error.
7
+ *
8
+ * Both the BTree and its trunk should share the same AtomicProxy instance
9
+ * so that all mutations (including root pointer updates) are part of the
10
+ * same atomic batch.
11
+ */
12
+ export class AtomicProxy {
13
+ _base;
14
+ _active;
15
+ constructor(store) {
16
+ this._base = store;
17
+ this._active = store;
18
+ }
19
+ async tryGet(id) { return this._active.tryGet(id); }
20
+ insert(block) { this._active.insert(block); }
21
+ update(blockId, op) { this._active.update(blockId, op); }
22
+ delete(blockId) { this._active.delete(blockId); }
23
+ generateId() { return this._active.generateId(); }
24
+ createBlockHeader(type, newId) { return this._active.createBlockHeader(type, newId); }
25
+ /** Execute fn within an atomic scope. All store mutations are collected
26
+ * and committed on success, or discarded on error. Re-entrant safe. */
27
+ async atomic(fn) {
28
+ if (this._active !== this._base) {
29
+ return fn(); // Already in atomic context
30
+ }
31
+ const atomic = new Atomic(this._base);
32
+ this._active = atomic;
33
+ try {
34
+ const result = await fn();
35
+ atomic.commit();
36
+ return result;
37
+ }
38
+ catch (e) {
39
+ atomic.reset();
40
+ throw e;
41
+ }
42
+ finally {
43
+ this._active = this._base;
44
+ }
45
+ }
46
+ }
47
+ //# sourceMappingURL=atomic-proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atomic-proxy.js","sourceRoot":"","sources":["../../../src/transform/atomic-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC;;;;;;;;;GASG;AACH,MAAM,OAAO,WAAW;IACf,KAAK,CAAgB;IACrB,OAAO,CAAgB;IAE/B,YAAY,KAAoB;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAW,IAA4B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrF,MAAM,CAAC,KAAQ,IAAU,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,OAAgB,EAAE,EAAkB,IAAU,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,CAAC,OAAgB,IAAU,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChE,UAAU,KAAc,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC3D,iBAAiB,CAAC,IAAe,EAAE,KAAe,IAAiB,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAExH;4EACwE;IACxE,KAAK,CAAC,MAAM,CAAI,EAAoB;QACnC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YACjC,OAAO,EAAE,EAAE,CAAC,CAAC,4BAA4B;QAC1C,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YAC1B,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC;QACf,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,CAAC;QACT,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,CAAC;IACF,CAAC;CACD"}
@@ -1,8 +1,9 @@
1
1
  import type { IBlock, BlockHeader, BlockId, BlockSource, BlockType, Transforms } from "../index.js";
2
+ import { LruMap } from "../utility/lru-map.js";
2
3
  export declare class CacheSource<T extends IBlock> implements BlockSource<T> {
3
4
  protected readonly source: BlockSource<T>;
4
- protected cache: Map<string, T>;
5
- constructor(source: BlockSource<T>);
5
+ protected cache: LruMap<BlockId, T>;
6
+ constructor(source: BlockSource<T>, maxSize?: number);
6
7
  tryGet(id: BlockId): Promise<T | undefined>;
7
8
  generateId(): BlockId;
8
9
  createBlockHeader(type: BlockType, newId?: BlockId): BlockHeader;
@@ -1 +1 @@
1
- {"version":3,"file":"cache-source.d.ts","sourceRoot":"","sources":["../../../src/transform/cache-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGpG,qBAAa,WAAW,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;IAIlE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAH1C,SAAS,CAAC,KAAK,iBAAyB;gBAGpB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAGpC,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAWjD,UAAU,IAAI,OAAO;IAIrB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW;IAIhE,KAAK,CAAC,QAAQ,GAAE,OAAO,EAAE,GAAG,SAAqB;IAUjD,qDAAqD;IACrD,cAAc,CAAC,SAAS,EAAE,UAAU;CAgBpC"}
1
+ {"version":3,"file":"cache-source.d.ts","sourceRoot":"","sources":["../../../src/transform/cache-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEpG,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAO/C,qBAAa,WAAW,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;IAIlE,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAH1C,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAGhB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACzC,OAAO,SAAiB;IAKnB,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAgBjD,UAAU,IAAI,OAAO;IAIrB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW;IAIhE,KAAK,CAAC,QAAQ,GAAE,OAAO,EAAE,GAAG,SAAqB;IAUjD,qDAAqD;IACrD,cAAc,CAAC,SAAS,EAAE,UAAU;CAgBpC"}
@@ -1,16 +1,28 @@
1
1
  import { applyOperation } from "../index.js";
2
+ import { LruMap } from "../utility/lru-map.js";
3
+ import { createLogger } from "../logger.js";
4
+ const log = createLogger('cache');
5
+ const DefaultMaxSize = 128;
2
6
  export class CacheSource {
3
7
  source;
4
- cache = new Map();
5
- constructor(source) {
8
+ cache;
9
+ constructor(source, maxSize = DefaultMaxSize) {
6
10
  this.source = source;
11
+ this.cache = new LruMap(maxSize);
7
12
  }
8
13
  async tryGet(id) {
9
14
  let block = this.cache.get(id);
10
- if (!block) {
15
+ if (block) {
16
+ log('hit id=%s', id);
17
+ }
18
+ else {
11
19
  block = await this.source.tryGet(id);
12
20
  if (block) {
13
21
  this.cache.set(id, block);
22
+ log('miss:loaded id=%s cacheSize=%d', id, this.cache.size);
23
+ }
24
+ else {
25
+ log('miss:absent id=%s', id);
14
26
  }
15
27
  }
16
28
  return structuredClone(block);
@@ -1 +1 @@
1
- {"version":3,"file":"cache-source.js","sourceRoot":"","sources":["../../../src/transform/cache-source.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,OAAO,WAAW;IAIH;IAHV,KAAK,GAAG,IAAI,GAAG,EAAc,CAAC;IAExC,YACoB,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IACtC,CAAC;IAEL,KAAK,CAAC,MAAM,CAAC,EAAW;QACvB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC3B,CAAC;QACF,CAAC;QACD,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAED,iBAAiB,CAAC,IAAe,EAAE,KAAe;QACjD,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,WAAkC,SAAS;QAChD,IAAI,QAAQ,EAAE,CAAC;YACd,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACvB,CAAC;QACF,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAED,qDAAqD;IACrD,cAAc,CAAC,SAAqB;QACnC,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QACD,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,CAAC,KAAK,CAAM,CAAC,CAAC;QAC9D,CAAC;QACD,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;YAC7E,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACtC,IAAI,KAAK,EAAE,CAAC;oBACX,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC3B,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"cache-source.js","sourceRoot":"","sources":["../../../src/transform/cache-source.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from "./atomic.js";
2
+ export * from "./atomic-proxy.js";
2
3
  export * from "./cache-source.js";
3
4
  export * from "./helpers.js";
4
5
  export * from "./struct.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transform/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transform/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from "./atomic.js";
2
+ export * from "./atomic-proxy.js";
2
3
  export * from "./cache-source.js";
3
4
  export * from "./helpers.js";
4
5
  export * from "./struct.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"batch-coordinator.d.ts","sourceRoot":"","sources":["../../../src/utility/batch-coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-coordinator.d.ts","sourceRoot":"","sources":["../../../src/utility/batch-coordinator.ts"],"names":[],"mappings":"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"}