@powersync/service-core 1.23.1 → 1.23.3

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 (81) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/api/RouteAPI.d.ts +25 -11
  3. package/dist/replication/AbstractReplicator.d.ts +8 -0
  4. package/dist/replication/AbstractReplicator.js.map +1 -1
  5. package/dist/routes/RouterEngine.d.ts +1 -0
  6. package/dist/routes/RouterEngine.js +6 -1
  7. package/dist/routes/RouterEngine.js.map +1 -1
  8. package/dist/routes/configure-fastify.d.ts +52 -44
  9. package/dist/routes/configure-fastify.js +15 -2
  10. package/dist/routes/configure-fastify.js.map +1 -1
  11. package/dist/routes/endpoints/checkpointing.js +1 -3
  12. package/dist/routes/endpoints/checkpointing.js.map +1 -1
  13. package/dist/routes/endpoints/socket-route.js +2 -1
  14. package/dist/routes/endpoints/socket-route.js.map +1 -1
  15. package/dist/storage/BucketStorageBatch.d.ts +60 -11
  16. package/dist/storage/BucketStorageBatch.js.map +1 -1
  17. package/dist/storage/ChecksumCache.d.ts +11 -6
  18. package/dist/storage/ChecksumCache.js +5 -4
  19. package/dist/storage/ChecksumCache.js.map +1 -1
  20. package/dist/storage/SyncRulesBucketStorage.d.ts +35 -5
  21. package/dist/storage/SyncRulesBucketStorage.js.map +1 -1
  22. package/dist/storage/WriteCheckpointAPI.d.ts +1 -1
  23. package/dist/sync/BucketChecksumState.d.ts +5 -2
  24. package/dist/sync/BucketChecksumState.js +36 -8
  25. package/dist/sync/BucketChecksumState.js.map +1 -1
  26. package/dist/sync/RequestTracker.d.ts +7 -0
  27. package/dist/sync/RequestTracker.js +12 -0
  28. package/dist/sync/RequestTracker.js.map +1 -1
  29. package/dist/sync/sync.js +118 -38
  30. package/dist/sync/sync.js.map +1 -1
  31. package/dist/system/ServiceContext.d.ts +2 -0
  32. package/dist/system/ServiceContext.js +2 -0
  33. package/dist/system/ServiceContext.js.map +1 -1
  34. package/dist/tracing/PerformanceTracer.d.ts +7 -1
  35. package/dist/tracing/PerformanceTracer.js +8 -0
  36. package/dist/tracing/PerformanceTracer.js.map +1 -1
  37. package/dist/util/checkpointing.d.ts +3 -8
  38. package/dist/util/checkpointing.js +1 -16
  39. package/dist/util/checkpointing.js.map +1 -1
  40. package/dist/util/config/compound-config-collector.js +10 -2
  41. package/dist/util/config/compound-config-collector.js.map +1 -1
  42. package/dist/util/config/defaults.d.ts +1 -0
  43. package/dist/util/config/defaults.js +1 -0
  44. package/dist/util/config/defaults.js.map +1 -1
  45. package/dist/util/config/types.d.ts +1 -0
  46. package/dist/util/util-index.d.ts +1 -0
  47. package/dist/util/util-index.js +1 -0
  48. package/dist/util/util-index.js.map +1 -1
  49. package/dist/util/utils.d.ts +1 -1
  50. package/dist/util/utils.js +1 -1
  51. package/dist/util/write-checkpoint-batcher.d.ts +19 -0
  52. package/dist/util/write-checkpoint-batcher.js +90 -0
  53. package/dist/util/write-checkpoint-batcher.js.map +1 -0
  54. package/package.json +5 -5
  55. package/src/api/RouteAPI.ts +25 -11
  56. package/src/replication/AbstractReplicator.ts +8 -0
  57. package/src/routes/RouterEngine.ts +7 -1
  58. package/src/routes/configure-fastify.ts +25 -2
  59. package/src/routes/endpoints/checkpointing.ts +1 -4
  60. package/src/routes/endpoints/socket-route.ts +2 -1
  61. package/src/storage/BucketStorageBatch.ts +61 -11
  62. package/src/storage/ChecksumCache.ts +27 -14
  63. package/src/storage/SyncRulesBucketStorage.ts +42 -5
  64. package/src/storage/WriteCheckpointAPI.ts +1 -1
  65. package/src/sync/BucketChecksumState.ts +65 -8
  66. package/src/sync/RequestTracker.ts +20 -0
  67. package/src/sync/sync.ts +148 -44
  68. package/src/system/ServiceContext.ts +7 -0
  69. package/src/tracing/PerformanceTracer.ts +18 -1
  70. package/src/util/checkpointing.ts +3 -22
  71. package/src/util/config/compound-config-collector.ts +13 -1
  72. package/src/util/config/defaults.ts +1 -0
  73. package/src/util/config/types.ts +1 -0
  74. package/src/util/util-index.ts +1 -0
  75. package/src/util/utils.ts +1 -1
  76. package/src/util/write-checkpoint-batcher.ts +122 -0
  77. package/test/src/checksum_cache.test.ts +22 -0
  78. package/test/src/config.test.ts +42 -0
  79. package/test/src/sync/BucketChecksumState.test.ts +41 -1
  80. package/test/src/util/checkpointing.test.ts +170 -0
  81. package/tsconfig.tsbuildinfo +1 -1
