@peerbit/document 13.1.4 → 13.1.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.
@@ -5,40 +5,69 @@ const iteratorLogger = loggerFn("peerbit:document:index:iterate");
5
5
  export class ResumableIterators {
6
6
  index;
7
7
  queues;
8
+ pendingMarks = new Map();
8
9
  constructor(index, queues = new Cache({ max: 1e4 })) {
9
10
  this.index = index;
10
11
  this.queues = queues;
11
12
  // TODO choose upper limit better
12
13
  }
14
+ markKey(id) {
15
+ return `${id.key instanceof Uint8Array ? "bytes" : typeof id.key}:${String(id.primitive)}`;
16
+ }
17
+ retainMarks(id, ids) {
18
+ let retained = this.pendingMarks.get(id);
19
+ for (const mark of ids) {
20
+ if (!retained) {
21
+ retained = new Map();
22
+ this.pendingMarks.set(id, retained);
23
+ }
24
+ retained.set(this.markKey(mark), mark);
25
+ }
26
+ }
27
+ async applyPendingMarks(id, iterator) {
28
+ while (true) {
29
+ const retained = this.pendingMarks.get(id);
30
+ if (!retained?.size) {
31
+ this.pendingMarks.delete(id);
32
+ return;
33
+ }
34
+ this.pendingMarks.delete(id);
35
+ await iterator.markYielded?.(retained.values());
36
+ }
37
+ }
13
38
  async iterateAndFetch(request, options) {
14
39
  iteratorLogger("iterate:start", {
15
40
  id: request.idString,
16
41
  fetch: request.fetch,
17
42
  keepAlive: Boolean(options?.keepAlive),
18
43
  });
19
- const iterator = this.index.iterate(request);
20
- const firstResult = await iterator.next(request.fetch);
21
44
  const keepAlive = options?.keepAlive === true;
22
- if (keepAlive || iterator.done() !== true) {
23
- const cachedIterator = {
24
- iterator,
25
- request,
45
+ const iterator = this.index.iterate(request);
46
+ this.queues.add(request.idString, { iterator, request, keepAlive });
47
+ try {
48
+ await this.applyPendingMarks(request.idString, iterator);
49
+ const firstResult = await iterator.next(request.fetch);
50
+ if (!keepAlive && iterator.done() === true) {
51
+ this.queues.del(request.idString);
52
+ this.pendingMarks.delete(request.idString);
53
+ }
54
+ iteratorLogger("iterate:queued", {
55
+ id: request.idString,
26
56
  keepAlive,
27
- };
28
- this.queues.add(request.idString, cachedIterator);
57
+ done: iterator.done() === true,
58
+ batch: firstResult.length,
59
+ });
60
+ /* console.debug(
61
+ "[ResumableIterators] iterateAndFetch",
62
+ request.idString,
63
+ { keepAlive },
64
+ ); */
65
+ return firstResult;
66
+ }
67
+ catch (error) {
68
+ this.clear(request.idString);
69
+ throw error;
29
70
  }
30
- iteratorLogger("iterate:queued", {
31
- id: request.idString,
32
- keepAlive,
33
- done: iterator.done() === true,
34
- batch: firstResult.length,
35
- });
36
- /* console.debug(
37
- "[ResumableIterators] iterateAndFetch",
38
- request.idString,
39
- { keepAlive },
40
- ); */
41
- return firstResult;
42
71
  }
43
72
  async next(request, options) {
44
73
  const iterator = this.queues.get(request.idString);
@@ -109,6 +138,7 @@ export class ResumableIterators {
109
138
  }
110
139
  }
111
140
  this.queues.del(id);
141
+ this.pendingMarks.delete(id);
112
142
  }
113
143
  async clearAll() {
114
144
  const cacheEntries = [...this.queues.map.entries()]
@@ -121,6 +151,7 @@ export class ResumableIterators {
121
151
  });
122
152
  })));
123
153
  this.queues.clear();
154
+ this.pendingMarks.clear();
124
155
  }
125
156
  has(id) {
126
157
  return this.queues.has(id);
@@ -143,5 +174,12 @@ export class ResumableIterators {
143
174
  });
144
175
  return pending;
145
176
  }
177
+ async markYielded(id, ids) {
178
+ this.retainMarks(id, ids);
179
+ const iterator = this.queues.get(id);
180
+ if (iterator) {
181
+ await this.applyPendingMarks(id, iterator.iterator);
182
+ }
183
+ }
146
184
  }
