@powersync/service-core 0.0.0-dev-20260223080959 → 0.0.0-dev-20260224151854
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/CHANGELOG.md +18 -5
- package/dist/entry/commands/compact-action.js +13 -2
- package/dist/entry/commands/compact-action.js.map +1 -1
- package/dist/storage/SyncRulesBucketStorage.d.ts +2 -1
- package/dist/storage/SyncRulesBucketStorage.js.map +1 -1
- package/dist/sync/BucketChecksumState.d.ts +5 -0
- package/dist/sync/BucketChecksumState.js +85 -10
- package/dist/sync/BucketChecksumState.js.map +1 -1
- package/package.json +5 -5
- package/src/entry/commands/compact-action.ts +15 -2
- package/src/storage/SyncRulesBucketStorage.ts +2 -1
- package/src/sync/BucketChecksumState.ts +127 -15
- package/test/src/sync/BucketChecksumState.test.ts +200 -0
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @powersync/service-core
|
|
2
2
|
|
|
3
|
-
## 0.0.0-dev-
|
|
3
|
+
## 0.0.0-dev-20260224151854
|
|
4
4
|
|
|
5
5
|
### Minor Changes
|
|
6
6
|
|
|
@@ -10,13 +10,26 @@
|
|
|
10
10
|
|
|
11
11
|
### Patch Changes
|
|
12
12
|
|
|
13
|
+
- 65f3c89: Improve Postgres compaction performance by replacing bucket range filtering with incremental discovery and per-bucket exact-match queries, eliminating `COLLATE "C"` and `U+FFFF` sentinel usage.
|
|
14
|
+
|
|
15
|
+
- The compactor logic is an internal refactor that improves query performance (no API change)
|
|
16
|
+
- The CLI change adds validation but is a correction (prefix matching was broken/unused anyway)
|
|
17
|
+
- The `CompactOptions.compactBuckets` JSDoc is a documentation-only update
|
|
18
|
+
|
|
19
|
+
Resolves #400.
|
|
20
|
+
|
|
21
|
+
- b440093: Add detailed logging for parameter query results to improve debugging when limits are exceeded. Checkpoint logs now include the total number of parameter query results (before deduplication), and error messages show a breakdown of the top 10 sync stream definitions contributing to the count.
|
|
13
22
|
- Updated dependencies [0998251]
|
|
14
23
|
- Updated dependencies [1c45667]
|
|
24
|
+
- Updated dependencies [8785a3f]
|
|
25
|
+
- Updated dependencies [d7ff4ad]
|
|
15
26
|
- Updated dependencies [8bd83e8]
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
- @powersync/
|
|
19
|
-
- @powersync/service-
|
|
27
|
+
- Updated dependencies [79a9729]
|
|
28
|
+
- Updated dependencies [5edd95f]
|
|
29
|
+
- @powersync/service-types@0.0.0-dev-20260224151854
|
|
30
|
+
- @powersync/service-sync-rules@0.0.0-dev-20260224151854
|
|
31
|
+
- @powersync/lib-services-framework@0.0.0-dev-20260224151854
|
|
32
|
+
- @powersync/service-rsocket-router@0.0.0-dev-20260224151854
|
|
20
33
|
|
|
21
34
|
## 1.19.2
|
|
22
35
|
|
|
@@ -18,10 +18,21 @@ const COMPACT_MEMORY_LIMIT_MB = Math.min(HEAP_LIMIT / 1024 / 1024 - 128, 1024);
|
|
|
18
18
|
export function registerCompactAction(program) {
|
|
19
19
|
const compactCommand = program
|
|
20
20
|
.command(COMMAND_NAME)
|
|
21
|
-
.option(`-b, --buckets [buckets]`, '
|
|
21
|
+
.option(`-b, --buckets [buckets]`, 'Full bucket names, comma-separated (e.g., "global[],mybucket[\\"user1\\"]")');
|
|
22
22
|
wrapConfigCommand(compactCommand);
|
|
23
23
|
return compactCommand.description('Compact storage').action(async (options) => {
|
|
24
|
-
const buckets = options.buckets
|
|
24
|
+
const buckets = options.buckets
|
|
25
|
+
?.split(',')
|
|
26
|
+
.map((b) => b.trim())
|
|
27
|
+
.filter(Boolean);
|
|
28
|
+
if (buckets) {
|
|
29
|
+
const invalid = buckets.filter((b) => !b.includes('['));
|
|
30
|
+
if (invalid.length > 0) {
|
|
31
|
+
logger.error(`Invalid bucket names: ${invalid.join(', ')}. ` +
|
|
32
|
+
`Pass full bucket names (e.g., "global[]"), not bucket definition names (e.g., "global").`);
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
25
36
|
if (buckets == null) {
|
|
26
37
|
logger.info('Compacting storage for all buckets...');
|
|
27
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact-action.js","sourceRoot":"","sources":["../../../src/entry/commands/compact-action.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,MAAM,MAAM,8BAA8B,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,MAAM,YAAY,GAAG,SAAS,CAAC;AAE/B;;GAEG;AACH,MAAM,UAAU,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,eAAe,CAAC;AAE1D;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;AAE/E,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,cAAc,GAAG,OAAO;SAC3B,OAAO,CAAC,YAAY,CAAC;SACrB,MAAM,CAAC,yBAAyB,EAAE,
|
|
1
|
+
{"version":3,"file":"compact-action.js","sourceRoot":"","sources":["../../../src/entry/commands/compact-action.ts"],"names":[],"mappings":"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"}
|
|
@@ -163,7 +163,8 @@ export interface CompactOptions {
|
|
|
163
163
|
*
|
|
164
164
|
* If not specified, compacts all buckets.
|
|
165
165
|
*
|
|
166
|
-
* These
|
|
166
|
+
* These must be full bucket names (e.g., "global[]", "mybucket[\"user1\"]").
|
|
167
|
+
* Bucket definition names (e.g., "global") are not supported.
|
|
167
168
|
*/
|
|
168
169
|
compactBuckets?: string[];
|
|
169
170
|
compactParameterData?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncRulesBucketStorage.js","sourceRoot":"","sources":["../../src/storage/SyncRulesBucketStorage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SyncRulesBucketStorage.js","sourceRoot":"","sources":["../../src/storage/SyncRulesBucketStorage.ts"],"names":[],"mappings":"AA8UA,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"}
|
|
@@ -79,6 +79,11 @@ export interface CheckpointUpdate {
|
|
|
79
79
|
* If null, assume that any bucket in `buckets` may have been updated.
|
|
80
80
|
*/
|
|
81
81
|
updatedBuckets: Set<string> | typeof INVALIDATE_ALL_BUCKETS;
|
|
82
|
+
/**
|
|
83
|
+
* Number of parameter query results per sync stream definition (before deduplication).
|
|
84
|
+
* Map from definition name to count.
|
|
85
|
+
*/
|
|
86
|
+
parameterQueryResultsByDefinition?: Map<string, number>;
|
|
82
87
|
}
|
|
83
88
|
export declare class BucketParameterState {
|
|
84
89
|
private readonly context;
|
|
@@ -66,7 +66,7 @@ export class BucketChecksumState {
|
|
|
66
66
|
const userIdForLogs = this.parameterState.syncParams.userId;
|
|
67
67
|
const storage = this.bucketStorage;
|
|
68
68
|
const update = await this.parameterState.getCheckpointUpdate(next);
|
|
69
|
-
const { buckets: allBuckets, updatedBuckets } = update;
|
|
69
|
+
const { buckets: allBuckets, updatedBuckets, parameterQueryResultsByDefinition } = update;
|
|
70
70
|
/** Set of all buckets in this checkpoint. */
|
|
71
71
|
const bucketDescriptionMap = new Map(allBuckets.map((b) => [b.bucket, b]));
|
|
72
72
|
if (bucketDescriptionMap.size > this.context.maxBuckets) {
|
|
@@ -145,18 +145,22 @@ export class BucketChecksumState {
|
|
|
145
145
|
};
|
|
146
146
|
});
|
|
147
147
|
deferredLog = () => {
|
|
148
|
+
const totalParamResults = computeTotalParamResults(parameterQueryResultsByDefinition);
|
|
148
149
|
let message = `Updated checkpoint: ${base.checkpoint} | `;
|
|
149
150
|
message += `write: ${writeCheckpoint} | `;
|
|
150
151
|
message += `buckets: ${allBuckets.length} | `;
|
|
152
|
+
if (totalParamResults !== undefined) {
|
|
153
|
+
message += `param_results: ${totalParamResults} | `;
|
|
154
|
+
}
|
|
151
155
|
message += `updated: ${limitedBuckets(diff.updatedBuckets, 20)} | `;
|
|
152
156
|
message += `removed: ${limitedBuckets(diff.removedBuckets, 20)}`;
|
|
153
|
-
this.logger
|
|
157
|
+
logCheckpoint(this.logger, message, {
|
|
154
158
|
checkpoint: base.checkpoint,
|
|
155
159
|
user_id: userIdForLogs,
|
|
156
160
|
buckets: allBuckets.length,
|
|
157
161
|
updated: diff.updatedBuckets.length,
|
|
158
162
|
removed: diff.removedBuckets.length
|
|
159
|
-
});
|
|
163
|
+
}, totalParamResults);
|
|
160
164
|
};
|
|
161
165
|
checkpointLine = {
|
|
162
166
|
checkpoint_diff: {
|
|
@@ -169,9 +173,18 @@ export class BucketChecksumState {
|
|
|
169
173
|
}
|
|
170
174
|
else {
|
|
171
175
|
deferredLog = () => {
|
|
176
|
+
const totalParamResults = computeTotalParamResults(parameterQueryResultsByDefinition);
|
|
172
177
|
let message = `New checkpoint: ${base.checkpoint} | write: ${writeCheckpoint} | `;
|
|
173
|
-
message += `buckets: ${allBuckets.length}
|
|
174
|
-
|
|
178
|
+
message += `buckets: ${allBuckets.length}`;
|
|
179
|
+
if (totalParamResults !== undefined) {
|
|
180
|
+
message += ` | param_results: ${totalParamResults}`;
|
|
181
|
+
}
|
|
182
|
+
message += ` ${limitedBuckets(allBuckets, 20)}`;
|
|
183
|
+
logCheckpoint(this.logger, message, {
|
|
184
|
+
checkpoint: base.checkpoint,
|
|
185
|
+
user_id: userIdForLogs,
|
|
186
|
+
buckets: allBuckets.length
|
|
187
|
+
}, totalParamResults);
|
|
175
188
|
};
|
|
176
189
|
bucketsToFetch = allBuckets.map((b) => ({ bucket: b.bucket, priority: b.priority }));
|
|
177
190
|
const subscriptions = [];
|
|
@@ -388,11 +401,18 @@ export class BucketParameterState {
|
|
|
388
401
|
// TODO: Limit number of results even before we get to this point
|
|
389
402
|
// This limit applies _before_ we get the unique set
|
|
390
403
|
const error = new ServiceError(ErrorCode.PSYNC_S2305, `Too many parameter query results: ${update.buckets.length} (limit of ${this.context.maxParameterQueryResults})`);
|
|
391
|
-
|
|
404
|
+
let errorMessage = error.message;
|
|
405
|
+
const logData = {
|
|
392
406
|
checkpoint: checkpoint,
|
|
393
407
|
user_id: this.syncParams.userId,
|
|
394
|
-
|
|
395
|
-
}
|
|
408
|
+
parameter_query_results: update.buckets.length
|
|
409
|
+
};
|
|
410
|
+
if (update.parameterQueryResultsByDefinition && update.parameterQueryResultsByDefinition.size > 0) {
|
|
411
|
+
const breakdown = formatParameterQueryBreakdown(update.parameterQueryResultsByDefinition);
|
|
412
|
+
errorMessage += breakdown.message;
|
|
413
|
+
logData.parameter_query_results_by_definition = breakdown.countsByDefinition;
|
|
414
|
+
}
|
|
415
|
+
this.logger.error(errorMessage, logData);
|
|
396
416
|
throw error;
|
|
397
417
|
}
|
|
398
418
|
return update;
|
|
@@ -440,6 +460,7 @@ export class BucketParameterState {
|
|
|
440
460
|
}
|
|
441
461
|
}
|
|
442
462
|
let dynamicBuckets;
|
|
463
|
+
let parameterQueryResultsByDefinition;
|
|
443
464
|
if (hasParameterChange || this.cachedDynamicBuckets == null || this.cachedDynamicBucketSet == null) {
|
|
444
465
|
const recordedLookups = new Set();
|
|
445
466
|
dynamicBuckets = await querier.queryDynamicBucketDescriptions({
|
|
@@ -450,6 +471,12 @@ export class BucketParameterState {
|
|
|
450
471
|
return checkpoint.base.getParameterSets(lookups);
|
|
451
472
|
}
|
|
452
473
|
});
|
|
474
|
+
// Count parameter query results per definition (before deduplication)
|
|
475
|
+
parameterQueryResultsByDefinition = new Map();
|
|
476
|
+
for (const bucket of dynamicBuckets) {
|
|
477
|
+
const count = parameterQueryResultsByDefinition.get(bucket.definition) ?? 0;
|
|
478
|
+
parameterQueryResultsByDefinition.set(bucket.definition, count + 1);
|
|
479
|
+
}
|
|
453
480
|
this.cachedDynamicBuckets = dynamicBuckets;
|
|
454
481
|
this.cachedDynamicBucketSet = new Set(dynamicBuckets.map((b) => b.bucket));
|
|
455
482
|
this.lookupsFromPreviousCheckpoint = recordedLookups;
|
|
@@ -471,17 +498,65 @@ export class BucketParameterState {
|
|
|
471
498
|
return {
|
|
472
499
|
buckets: allBuckets,
|
|
473
500
|
// We cannot track individual bucket updates for dynamic lookups yet
|
|
474
|
-
updatedBuckets: INVALIDATE_ALL_BUCKETS
|
|
501
|
+
updatedBuckets: INVALIDATE_ALL_BUCKETS,
|
|
502
|
+
parameterQueryResultsByDefinition
|
|
475
503
|
};
|
|
476
504
|
}
|
|
477
505
|
else {
|
|
478
506
|
return {
|
|
479
507
|
buckets: allBuckets,
|
|
480
|
-
updatedBuckets: updatedBuckets
|
|
508
|
+
updatedBuckets: updatedBuckets,
|
|
509
|
+
parameterQueryResultsByDefinition
|
|
481
510
|
};
|
|
482
511
|
}
|
|
483
512
|
}
|
|
484
513
|
}
|
|
514
|
+
/**
|
|
515
|
+
* Compute the total number of parameter query results across all definitions.
|
|
516
|
+
*/
|
|
517
|
+
function computeTotalParamResults(parameterQueryResultsByDefinition) {
|
|
518
|
+
if (!parameterQueryResultsByDefinition) {
|
|
519
|
+
return undefined;
|
|
520
|
+
}
|
|
521
|
+
return Array.from(parameterQueryResultsByDefinition.values()).reduce((sum, count) => sum + count, 0);
|
|
522
|
+
}
|
|
523
|
+
/**
|
|
524
|
+
* Log a checkpoint message, enriching it with parameter query result counts if available.
|
|
525
|
+
*
|
|
526
|
+
* @param logger The logger instance to use
|
|
527
|
+
* @param message The base message string (param_results will NOT be appended — caller includes it if needed)
|
|
528
|
+
* @param logData The base log data object
|
|
529
|
+
* @param totalParamResults The total parameter query results count, or undefined if not applicable
|
|
530
|
+
*/
|
|
531
|
+
function logCheckpoint(logger, message, logData, totalParamResults) {
|
|
532
|
+
if (totalParamResults !== undefined) {
|
|
533
|
+
logData.parameter_query_results = totalParamResults;
|
|
534
|
+
}
|
|
535
|
+
logger.info(message, logData);
|
|
536
|
+
}
|
|
537
|
+
/**
|
|
538
|
+
* Format a breakdown of parameter query results by sync rule definition.
|
|
539
|
+
*
|
|
540
|
+
* Sorts definitions by count (descending), includes the top 10, and returns both the
|
|
541
|
+
* formatted message string and the counts record suitable for structured log data.
|
|
542
|
+
*/
|
|
543
|
+
function formatParameterQueryBreakdown(parameterQueryResultsByDefinition) {
|
|
544
|
+
// Sort definitions by count (descending) and take top 10
|
|
545
|
+
const allSorted = Array.from(parameterQueryResultsByDefinition.entries()).sort((a, b) => b[1] - a[1]);
|
|
546
|
+
const sortedDefinitions = allSorted.slice(0, 10);
|
|
547
|
+
let message = '\nParameter query results by definition:';
|
|
548
|
+
const countsByDefinition = {};
|
|
549
|
+
for (const [definition, count] of sortedDefinitions) {
|
|
550
|
+
message += `\n ${definition}: ${count}`;
|
|
551
|
+
countsByDefinition[definition] = count;
|
|
552
|
+
}
|
|
553
|
+
if (allSorted.length > 10) {
|
|
554
|
+
const remainingResults = allSorted.slice(10).reduce((sum, [, count]) => sum + count, 0);
|
|
555
|
+
const remainingDefinitions = allSorted.length - 10;
|
|
556
|
+
message += `\n ... and ${remainingResults} more results from ${remainingDefinitions} definitions`;
|
|
557
|
+
}
|
|
558
|
+
return { message, countsByDefinition };
|
|
559
|
+
}
|
|
485
560
|
function limitedBuckets(buckets, limit) {
|
|
486
561
|
buckets = buckets.map((b) => {
|
|
487
562
|
if (typeof b != 'string') {
|
|
@@ -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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"}
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
|
-
"version": "0.0.0-dev-
|
|
8
|
+
"version": "0.0.0-dev-20260224151854",
|
|
9
9
|
"main": "dist/index.js",
|
|
10
10
|
"license": "FSL-1.1-ALv2",
|
|
11
11
|
"type": "module",
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
"uuid": "^11.1.0",
|
|
34
34
|
"winston": "^3.13.0",
|
|
35
35
|
"yaml": "^2.3.2",
|
|
36
|
-
"@powersync/lib-services-framework": "0.0.0-dev-
|
|
36
|
+
"@powersync/lib-services-framework": "0.0.0-dev-20260224151854",
|
|
37
37
|
"@powersync/service-jsonbig": "0.17.12",
|
|
38
|
-
"@powersync/service-rsocket-router": "0.0.0-dev-
|
|
39
|
-
"@powersync/service-sync-rules": "0.0.0-dev-
|
|
40
|
-
"@powersync/service-types": "0.0.0-dev-
|
|
38
|
+
"@powersync/service-rsocket-router": "0.0.0-dev-20260224151854",
|
|
39
|
+
"@powersync/service-sync-rules": "0.0.0-dev-20260224151854",
|
|
40
|
+
"@powersync/service-types": "0.0.0-dev-20260224151854"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/async": "^3.2.24",
|
|
@@ -25,12 +25,25 @@ const COMPACT_MEMORY_LIMIT_MB = Math.min(HEAP_LIMIT / 1024 / 1024 - 128, 1024);
|
|
|
25
25
|
export function registerCompactAction(program: Command) {
|
|
26
26
|
const compactCommand = program
|
|
27
27
|
.command(COMMAND_NAME)
|
|
28
|
-
.option(`-b, --buckets [buckets]`, '
|
|
28
|
+
.option(`-b, --buckets [buckets]`, 'Full bucket names, comma-separated (e.g., "global[],mybucket[\\"user1\\"]")');
|
|
29
29
|
|
|
30
30
|
wrapConfigCommand(compactCommand);
|
|
31
31
|
|
|
32
32
|
return compactCommand.description('Compact storage').action(async (options) => {
|
|
33
|
-
const buckets = options.buckets
|
|
33
|
+
const buckets = options.buckets
|
|
34
|
+
?.split(',')
|
|
35
|
+
.map((b: string) => b.trim())
|
|
36
|
+
.filter(Boolean);
|
|
37
|
+
if (buckets) {
|
|
38
|
+
const invalid = buckets.filter((b: string) => !b.includes('['));
|
|
39
|
+
if (invalid.length > 0) {
|
|
40
|
+
logger.error(
|
|
41
|
+
`Invalid bucket names: ${invalid.join(', ')}. ` +
|
|
42
|
+
`Pass full bucket names (e.g., "global[]"), not bucket definition names (e.g., "global").`
|
|
43
|
+
);
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
34
47
|
if (buckets == null) {
|
|
35
48
|
logger.info('Compacting storage for all buckets...');
|
|
36
49
|
} else {
|
|
@@ -202,7 +202,8 @@ export interface CompactOptions {
|
|
|
202
202
|
*
|
|
203
203
|
* If not specified, compacts all buckets.
|
|
204
204
|
*
|
|
205
|
-
* These
|
|
205
|
+
* These must be full bucket names (e.g., "global[]", "mybucket[\"user1\"]").
|
|
206
|
+
* Bucket definition names (e.g., "global") are not supported.
|
|
206
207
|
*/
|
|
207
208
|
compactBuckets?: string[];
|
|
208
209
|
|
|
@@ -118,7 +118,7 @@ export class BucketChecksumState {
|
|
|
118
118
|
const storage = this.bucketStorage;
|
|
119
119
|
|
|
120
120
|
const update = await this.parameterState.getCheckpointUpdate(next);
|
|
121
|
-
const { buckets: allBuckets, updatedBuckets } = update;
|
|
121
|
+
const { buckets: allBuckets, updatedBuckets, parameterQueryResultsByDefinition } = update;
|
|
122
122
|
|
|
123
123
|
/** Set of all buckets in this checkpoint. */
|
|
124
124
|
const bucketDescriptionMap = new Map(allBuckets.map((b) => [b.bucket, b]));
|
|
@@ -214,18 +214,27 @@ export class BucketChecksumState {
|
|
|
214
214
|
});
|
|
215
215
|
|
|
216
216
|
deferredLog = () => {
|
|
217
|
+
const totalParamResults = computeTotalParamResults(parameterQueryResultsByDefinition);
|
|
217
218
|
let message = `Updated checkpoint: ${base.checkpoint} | `;
|
|
218
219
|
message += `write: ${writeCheckpoint} | `;
|
|
219
220
|
message += `buckets: ${allBuckets.length} | `;
|
|
221
|
+
if (totalParamResults !== undefined) {
|
|
222
|
+
message += `param_results: ${totalParamResults} | `;
|
|
223
|
+
}
|
|
220
224
|
message += `updated: ${limitedBuckets(diff.updatedBuckets, 20)} | `;
|
|
221
225
|
message += `removed: ${limitedBuckets(diff.removedBuckets, 20)}`;
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
226
|
+
logCheckpoint(
|
|
227
|
+
this.logger,
|
|
228
|
+
message,
|
|
229
|
+
{
|
|
230
|
+
checkpoint: base.checkpoint,
|
|
231
|
+
user_id: userIdForLogs,
|
|
232
|
+
buckets: allBuckets.length,
|
|
233
|
+
updated: diff.updatedBuckets.length,
|
|
234
|
+
removed: diff.removedBuckets.length
|
|
235
|
+
},
|
|
236
|
+
totalParamResults
|
|
237
|
+
);
|
|
229
238
|
};
|
|
230
239
|
|
|
231
240
|
checkpointLine = {
|
|
@@ -238,9 +247,23 @@ export class BucketChecksumState {
|
|
|
238
247
|
} satisfies util.StreamingSyncCheckpointDiff;
|
|
239
248
|
} else {
|
|
240
249
|
deferredLog = () => {
|
|
250
|
+
const totalParamResults = computeTotalParamResults(parameterQueryResultsByDefinition);
|
|
241
251
|
let message = `New checkpoint: ${base.checkpoint} | write: ${writeCheckpoint} | `;
|
|
242
|
-
message += `buckets: ${allBuckets.length}
|
|
243
|
-
|
|
252
|
+
message += `buckets: ${allBuckets.length}`;
|
|
253
|
+
if (totalParamResults !== undefined) {
|
|
254
|
+
message += ` | param_results: ${totalParamResults}`;
|
|
255
|
+
}
|
|
256
|
+
message += ` ${limitedBuckets(allBuckets, 20)}`;
|
|
257
|
+
logCheckpoint(
|
|
258
|
+
this.logger,
|
|
259
|
+
message,
|
|
260
|
+
{
|
|
261
|
+
checkpoint: base.checkpoint,
|
|
262
|
+
user_id: userIdForLogs,
|
|
263
|
+
buckets: allBuckets.length
|
|
264
|
+
},
|
|
265
|
+
totalParamResults
|
|
266
|
+
);
|
|
244
267
|
};
|
|
245
268
|
bucketsToFetch = allBuckets.map((b) => ({ bucket: b.bucket, priority: b.priority }));
|
|
246
269
|
|
|
@@ -371,6 +394,12 @@ export interface CheckpointUpdate {
|
|
|
371
394
|
* If null, assume that any bucket in `buckets` may have been updated.
|
|
372
395
|
*/
|
|
373
396
|
updatedBuckets: Set<string> | typeof INVALIDATE_ALL_BUCKETS;
|
|
397
|
+
|
|
398
|
+
/**
|
|
399
|
+
* Number of parameter query results per sync stream definition (before deduplication).
|
|
400
|
+
* Map from definition name to count.
|
|
401
|
+
*/
|
|
402
|
+
parameterQueryResultsByDefinition?: Map<string, number>;
|
|
374
403
|
}
|
|
375
404
|
|
|
376
405
|
export class BucketParameterState {
|
|
@@ -503,11 +532,21 @@ export class BucketParameterState {
|
|
|
503
532
|
ErrorCode.PSYNC_S2305,
|
|
504
533
|
`Too many parameter query results: ${update.buckets.length} (limit of ${this.context.maxParameterQueryResults})`
|
|
505
534
|
);
|
|
506
|
-
|
|
535
|
+
|
|
536
|
+
let errorMessage = error.message;
|
|
537
|
+
const logData: any = {
|
|
507
538
|
checkpoint: checkpoint,
|
|
508
539
|
user_id: this.syncParams.userId,
|
|
509
|
-
|
|
510
|
-
}
|
|
540
|
+
parameter_query_results: update.buckets.length
|
|
541
|
+
};
|
|
542
|
+
|
|
543
|
+
if (update.parameterQueryResultsByDefinition && update.parameterQueryResultsByDefinition.size > 0) {
|
|
544
|
+
const breakdown = formatParameterQueryBreakdown(update.parameterQueryResultsByDefinition);
|
|
545
|
+
errorMessage += breakdown.message;
|
|
546
|
+
logData.parameter_query_results_by_definition = breakdown.countsByDefinition;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
this.logger.error(errorMessage, logData);
|
|
511
550
|
|
|
512
551
|
throw error;
|
|
513
552
|
}
|
|
@@ -563,6 +602,7 @@ export class BucketParameterState {
|
|
|
563
602
|
}
|
|
564
603
|
|
|
565
604
|
let dynamicBuckets: ResolvedBucket[];
|
|
605
|
+
let parameterQueryResultsByDefinition: Map<string, number> | undefined;
|
|
566
606
|
if (hasParameterChange || this.cachedDynamicBuckets == null || this.cachedDynamicBucketSet == null) {
|
|
567
607
|
const recordedLookups = new Set<string>();
|
|
568
608
|
|
|
@@ -575,6 +615,14 @@ export class BucketParameterState {
|
|
|
575
615
|
return checkpoint.base.getParameterSets(lookups);
|
|
576
616
|
}
|
|
577
617
|
});
|
|
618
|
+
|
|
619
|
+
// Count parameter query results per definition (before deduplication)
|
|
620
|
+
parameterQueryResultsByDefinition = new Map<string, number>();
|
|
621
|
+
for (const bucket of dynamicBuckets) {
|
|
622
|
+
const count = parameterQueryResultsByDefinition.get(bucket.definition) ?? 0;
|
|
623
|
+
parameterQueryResultsByDefinition.set(bucket.definition, count + 1);
|
|
624
|
+
}
|
|
625
|
+
|
|
578
626
|
this.cachedDynamicBuckets = dynamicBuckets;
|
|
579
627
|
this.cachedDynamicBucketSet = new Set<string>(dynamicBuckets.map((b) => b.bucket));
|
|
580
628
|
this.lookupsFromPreviousCheckpoint = recordedLookups;
|
|
@@ -597,12 +645,14 @@ export class BucketParameterState {
|
|
|
597
645
|
return {
|
|
598
646
|
buckets: allBuckets,
|
|
599
647
|
// We cannot track individual bucket updates for dynamic lookups yet
|
|
600
|
-
updatedBuckets: INVALIDATE_ALL_BUCKETS
|
|
648
|
+
updatedBuckets: INVALIDATE_ALL_BUCKETS,
|
|
649
|
+
parameterQueryResultsByDefinition
|
|
601
650
|
};
|
|
602
651
|
} else {
|
|
603
652
|
return {
|
|
604
653
|
buckets: allBuckets,
|
|
605
|
-
updatedBuckets: updatedBuckets
|
|
654
|
+
updatedBuckets: updatedBuckets,
|
|
655
|
+
parameterQueryResultsByDefinition
|
|
606
656
|
};
|
|
607
657
|
}
|
|
608
658
|
}
|
|
@@ -636,6 +686,68 @@ export interface CheckpointLine {
|
|
|
636
686
|
// Use a more specific type to simplify testing
|
|
637
687
|
export type BucketChecksumStateStorage = Pick<storage.SyncRulesBucketStorage, 'getChecksums'>;
|
|
638
688
|
|
|
689
|
+
/**
|
|
690
|
+
* Compute the total number of parameter query results across all definitions.
|
|
691
|
+
*/
|
|
692
|
+
function computeTotalParamResults(
|
|
693
|
+
parameterQueryResultsByDefinition: Map<string, number> | undefined
|
|
694
|
+
): number | undefined {
|
|
695
|
+
if (!parameterQueryResultsByDefinition) {
|
|
696
|
+
return undefined;
|
|
697
|
+
}
|
|
698
|
+
return Array.from(parameterQueryResultsByDefinition.values()).reduce((sum, count) => sum + count, 0);
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
/**
|
|
702
|
+
* Log a checkpoint message, enriching it with parameter query result counts if available.
|
|
703
|
+
*
|
|
704
|
+
* @param logger The logger instance to use
|
|
705
|
+
* @param message The base message string (param_results will NOT be appended — caller includes it if needed)
|
|
706
|
+
* @param logData The base log data object
|
|
707
|
+
* @param totalParamResults The total parameter query results count, or undefined if not applicable
|
|
708
|
+
*/
|
|
709
|
+
function logCheckpoint(
|
|
710
|
+
logger: Logger,
|
|
711
|
+
message: string,
|
|
712
|
+
logData: Record<string, any>,
|
|
713
|
+
totalParamResults: number | undefined
|
|
714
|
+
): void {
|
|
715
|
+
if (totalParamResults !== undefined) {
|
|
716
|
+
logData.parameter_query_results = totalParamResults;
|
|
717
|
+
}
|
|
718
|
+
logger.info(message, logData);
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
/**
|
|
722
|
+
* Format a breakdown of parameter query results by sync rule definition.
|
|
723
|
+
*
|
|
724
|
+
* Sorts definitions by count (descending), includes the top 10, and returns both the
|
|
725
|
+
* formatted message string and the counts record suitable for structured log data.
|
|
726
|
+
*/
|
|
727
|
+
function formatParameterQueryBreakdown(parameterQueryResultsByDefinition: Map<string, number>): {
|
|
728
|
+
message: string;
|
|
729
|
+
countsByDefinition: Record<string, number>;
|
|
730
|
+
} {
|
|
731
|
+
// Sort definitions by count (descending) and take top 10
|
|
732
|
+
const allSorted = Array.from(parameterQueryResultsByDefinition.entries()).sort((a, b) => b[1] - a[1]);
|
|
733
|
+
const sortedDefinitions = allSorted.slice(0, 10);
|
|
734
|
+
|
|
735
|
+
let message = '\nParameter query results by definition:';
|
|
736
|
+
const countsByDefinition: Record<string, number> = {};
|
|
737
|
+
for (const [definition, count] of sortedDefinitions) {
|
|
738
|
+
message += `\n ${definition}: ${count}`;
|
|
739
|
+
countsByDefinition[definition] = count;
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
if (allSorted.length > 10) {
|
|
743
|
+
const remainingResults = allSorted.slice(10).reduce((sum, [, count]) => sum + count, 0);
|
|
744
|
+
const remainingDefinitions = allSorted.length - 10;
|
|
745
|
+
message += `\n ... and ${remainingResults} more results from ${remainingDefinitions} definitions`;
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
return { message, countsByDefinition };
|
|
749
|
+
}
|
|
750
|
+
|
|
639
751
|
function limitedBuckets(buckets: string[] | { bucket: string }[], limit: number) {
|
|
640
752
|
buckets = buckets.map((b) => {
|
|
641
753
|
if (typeof b != 'string') {
|