@@ -10,19 +10,24 @@ export interface FetchPartialBucketChecksum {
10
10
  }
11
11
  export type PartialOrFullChecksum = PartialChecksum | BucketChecksum;
12
12
  export type PartialChecksumMap = Map<string, PartialOrFullChecksum>;
13
- export type FetchChecksums = (batch: FetchPartialBucketChecksum[]) => Promise<PartialChecksumMap>;
14
- export interface ChecksumCacheOptions {
13
+ export type FetchChecksums<TContext = undefined> = (batch: FetchPartialBucketChecksum[], context: TContext) => Promise<PartialChecksumMap>;
14
+ export interface ChecksumCacheOptions<TContext = undefined> {
15
15
  /**
16
16
  * Upstream checksum implementation.
17
17
  *
18
18
  * This fetches a batch of either entire bucket checksums, or a partial range.
19
19
  */
20
- fetchChecksums: FetchChecksums;
20
+ fetchChecksums: FetchChecksums<TContext>;
21
21
  /**
22
22
  * Maximum number of cached checksums.
23
23
  */
24
24
  maxSize?: number;
25
+ /**
26
+ * How long to keep cached checksums before refreshing them.
27
+ */
28
+ ttlMs?: number;
25
29
  }
30
+ export declare const DEFAULT_CHECKSUM_CACHE_TTL_MS: number;
26
31
  /**
27
32
  * Implement a LRU cache for checksum requests. Each (bucket, checkpoint) request is cached separately,
28
33
  * while the lookups occur in batches.
@@ -32,7 +37,7 @@ export interface ChecksumCacheOptions {
32
37
  *
33
38
  * We use the LRUCache fetchMethod to deduplicate in-progress requests.
34
39
  */
35
- export declare class ChecksumCache {
40
+ export declare class ChecksumCache<TContext = undefined> {
36
41
  /**
37
42
  * The primary checksum cache, with key of `${checkpoint}/${bucket}`.
38
43
  */
@@ -42,7 +47,7 @@ export declare class ChecksumCache {
42
47
  */
43
48
  private bucketCheckpoints;
44
49
  private fetchChecksums;
45
- constructor(options: ChecksumCacheOptions);
50
+ constructor(options: ChecksumCacheOptions<TContext>);
46
51
  clear(): void;
47
52
  getChecksums(checkpoint: InternalOpId, buckets: BucketChecksumRequest[]): Promise<BucketChecksum[]>;
48
53
  /**
@@ -52,5 +57,5 @@ export declare class ChecksumCache {
52
57
  *
53
58
  * @returns a Map with exactly one entry for each bucket requested
54
59
  */
55
- getChecksumMap(checkpoint: InternalOpId, buckets: BucketChecksumRequest[]): Promise<ChecksumMap>;
60
+ getChecksumMap(checkpoint: InternalOpId, buckets: BucketChecksumRequest[], fetchContext?: TContext): Promise<ChecksumMap>;
56
61
  }
@@ -3,7 +3,8 @@ import { LRUCache } from 'lru-cache/min';
3
3
  import { addBucketChecksums } from '../util/utils.js';
4
4
  // Approximately 5MB of memory, if we assume 50 bytes per entry
5
5
  const DEFAULT_MAX_SIZE = 100_000;
6
- const TTL_MS = 3_600_000;
6
+ // Default to 1h
7
+ export const DEFAULT_CHECKSUM_CACHE_TTL_MS = 1 * 3_600_000;
7
8
  /**
8
9
  * Implement a LRU cache for checksum requests. Each (bucket, checkpoint) request is cached separately,
9
10
  * while the lookups occur in batches.
@@ -60,7 +61,7 @@ export class ChecksumCache {
60
61
  // We use a TTL so that counts can eventually be refreshed
61
62
  // after a compact. This only has effect if the bucket has
62
63
  // not been checked in the meantime.
63
- ttl: TTL_MS,
64
+ ttl: options.ttlMs ?? DEFAULT_CHECKSUM_CACHE_TTL_MS,
64
65
  ttlResolution: 1_000,
65
66
  allowStale: false
66
67
  });
@@ -81,7 +82,7 @@ export class ChecksumCache {
81
82
  *
82
83
  * @returns a Map with exactly one entry for each bucket requested
83
84
  */
84
- async getChecksumMap(checkpoint, buckets) {
85
+ async getChecksumMap(checkpoint, buckets, fetchContext) {
85
86
  // Buckets that don't have a cached checksum for this checkpoint yet
86
87
  let toFetch = new Set();
87
88
  // Newly fetched results
@@ -201,7 +202,7 @@ export class ChecksumCache {
201
202
  bucketRequests.push(bucketRequest);
202
203
  }
203
204
  // Fetch partial checksums from upstream
204
- const results = await this.fetchChecksums(bucketRequests);
205
+ const results = await this.fetchChecksums(bucketRequests, fetchContext);
205
206
  for (let bucket of toFetch) {
206
207
  const result = results.get(bucket);
207
208
  const toAdd = add.get(bucket);
@@ -1 +1 @@
1
- {"version":3,"file":"ChecksumCache.js","sourceRoot":"","sources":["../../src/storage/ChecksumCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChecksumCache.js","sourceRoot":"","sources":["../../src/storage/ChecksumCache.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,11 @@ import { StorageVersionConfig } from './StorageVersionConfig.js';
13
13
  import { SyncStorageWriteCheckpointAPI } from './WriteCheckpointAPI.js';
14
14
  /**
15
15
  * Storage for a specific replication stream.
16
+ *
17
+ * Replication writes source changes, source table metadata, snapshot progress,
18
+ * resume positions, and checkpoint boundaries through this interface. The sync
19
+ * API reads the same stream state as checkpoints, checksums, bucket data,
20
+ * parameter lookup rows, and write-checkpoint acknowledgements.
16
21
  */
17
22
  export interface SyncRulesBucketStorage extends ObserverClient<SyncRulesBucketStorageListener>, SyncStorageWriteCheckpointAPI {
18
23
  readonly replicationStreamId: number;
@@ -21,12 +26,17 @@ export interface SyncRulesBucketStorage extends ObserverClient<SyncRulesBucketSt
21
26
  readonly factory: BucketStorageFactory;
22
27
  readonly logger: Logger;
23
28
  /**
24
- * Create a new writer.
29
+ * Create a writer for a source-specific unit of replication work.
25
30
  *
26
- * The writer must be flushed and disposed when done.
31
+ * The writer may be used for a long-running streaming attempt, a table
32
+ * snapshot, a page of snapshot work, or a short setup step. Pending work
33
+ * that should be persisted must be flushed, committed, or kept alive at the
34
+ * appropriate source boundary before the writer is disposed.
27
35
  */
28
36
  createWriter(options: CreateWriterOptions): Promise<BucketStorageBatch>;
29
37
  /**
38
+ * Callback wrapper around `createWriter()`.
39
+ *
30
40
  * @deprecated Use `createWriter()` with `await using` instead.
31
41
  */
32
42
  startBatch(options: CreateWriterOptions, callback: (batch: BucketStorageBatch) => Promise<void>): Promise<FlushedResult | null>;
@@ -77,7 +87,7 @@ export interface SyncRulesBucketStorage extends ObserverClient<SyncRulesBucketSt
77
87
  *
78
88
  * This is a best-effort optimization:
79
89
  * 1. This may include more changes than what actually occurred.
80
- * 2. This may return invalidateDataBuckets or invalidateParameterBuckets instead of of returning
90
+ * 2. This may return invalidateDataBuckets or invalidateParameterBuckets instead of returning
81
91
  * specific changes.
82
92
  * @param options
83
93
  */
@@ -99,7 +109,7 @@ export interface SyncRulesBucketStorage extends ObserverClient<SyncRulesBucketSt
99
109
  * @param dataBuckets current bucket states
100
110
  * @param options batch size options
101
111
  */
102
- getBucketDataBatch(checkpoint: util.InternalOpId, dataBuckets: BucketDataRequest[], options?: BucketDataBatchOptions): AsyncIterable<SyncBucketDataChunk>;
112
+ getBucketDataBatch(checkpoint: ReplicationCheckpoint, dataBuckets: BucketDataRequest[], options?: BucketDataBatchOptions): AsyncIterable<SyncBucketDataChunk>;
103
113
  /**
104
114
  * Compute checksums for a given list of buckets.
105
115
  *
@@ -108,7 +118,7 @@ export interface SyncRulesBucketStorage extends ObserverClient<SyncRulesBucketSt
108
118
  * This may be slow, depending on the size of the buckets.
109
119
  * The checksums are cached internally to compensate for this, but does not cover all cases.
110
120
  */
111
- getChecksums(checkpoint: util.InternalOpId, buckets: BucketChecksumRequest[]): Promise<util.ChecksumMap>;
121
+ getChecksums(checkpoint: ReplicationCheckpoint, buckets: BucketChecksumRequest[], options?: BucketChecksumOptions): Promise<util.ChecksumMap>;
112
122
  /**
113
123
  * Clear checksum cache. Primarily intended for tests.
114
124
  */
@@ -131,6 +141,10 @@ export interface BucketChecksumRequest {
131
141
  bucket: string;
132
142
  source: BucketDataSource;
133
143
  }
144
+ export interface BucketChecksumOptions {
145
+ requestHint?: BucketRequestHint;
146
+ }
147
+ export type BucketRequestHint = 'bulk' | 'incremental';
134
148
  export interface ReplicationStreamStatus {
135
149
  /**
136
150
  * Source position to resume replication from.
@@ -143,6 +157,9 @@ export interface ReplicationStreamStatus {
143
157
  }
144
158
  export interface ResolveTablesOptions {
145
159
  connection_id: number;
160
+ /**
161
+ * Source table or collection metadata discovered during snapshot or streaming.
162
+ */
146
163
  source: SourceEntityDescriptor;
147
164
  /**
148
165
  * For tests only - custom id generator for stable ids.
@@ -154,10 +171,22 @@ export interface ResolveTablesOptions {
154
171
  parsedSyncConfig?: ParsedSyncConfigSet;
155
172
  }
156
173
  export interface ResolveTablesResult {
174
+ /**
175
+ * Current source table mappings that should receive replicated data.
176
+ */
157
177
  tables: SourceTable[];
178
+ /**
179
+ * Outdated source table mappings that should be removed by the connector.
180
+ */
158
181
  dropTables: SourceTable[];
159
182
  }
183
+ /**
184
+ * Options for creating a storage writer.
185
+ */
160
186
  export interface CreateWriterOptions extends ParseSyncConfigOptions {
187
+ /**
188
+ * Source-specific zero or empty replication position.
189
+ */
161
190
  zeroLSN: string;
162
191
  /**
163
192
  * Whether or not to store a copy of the current data.
@@ -293,6 +322,7 @@ export interface TerminateOptions extends ClearStorageOptions {
293
322
  clearStorage: boolean;
294
323
  }
295
324
  export interface BucketDataBatchOptions {
325
+ requestHint?: BucketRequestHint;
296
326
  /** Limit number of documents returned. Defaults to 1000. */
297
327
  limit?: number;
298
328
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"SyncRulesBucketStorage.js","sourceRoot":"","sources":["../../src/storage/SyncRulesBucketStorage.ts"],"names":[],"mappings":"AA4YA;;;;GAIG;AACH,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IAE5C;IACA;IAFX,YACW,KAAa,EACb,SAAyC;QAElD,KAAK,CAAC,yCAAyC,KAAK,GAAG,CAAC,CAAC;QAHhD,UAAK,GAAL,KAAK,CAAQ;QACb,cAAS,GAAT,SAAS,CAAgC;IAGpD,CAAC;CACF;AAqDD,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,kBAAkB,EAAE,IAAI,GAAG,EAAU;IACrC,qBAAqB,EAAE,IAAI;IAC3B,uBAAuB,EAAE,IAAI,GAAG,EAAU;IAC1C,0BAA0B,EAAE,IAAI;CACjC,CAAC"}
1
+ {"version":3,"file":"SyncRulesBucketStorage.js","sourceRoot":"","sources":["../../src/storage/SyncRulesBucketStorage.ts"],"names":[],"mappings":"AAibA;;;;GAIG;AACH,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IAE5C;IACA;IAFX,YACW,KAAa,EACb,SAAyC;QAElD,KAAK,CAAC,yCAAyC,KAAK,GAAG,CAAC,CAAC;QAHhD,UAAK,GAAL,KAAK,CAAQ;QACb,cAAS,GAAT,SAAS,CAAgC;IAGpD,CAAC;CACF;AAqDD,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,kBAAkB,EAAE,IAAI,GAAG,EAAU;IACrC,qBAAqB,EAAE,IAAI;IAC3B,uBAAuB,EAAE,IAAI,GAAG,EAAU;IAC1C,0BAA0B,EAAE,IAAI;CACjC,CAAC"}
@@ -50,7 +50,7 @@ export type LastWriteCheckpointFilters = CustomWriteCheckpointFilters | ManagedW
50
50
  export interface BaseWriteCheckpointAPI {
51
51
  readonly writeCheckpointMode: WriteCheckpointMode;
52
52
  setWriteCheckpointMode(mode: WriteCheckpointMode): void;
53
- createManagedWriteCheckpoint(checkpoint: ManagedWriteCheckpointOptions): Promise<bigint>;
53
+ createManagedWriteCheckpoints(checkpoints: ManagedWriteCheckpointOptions[]): Promise<Map<string, bigint>>;
54
54
  }
55
55
  /**
56
56
  * Write Checkpoint API to be used in conjunction with a {@link SyncRulesBucketStorage}.
@@ -3,7 +3,9 @@ import * as storage from '../storage/storage-index.js';
3
3
  import * as util from '../util/util-index.js';
4
4
  import { Logger } from '@powersync/lib-services-framework';
5
5
  import { JwtPayload } from '../auth/JwtPayload.js';
6
+ import { PerformanceTracer } from '../tracing/PerformanceTracer.js';
6
7
  import { SyncContext } from './SyncContext.js';
8
+ export type SyncCheckpointTraceCategory = 'checkpoint' | 'parameters' | 'checksum' | 'acquiring_lock' | 'bucket_data' | 'sending';
7
9
  export interface BucketChecksumStateOptions {
8
10
  syncContext: SyncContext;
9
11
  bucketStorage: BucketChecksumStateStorage;
@@ -65,7 +67,7 @@ export declare class BucketChecksumState {
65
67
  * @param next The updated checkpoint
66
68
  * @returns A {@link CheckpointLine} if any of the buckets watched by this connected was updated, or otherwise `null`.
67
69
  */
68
- buildNextCheckpointLine(next: storage.StorageCheckpointUpdate): Promise<CheckpointLine | null>;
70
+ buildNextCheckpointLine(next: storage.StorageCheckpointUpdate, tracer?: PerformanceTracer<SyncCheckpointTraceCategory>): Promise<CheckpointLine | null>;
69
71
  }
70
72
  declare const INVALIDATE_ALL_BUCKETS: unique symbol;
71
73
  export interface CheckpointUpdate {
@@ -111,7 +113,7 @@ export declare class BucketParameterState {
111
113
  */
112
114
  translateResolvedBucket(description: ResolvedBucket, lookupIndex: Map<string, number>): util.ClientBucketDescription;
113
115
  isSubscribedToStream(desc: BucketSource): boolean;
114
- getCheckpointUpdate(checkpoint: storage.StorageCheckpointUpdate): Promise<CheckpointUpdate>;
116
+ getCheckpointUpdate(checkpoint: storage.StorageCheckpointUpdate, tracer: PerformanceTracer<SyncCheckpointTraceCategory>): Promise<CheckpointUpdate>;
115
117
  /**
116
118
  * For static buckets, we can keep track of which buckets have been updated.
117
119
  */
@@ -124,6 +126,7 @@ export declare class BucketParameterState {
124
126
  export interface CheckpointLine {
125
127
  checkpointLine: util.StreamingSyncCheckpointDiff | util.StreamingSyncCheckpoint;
126
128
  bucketsToFetch: ResolvedBucket[];
129
+ bucketDataRequestHint: storage.BucketRequestHint;
127
130
  /**
128
131
  * Call when a checkpoint line is being sent to a client, to update the internal state.
129
132
  */
@@ -2,6 +2,7 @@ import { mergeBuckets, RequestParameters } from '@powersync/service-sync-rules';
2
2
  import * as util from '../util/util-index.js';
3
3
  import { logger as defaultLogger, ErrorCode, ServiceAssertionError, ServiceError } from '@powersync/lib-services-framework';
4
4
  import { ParameterSetLimitExceededError } from '../storage/storage-index.js';
5
+ import { PerformanceTracer } from '../tracing/PerformanceTracer.js';
5
6
  import { getIntersection, hasIntersection } from './util.js';
6
7
  /**
7
8
  * Represents the state of the checksums and data for a specific connection.
@@ -62,11 +63,12 @@ export class BucketChecksumState {
62
63
  * @param next The updated checkpoint
63
64
  * @returns A {@link CheckpointLine} if any of the buckets watched by this connected was updated, or otherwise `null`.
64
65
  */
65
- async buildNextCheckpointLine(next) {
66
+ async buildNextCheckpointLine(next, tracer) {
67
+ tracer ??= new PerformanceTracer(`sync checkpoint ${next.base.checkpoint}`);
66
68
  const { writeCheckpoint, base } = next;
67
69
  const userIdForLogs = this.parameterState.syncParams.userId;
68
70
  const storage = this.bucketStorage;
69
- const update = await this.parameterState.getCheckpointUpdate(next);
71
+ const update = await this.parameterState.getCheckpointUpdate(next, tracer);
70
72
  const { buckets: allBuckets, updatedBuckets, usedParameterResults } = update;
71
73
  /** Set of all buckets in this checkpoint. */
72
74
  const bucketDescriptionMap = new Map(allBuckets.map((b) => [b.bucket, b]));
@@ -98,6 +100,7 @@ export class BucketChecksumState {
98
100
  }
99
101
  // Re-check updated buckets only
100
102
  let checksumLookups = [];
103
+ let hasNewBucket = false;
101
104
  let newChecksums = new Map();
102
105
  for (let desc of bucketDescriptionMap.values()) {
103
106
  if (!updatedBuckets.has(desc.bucket)) {
@@ -111,10 +114,14 @@ export class BucketChecksumState {
111
114
  }
112
115
  else {
113
116
  checksumLookups.push({ bucket: desc.bucket, source: desc.source });
117
+ hasNewBucket ||= !this.lastChecksums.has(desc.bucket);
114
118
  }
115
119
  }
116
120
  if (checksumLookups.length > 0) {
117
- let updatedChecksums = await storage.getChecksums(base.checkpoint, checksumLookups);
121
+ const requestHint = hasNewBucket ? 'bulk' : 'incremental';
122
+ let updatedChecksums;
123
+ using _ = tracer.span('checksum');
124
+ updatedChecksums = await storage.getChecksums(base, checksumLookups, { requestHint });
118
125
  for (let [bucket, value] of updatedChecksums.entries()) {
119
126
  newChecksums.set(bucket, value);
120
127
  }
@@ -123,11 +130,20 @@ export class BucketChecksumState {
123
130
  }
124
131
  else {
125
132
  // Re-check all buckets
126
- const bucketList = [...bucketDescriptionMap.values()].map((b) => ({ bucket: b.bucket, source: b.source }));
127
- checksumMap = await storage.getChecksums(base.checkpoint, bucketList);
133
+ const hasNewBucket = this.lastChecksums == null ||
134
+ [...bucketDescriptionMap.values()].some((b) => !this.lastChecksums.has(b.bucket));
135
+ const requestHint = hasNewBucket ? 'bulk' : 'incremental';
136
+ const bucketList = [...bucketDescriptionMap.values()].map((b) => ({
137
+ bucket: b.bucket,
138
+ source: b.source
139
+ }));
140
+ using _ = tracer.span('checksum');
141
+ checksumMap = await storage.getChecksums(base, bucketList, { requestHint });
128
142
  }
129
143
  // Subset of buckets for which there may be new data in this batch.
130
144
  let bucketsToFetch;
145
+ let bucketDataRequestHint;
146
+ const newBucketDownloads = new Set();
131
147
  let checkpointLine;
132
148
  // Log function that is deferred until the checkpoint line is sent to the client.
133
149
  let deferredLog;
@@ -160,6 +176,12 @@ export class BucketChecksumState {
160
176
  bucketsToFetch = [...generateBucketsToFetch].map((b) => {
161
177
  return bucketDescriptionMap.get(b);
162
178
  });
179
+ for (const bucket of diff.updatedBuckets) {
180
+ if (!this.lastChecksums.has(bucket.bucket)) {
181
+ newBucketDownloads.add(bucket.bucket);
182
+ }
183
+ }
184
+ bucketDataRequestHint = newBucketDownloads.size > 0 ? 'bulk' : 'incremental';
163
185
  deferredLog = () => {
164
186
  let message = `Updated checkpoint: ${base.checkpoint} | `;
165
187
  message += `write: ${writeCheckpoint} | `;
@@ -197,6 +219,10 @@ export class BucketChecksumState {
197
219
  }, usedParameterResults);
198
220
  };
199
221
  bucketsToFetch = allBuckets;
222
+ for (const bucket of bucketsToFetch) {
223
+ newBucketDownloads.add(bucket.bucket);
224
+ }
225
+ bucketDataRequestHint = 'bulk';
200
226
  const subscriptions = [];
201
227
  const streamNameToIndex = new Map();
202
228
  this.streamNameToIndex = streamNameToIndex;
@@ -230,6 +256,7 @@ export class BucketChecksumState {
230
256
  return {
231
257
  checkpointLine,
232
258
  bucketsToFetch,
259
+ bucketDataRequestHint,
233
260
  advance: () => {
234
261
  hasAdvanced = true;
235
262
  // bucketDataPositions must be updated in-place - it represents the current state of
@@ -383,12 +410,12 @@ export class BucketParameterState {
383
410
  isSubscribedToStream(desc) {
384
411
  return (desc.subscribedToByDefault && this.includeDefaultStreams) || this.subscribedStreamNames.has(desc.name);
385
412
  }
386
- async getCheckpointUpdate(checkpoint) {
413
+ async getCheckpointUpdate(checkpoint, tracer) {
387
414
  const querier = this.querier;
388
415
  let update;
389
416
  if (querier.hasDynamicBuckets) {
390
417
  try {
391
- update = await this.getCheckpointUpdateDynamic(checkpoint);
418
+ update = await this.getCheckpointUpdateDynamic(checkpoint, tracer);
392
419
  }
393
420
  catch (e) {
394
421
  if (e instanceof ParameterSetLimitExceededError) {
@@ -441,7 +468,7 @@ export class BucketParameterState {
441
468
  /**
442
469
  * For dynamic buckets, we need to re-query the list of buckets every time.
443
470
  */
444
- async getCheckpointUpdateDynamic(checkpoint) {
471
+ async getCheckpointUpdateDynamic(checkpoint, tracer) {
445
472
  const querier = this.querier;
446
473
  const staticBuckets = this.staticBuckets.values();
447
474
  const update = checkpoint.update;
@@ -490,6 +517,7 @@ export class BucketParameterState {
490
517
  recordedLookups.add(lookup.serializedRepresentation);
491
518
  }
492
519
  try {
520
+ using _ = tracer.span('parameters', definition);
493
521
  const results = await checkpoint.base.getParameterSets(lookups, remainingBudget);
494
522
  const numRows = results.reduce((a, b) => a + b.rows.length, 0);
495
523
  lookupLog.push({ definition, resultsOrLimit: numRows, didExceedLimit: false });
@@ -1 +1 @@
1
- {"version":3,"file":"BucketChecksumState.js","sourceRoot":"","sources":["../../src/sync/BucketChecksumState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BucketChecksumState.js","sourceRoot":"","sources":["../../src/sync/BucketChecksumState.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export declare class RequestTracker {
11
11
  operationCounts: OperationCounts;
12
12
  largeBuckets: Record<string, number>;
13
13
  private encoding;
14
+ private lastCheckpointLogOperationsSynced;
15
+ private lastCheckpointLogDataSyncedBytes;
14
16
  constructor(metrics: MetricsEngine);
15
17
  addOperationsSynced(operations: OperationsSentStats): void;
16
18
  setCompressed(encoding: string): void;
@@ -24,6 +26,7 @@ export declare class RequestTracker {
24
26
  large_buckets: Record<string, number>;
25
27
  encoding: string | undefined;
26
28
  };
29
+ getIncrementalCheckpointStats(): CheckpointLogStats;
27
30
  }
28
31
  export interface OperationCounts {
29
32
  put: number;
@@ -36,4 +39,8 @@ export interface OperationsSentStats {
36
39
  operations: OperationCounts;
37
40
  total: number;
38
41
  }
42
+ export interface CheckpointLogStats {
43
+ operations_synced: number;
44
+ data_synced_bytes: number;
45
+ }
39
46
  export declare function statsForBatch(batch: SyncBucketData): OperationsSentStats;
@@ -11,6 +11,8 @@ export class RequestTracker {
11
11
  operationCounts = { put: 0, remove: 0, move: 0, clear: 0 };
12
12
  largeBuckets = {};
13
13
  encoding = undefined;
14
+ lastCheckpointLogOperationsSynced = 0;
15
+ lastCheckpointLogDataSyncedBytes = 0;
14
16
  constructor(metrics) {
15
17
  this.metrics = metrics;
16
18
  this.metrics = metrics;
@@ -55,6 +57,16 @@ export class RequestTracker {
55
57
  encoding: this.encoding
56
58
  };
57
59
  }
60
+ getIncrementalCheckpointStats() {
61
+ const operationsSynced = this.operationsSynced - this.lastCheckpointLogOperationsSynced;
62
+ const dataSyncedBytes = this.dataSyncedBytes - this.lastCheckpointLogDataSyncedBytes;
63
+ this.lastCheckpointLogOperationsSynced = this.operationsSynced;
64
+ this.lastCheckpointLogDataSyncedBytes = this.dataSyncedBytes;
65
+ return {
66
+ operations_synced: operationsSynced,
67
+ data_synced_bytes: dataSyncedBytes
68
+ };
69
+ }
58
70
  }
59
71
  export function statsForBatch(batch) {
60
72
  let put = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"RequestTracker.js","sourceRoot":"","sources":["../../src/sync/RequestTracker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD;;GAEG;AACH,MAAM,OAAO,cAAc;IASL;IARpB,gBAAgB,GAAG,CAAC,CAAC;IACrB,eAAe,GAAG,CAAC,CAAC;IACpB,aAAa,GAAG,CAAC,CAAC;IAClB,eAAe,GAAoB,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAC5E,YAAY,GAA2B,EAAE,CAAC;IAElC,QAAQ,GAAuB,SAAS,CAAC;IAEjD,YAAoB,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,mBAAmB,CAAC,UAA+B;QACjD,IAAI,CAAC,gBAAgB,IAAI,UAAU,CAAC,KAAK,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;QACtD,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC;QAC5D,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;QACxD,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC;QAC1D,IAAI,UAAU,CAAC,KAAK,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACrE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;QACxG,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7E,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,sBAAsB,CAAC,KAAa;QAClC,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC;QAE9B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEhE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC1B,oEAAoE;YACpE,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;YAE5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,qBAAqB,CAAC,KAAa;QACjC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC1B,MAAM,IAAI,qBAAqB,CAAC,6BAA6B,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,UAAU;QACR,OAAO;YACL,iBAAiB,EAAE,IAAI,CAAC,gBAAgB;YACxC,iBAAiB,EAAE,IAAI,CAAC,eAAe;YACvC,eAAe,EAAE,IAAI,CAAC,aAAa;YACnC,gBAAgB,EAAE,IAAI,CAAC,eAAe;YACtC,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;CACF;AAeD,MAAM,UAAU,aAAa,CAAC,KAAqB;IACjD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC/B,QAAQ,KAAK,CAAC,EAAE,EAAE,CAAC;YACjB,KAAK,KAAK;gBACR,GAAG,EAAE,CAAC;gBACN,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,EAAE,CAAC;gBACT,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,EAAE,CAAC;gBACP,MAAM;YACR,KAAK,OAAO;gBACV,KAAK,EAAE,CAAC;gBACR,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU,EAAE;YACV,GAAG;YACH,MAAM;YACN,IAAI;YACJ,KAAK;SACN;QACD,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK;KACnC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"RequestTracker.js","sourceRoot":"","sources":["../../src/sync/RequestTracker.ts"],"names":[],"mappings":"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"}