147
185
  //# sourceMappingURL=resumable-iterator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resumable-iterator.js","sourceRoot":"","sources":["../../src/resumable-iterator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resumable-iterator.js","sourceRoot":"","sources":["../../src/resumable-iterator.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { type MaybePromise, PublicSignKey } from "@peerbit/crypto";
5
5
  import * as types from "@peerbit/document-interface";
6
6
  import { type QueryCacheOptions } from "@peerbit/indexer-cache";
7
7
  import * as indexerTypes from "@peerbit/indexer-interface";
8
- import { type Encoding, Entry } from "@peerbit/log";
8
+ import { type Encoding, type Entry } from "@peerbit/log";
9
9
  import { Program } from "@peerbit/program";
10
10
  import { RPC, type RPCRequestAllOptions } from "@peerbit/rpc";
11
11
  import { type CoverRange, type ReplicationDomain, SharedLog } from "@peerbit/shared-log";
@@ -266,6 +266,12 @@ export declare class DocumentIndex<T, I extends Record<string, any>, D extends R
266
266
  });
267
267
  get valueEncoding(): Encoding<T>;
268
268
  private ensurePrefetchAccumulator;
269
+ /**
270
+ * Resolve documents without bypassing the resolver/program caches. Cache and
271
+ * identity-index hits are collected first; only the remaining heads cross the
272
+ * log read boundary, and those reads stay aligned in one batch.
273
+ */
274
+ private resolveDocumentsWithBatchedHeads;
269
275
  private wrapPushResults;
270
276
  private drainQueuedResults;
271
277
  private handleDocumentChange?;
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/search.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,7 @@ import { tryProjectDocumentIndexSimple, } from "./native-rust.js";
40
40
  import { CachedIndex } from "@peerbit/indexer-cache";
41
41
  import * as indexerTypes from "@peerbit/indexer-interface";
42
42
  import { HashmapIndex } from "@peerbit/indexer-simple";
43
- import { BORSH_ENCODING, Entry } from "@peerbit/log";
43
+ import { BORSH_ENCODING } from "@peerbit/log";
44
44
  import { logger as loggerFn } from "@peerbit/logger";
45
45
  import { ClosedError, Program } from "@peerbit/program";
46
46
  import { MissingResponsesError, RPC, queryAll, } from "@peerbit/rpc";
@@ -551,11 +551,76 @@ let DocumentIndex = (() => {
551
551
  this._prefetch.accumulator = new Prefetch();
552
552
  }
553
553
  }
554
+ /**
555
+ * Resolve documents without bypassing the resolver/program caches. Cache and
556
+ * identity-index hits are collected first; only the remaining heads cross the
557
+ * log read boundary, and those reads stay aligned in one batch.
558
+ */
559
+ async resolveDocumentsWithBatchedHeads(values) {
560
+ const resolved = new Array(values.length);
561
+ const heads = new Array(values.length);
562
+ const unresolvedPositions = [];
563
+ for (let i = 0; i < values.length; i++) {
564
+ const value = values[i];
565
+ const cached = await this.resolveDocument({
566
+ ...value,
567
+ headEntry: null,
568
+ });
569
+ if (cached) {
570
+ resolved[i] = cached;
571
+ }
572
+ else {
573
+ unresolvedPositions.push(i);
574
+ }
575
+ }
576
+ if (unresolvedPositions.length === 0) {
577
+ return { resolved, heads };
578
+ }
579
+ const unresolvedHeads = await this._log.log.getMany(unresolvedPositions.map((position) => values[position].head));
580
+ for (let i = 0; i < unresolvedPositions.length; i++) {
581
+ const position = unresolvedPositions[i];
582
+ const head = unresolvedHeads[i];
583
+ heads[position] = head;
584
+ resolved[position] = await this.resolveDocument({
585
+ ...values[position],
586
+ headEntry: head ?? null,
587
+ });
588
+ }
589
+ return { resolved, heads };
590
+ }
554
591
  async wrapPushResults(matches, resolve) {
555
592
  if (!matches.length)
556
593
  return [];
594
+ const headsByMatch = [];
595
+ const resolvedByMatch = [];
596
+ if (!resolve) {
597
+ headsByMatch.push(...(await this._log.log.getMany(matches.map((match) => match.__context.head))));
598
+ }
599
+ else {
600
+ const indexedPositions = [];
601
+ for (let i = 0; i < matches.length; i++) {
602
+ if (!(matches[i] instanceof this.documentType)) {
603
+ indexedPositions.push(i);
604
+ }
605
+ }
606
+ const indexedBatch = indexedPositions.length
607
+ ? await this.resolveDocumentsWithBatchedHeads(indexedPositions.map((position) => {
608
+ const indexed = matches[position];
609
+ return {
610
+ indexed,
611
+ head: indexed.__context.head,
612
+ };
613
+ }))
614
+ : { resolved: [], heads: [] };
615
+ for (let i = 0; i < indexedPositions.length; i++) {
616
+ const position = indexedPositions[i];
617
+ resolvedByMatch[position] = indexedBatch.resolved[i];
618
+ headsByMatch[position] = indexedBatch.heads[i];
619
+ }
620
+ }
557
621
  const results = [];
558
- for (const match of matches) {
622
+ for (let i = 0; i < matches.length; i++) {
623
+ const match = matches[i];
559
624
  if (resolve) {
560
625
  if (match instanceof this.documentType) {
561
626
  const doc = match;
@@ -570,10 +635,7 @@ let DocumentIndex = (() => {
570
635
  continue;
571
636
  }
572
637
  const indexed = match;
573
- const resolved = await this.resolveDocument({
574
- indexed,
575
- head: indexed.__context.head,
576
- });
638
+ const resolved = resolvedByMatch[i];
577
639
  if (resolved) {
578
640
  results.push(new types.ResultValue({
579
641
  context: indexed.__context,
@@ -583,7 +645,7 @@ let DocumentIndex = (() => {
583
645
  }));
584
646
  continue;
585
647
  }
586
- const head = await this._log.log.get(indexed.__context.head);
648
+ const head = headsByMatch[i];
587
649
  results.push(new types.ResultIndexedValue({
588
650
  context: indexed.__context,
589
651
  source: serialize(indexed),
@@ -593,7 +655,7 @@ let DocumentIndex = (() => {
593
655
  }
594
656
  else {
595
657
  const indexed = match;
596
- const head = await this._log.log.get(indexed.__context.head);
658
+ const head = headsByMatch[i];
597
659
  results.push(new types.ResultIndexedValue({
598
660
  context: indexed.__context,
599
661
  source: serialize(indexed),
@@ -609,14 +671,21 @@ let DocumentIndex = (() => {
609
671
  return [];
610
672
  }
611
673
  const drained = queueEntries.splice(0);
674
+ const resolvedBatch = resolve
675
+ ? await this.resolveDocumentsWithBatchedHeads(drained.map((entry) => ({
676
+ indexed: entry.value,
677
+ head: entry.value.__context.head,
678
+ })))
679
+ : undefined;
680
+ const heads = resolvedBatch
681
+ ? resolvedBatch.heads
682
+ : await this._log.log.getMany(drained.map((entry) => entry.value.__context.head));
612
683
  const results = [];
613
- for (const entry of drained) {
684
+ for (let i = 0; i < drained.length; i++) {
685
+ const entry = drained[i];
614
686
  const indexedUnwrapped = Object.assign(Object.create(this.indexedType.prototype), entry.value);
615
687
  if (resolve) {
616
- const value = await this.resolveDocument({
617
- indexed: entry.value,
618
- head: entry.value.__context.head,
619
- });
688
+ const value = resolvedBatch.resolved[i];
620
689
  if (value) {
621
690
  results.push(new types.ResultValue({
622
691
  context: entry.value.__context,
@@ -626,7 +695,7 @@ let DocumentIndex = (() => {
626
695
  }));
627
696
  continue;
628
697
  }
629
- const head = await this._log.log.get(entry.value.__context.head);
698
+ const head = heads[i];
630
699
  results.push(new types.ResultIndexedValue({
631
700
  context: entry.value.__context,
632
701
  source: serialize(indexedUnwrapped),
@@ -635,7 +704,7 @@ let DocumentIndex = (() => {
635
704
  }));
636
705
  }
637
706
  else {
638
- const head = await this._log.log.get(entry.value.__context.head);
707
+ const head = heads[i];
639
708
  results.push(new types.ResultIndexedValue({
640
709
  context: entry.value.__context,
641
710
  source: serialize(indexedUnwrapped),
@@ -675,6 +744,7 @@ let DocumentIndex = (() => {
675
744
  let pendingAdded = added;
676
745
  do {
677
746
  const batches = [];
747
+ let claimedIds = [];
678
748
  const queued = await this.drainQueuedResults(queue.queue, resolveFlag);
679
749
  if (queued.length) {
680
750
  batches.push(...queued);
@@ -688,6 +758,13 @@ let DocumentIndex = (() => {
688
758
  const wrapped = await this.wrapPushResults(matches, resolveFlag);
689
759
  if (wrapped.length) {
690
760
  batches.push(...wrapped);
761
+ claimedIds = wrapped
762
+ .map((result) => result instanceof types.ResultValue && result.indexed
763
+ ? indexerTypes.toId(this.indexByResolver(result.indexed))
764
+ : result instanceof types.ResultIndexedValue
765
+ ? indexerTypes.toId(this.indexByResolver(result.value))
766
+ : undefined)
767
+ .filter((id) => id !== undefined);
691
768
  }
692
769
  }
693
770
  if (batches.length) {
@@ -705,6 +782,9 @@ let DocumentIndex = (() => {
705
782
  redundancy: 1,
706
783
  }),
707
784
  });
785
+ if (claimedIds.length) {
786
+ await this._resumableIterators.markYielded(_iteratorId, claimedIds);
787
+ }
708
788
  }
709
789
  pendingAdded = queue.pendingAdded ?? [];
710
790
  queue.pendingAdded = undefined;
@@ -2213,7 +2293,9 @@ let DocumentIndex = (() => {
2213
2293
  delete obj.__context;
2214
2294
  return { value: obj };
2215
2295
  }
2216
- const head = await this._log.log.get(value.head);
2296
+ const head = value.headEntry === undefined
2297
+ ? await this._log.log.get(value.head)
2298
+ : (value.headEntry ?? undefined);
2217
2299
  if (!head) {
2218
2300
  return undefined; // we could end up here if we recently pruned the document and other peers never persisted the entry
2219
2301
  // TODO update changes in index before removing entries from log entry storage
@@ -2304,7 +2386,7 @@ let DocumentIndex = (() => {
2304
2386
  }
2305
2387
  this._resultQueue.set(query.idString, prevQueued);
2306
2388
  }
2307
- const filteredResults = [];
2389
+ const candidates = [];
2308
2390
  const resolveDocumentsFlag = resolvesDocuments(fromQuery);
2309
2391
  const replicateIndexFlag = replicatesIndex(fromQuery);
2310
2392
  for (const result of toIterate) {
@@ -2320,11 +2402,24 @@ let DocumentIndex = (() => {
2320
2402
  !(await options.canRead(indexedUnwrapped, from))) {
2321
2403
  continue;
2322
2404
  }
2405
+ candidates.push({ result, indexed: indexedUnwrapped });
2406
+ }
2407
+ const resolvedBatch = resolveDocumentsFlag
2408
+ ? await this.resolveDocumentsWithBatchedHeads(candidates.map(({ result }) => ({
2409
+ indexed: result.value,
2410
+ head: result.value.__context.head,
2411
+ })))
2412
+ : undefined;
2413
+ const heads = resolvedBatch
2414
+ ? resolvedBatch.heads
2415
+ : candidates.length > 0
2416
+ ? await this._log.log.getMany(candidates.map(({ result }) => result.value.__context.head))
2417
+ : [];
2418
+ const filteredResults = [];
2419
+ for (let i = 0; i < candidates.length; i++) {
2420
+ const { result, indexed: indexedUnwrapped } = candidates[i];
2323
2421
  if (resolveDocumentsFlag) {
2324
- const value = await this.resolveDocument({
2325
- indexed: result.value,
2326
- head: result.value.__context.head,
2327
- });
2422
+ const value = resolvedBatch.resolved[i];
2328
2423
  if (!value) {
2329
2424
  continue;
2330
2425
  }
@@ -2337,7 +2432,7 @@ let DocumentIndex = (() => {
2337
2432
  }
2338
2433
  else {
2339
2434
  const context = result.value.__context;
2340
- const head = await this._log.log.get(context.head);
2435
+ const head = heads[i];
2341
2436
  if (replicateIndexFlag) {
2342
2437
  if (!head) {
2343
2438
  continue;
@@ -4085,7 +4180,8 @@ let DocumentIndex = (() => {
4085
4180
  continue;
4086
4181
  }
4087
4182
  }
4088
- const id = indexerTypes.toId(this.indexByResolver(indexedCandidate)).primitive;
4183
+ const indexId = indexerTypes.toId(this.indexByResolver(indexedCandidate));
4184
+ const id = indexId.primitive;
4089
4185
  const existingIndexed = indexedPlaceholders?.get(id);
4090
4186
  if (existingIndexed) {
4091
4187
  if (resolve) {
@@ -4127,6 +4223,7 @@ let DocumentIndex = (() => {
4127
4223
  if (!resolve) {
4128
4224
  ensureIndexedPlaceholders().set(id, placeholder);
4129
4225
  }
4226
+ await this._resumableIterators.markYielded(queryRequestCoerced.idString, [indexId]);
4130
4227
  hasRelevantChange = true;
4131
4228
  }
4132
4229
  }