@harperfast/harper 5.2.4 → 5.2.5
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/components/status/crossThread.ts +69 -44
- package/components/status/types.ts +1 -0
- package/dist/components/status/crossThread.d.ts +1 -0
- package/dist/components/status/crossThread.js +57 -41
- package/dist/components/status/crossThread.js.map +1 -1
- package/dist/components/status/types.d.ts +1 -0
- package/dist/resources/DatabaseTransaction.d.ts +28 -0
- package/dist/resources/DatabaseTransaction.js +110 -8
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +15 -0
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/Table.js +3 -0
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +11 -0
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +153 -51
- package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
- package/dist/resources/transaction.js +3 -1
- package/dist/resources/transaction.js.map +1 -1
- package/dist/server/itc/serverHandlers.js +2 -1
- package/dist/server/itc/serverHandlers.js.map +1 -1
- package/dist/server/threads/manageThreads.d.ts +1 -0
- package/dist/server/threads/manageThreads.js +17 -2
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/resources/DESIGN.md +19 -18
- package/resources/DatabaseTransaction.ts +124 -15
- package/resources/ResourceInterface.ts +15 -0
- package/resources/Table.ts +3 -0
- package/resources/indexes/HierarchicalNavigableSmallWorld.ts +153 -54
- package/resources/transaction.ts +3 -1
- package/schema.graphql +8 -3
- package/server/itc/serverHandlers.js +2 -1
- package/server/threads/manageThreads.js +17 -2
- package/studio/web/assets/{Chat-BvOlYIhe.js → Chat-Lgj1d-8d.js} +1 -1
- package/studio/web/assets/{FloatingChat-fCJiJCH2.js → FloatingChat-jLWvR4kI.js} +3 -3
- package/studio/web/assets/{apiToken-bKwPv0uN.js → apiToken-DYI4DqWa.js} +1 -1
- package/studio/web/assets/{applications-BZ47njJ_.js → applications-DCmc9-lk.js} +1 -1
- package/studio/web/assets/{index-DF1fSnXV.js → index-CqbCnqsT.js} +4 -4
- package/studio/web/assets/{index.lazy-DWt8ubrr.js → index.lazy-BNqr3j0f.js} +3 -3
- package/studio/web/assets/{notifications-B5ZBOni1.js → notifications-Bb2cj14_.js} +1 -1
- package/studio/web/assets/{notifications-gVx0lA8H.js → notifications-DVlKonbI.js} +1 -1
- package/studio/web/assets/{profile-D7g0x28A.js → profile-BSQWfYfq.js} +1 -1
- package/studio/web/assets/{regions-DRkhlkiD.js → regions-Dk3g8bBF.js} +1 -1
- package/studio/web/assets/{setComponentFile-DQkkobG5.js → setComponentFile-DoITgNLb.js} +1 -1
- package/studio/web/assets/{setup-nf-EOheW.js → setup-CiEALLa7.js} +1 -1
- package/studio/web/assets/{status-B2tOM3RF.js → status-CK9tD-Nd.js} +1 -1
- package/studio/web/assets/{swagger-ui-react-UktCouQ0.js → swagger-ui-react-CxjCDFB-.js} +1 -1
- package/studio/web/assets/{useEntityRestURL-alqAn3dT.js → useEntityRestURL-Cy-0i1UZ.js} +1 -1
- package/studio/web/index.html +1 -1
|
@@ -6,7 +6,11 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { sendItcEvent } from '../../server/threads/itc.js';
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
getWorkerIndex,
|
|
11
|
+
onMessageByType,
|
|
12
|
+
getEligibleBroadcastRecipientThreadIds,
|
|
13
|
+
} from '../../server/threads/manageThreads.js';
|
|
10
14
|
import { ITC_EVENT_TYPES } from '../../utility/hdbTerms.ts';
|
|
11
15
|
import { loggerWithTag } from '../../utility/logging/logger.ts';
|
|
12
16
|
import { ComponentStatusRegistry } from './ComponentStatusRegistry.ts';
|
|
@@ -21,13 +25,27 @@ import {
|
|
|
21
25
|
import { ITCError } from './errors.ts';
|
|
22
26
|
|
|
23
27
|
const logger = loggerWithTag('componentStatus.crossThread');
|
|
28
|
+
const THREAD_IDENTITY_SEPARATOR = '#thread-';
|
|
29
|
+
const STATUS_PRIORITY = [
|
|
30
|
+
COMPONENT_STATUS_LEVELS.ERROR,
|
|
31
|
+
COMPONENT_STATUS_LEVELS.WARNING,
|
|
32
|
+
COMPONENT_STATUS_LEVELS.LOADING,
|
|
33
|
+
COMPONENT_STATUS_LEVELS.UNKNOWN,
|
|
34
|
+
COMPONENT_STATUS_LEVELS.HEALTHY,
|
|
35
|
+
];
|
|
36
|
+
|
|
37
|
+
function stripThreadIdentity(statusKey: string): string {
|
|
38
|
+
const threadLabelStart = statusKey.lastIndexOf('@') + 1;
|
|
39
|
+
const identityIndex = statusKey.indexOf(THREAD_IDENTITY_SEPARATOR, threadLabelStart);
|
|
40
|
+
return identityIndex === -1 ? statusKey : statusKey.substring(0, identityIndex);
|
|
41
|
+
}
|
|
24
42
|
|
|
25
43
|
/**
|
|
26
44
|
* CrossThreadStatusCollector Class
|
|
27
45
|
* Handles collection of component status from all worker threads
|
|
28
46
|
*/
|
|
29
47
|
export class CrossThreadStatusCollector {
|
|
30
|
-
private awaitingResponses = new Map<number,
|
|
48
|
+
private awaitingResponses = new Map<number, Map<number, WorkerComponentStatuses>>();
|
|
31
49
|
private responseCheckers = new Map<number, () => void>();
|
|
32
50
|
private nextRequestId = 1;
|
|
33
51
|
private listenerAttached = false;
|
|
@@ -53,8 +71,9 @@ export class CrossThreadStatusCollector {
|
|
|
53
71
|
|
|
54
72
|
// Find the pending request by requestId
|
|
55
73
|
const pendingResponses = this.awaitingResponses.get(message.requestId);
|
|
56
|
-
if (pendingResponses) {
|
|
57
|
-
pendingResponses.
|
|
74
|
+
if (pendingResponses && typeof message.threadId === 'number') {
|
|
75
|
+
pendingResponses.set(message.threadId, {
|
|
76
|
+
threadId: message.threadId,
|
|
58
77
|
workerIndex: message.workerIndex,
|
|
59
78
|
isMainThread: message.isMainThread || false,
|
|
60
79
|
statuses: message.statuses || [],
|
|
@@ -115,15 +134,10 @@ export class CrossThreadStatusCollector {
|
|
|
115
134
|
|
|
116
135
|
// Generate unique request ID and set up response collection
|
|
117
136
|
const requestId = this.nextRequestId++;
|
|
118
|
-
const responses
|
|
137
|
+
const responses = new Map<number, WorkerComponentStatuses>();
|
|
119
138
|
this.awaitingResponses.set(requestId, responses);
|
|
120
139
|
|
|
121
|
-
|
|
122
|
-
// Total threads = main thread (1) + worker threads (workerCount)
|
|
123
|
-
const workerCount = getWorkerCount() || 1;
|
|
124
|
-
const totalThreads = workerCount + 1;
|
|
125
|
-
// We expect responses from all threads except ourselves
|
|
126
|
-
const expectedResponses = totalThreads - 1;
|
|
140
|
+
const expectedThreadIds = getEligibleBroadcastRecipientThreadIds();
|
|
127
141
|
|
|
128
142
|
// Set up response collection with timeout
|
|
129
143
|
const responsePromise = new Promise<Array<WorkerComponentStatuses>>((resolve, reject) => {
|
|
@@ -132,26 +146,28 @@ export class CrossThreadStatusCollector {
|
|
|
132
146
|
// Check if we've received all expected responses
|
|
133
147
|
const checkComplete = () => {
|
|
134
148
|
const collectedResponses = this.awaitingResponses.get(requestId);
|
|
135
|
-
if (collectedResponses
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
logger.trace?.(`Collected all ${collectedResponses.length} expected responses for request ${requestId}`);
|
|
139
|
-
resolve(collectedResponses);
|
|
149
|
+
if (!collectedResponses || resolved) return;
|
|
150
|
+
for (const threadId of expectedThreadIds) {
|
|
151
|
+
if (!collectedResponses.has(threadId)) return;
|
|
140
152
|
}
|
|
153
|
+
resolved = true;
|
|
154
|
+
cleanup();
|
|
155
|
+
logger.trace?.(`Collected all ${collectedResponses.size} expected responses for request ${requestId}`);
|
|
156
|
+
resolve([...collectedResponses.values()]);
|
|
141
157
|
};
|
|
142
158
|
|
|
143
159
|
// Set up timeout as fallback
|
|
144
160
|
const timeoutHandle = setTimeout(() => {
|
|
145
161
|
if (!resolved) {
|
|
146
162
|
resolved = true;
|
|
147
|
-
const collectedResponses = this.awaitingResponses.get(requestId) ||
|
|
163
|
+
const collectedResponses = this.awaitingResponses.get(requestId) || new Map();
|
|
148
164
|
this.awaitingResponses.delete(requestId);
|
|
149
165
|
// Log timeout with diagnostic info
|
|
150
166
|
logger.debug?.(
|
|
151
|
-
`Collection timeout for request ${requestId}: collected ${collectedResponses.
|
|
167
|
+
`Collection timeout for request ${requestId}: collected ${collectedResponses.size}/${expectedThreadIds.size} responses`
|
|
152
168
|
);
|
|
153
169
|
// Resolve with whatever we've collected so far
|
|
154
|
-
resolve(collectedResponses);
|
|
170
|
+
resolve([...collectedResponses.values()]);
|
|
155
171
|
}
|
|
156
172
|
}, this.timeout);
|
|
157
173
|
|
|
@@ -196,20 +212,14 @@ export class CrossThreadStatusCollector {
|
|
|
196
212
|
const localThreadLabel = localWorkerIndex === undefined ? 'main' : `worker-${localWorkerIndex}`;
|
|
197
213
|
|
|
198
214
|
for (const [name, status] of localStatuses) {
|
|
199
|
-
|
|
200
|
-
...status,
|
|
201
|
-
workerIndex: localWorkerIndex,
|
|
202
|
-
});
|
|
215
|
+
this.setThreadStatus(aggregatedStatuses, name, localThreadLabel, status, localWorkerIndex);
|
|
203
216
|
}
|
|
204
217
|
|
|
205
218
|
// Add responses from other threads
|
|
206
219
|
for (const response of collectedResponses) {
|
|
220
|
+
const threadLabel = response.isMainThread ? 'main' : `worker-${response.workerIndex}`;
|
|
207
221
|
for (const [name, status] of response.statuses) {
|
|
208
|
-
|
|
209
|
-
aggregatedStatuses.set(`${name}@${threadLabel}`, {
|
|
210
|
-
...status,
|
|
211
|
-
workerIndex: response.workerIndex,
|
|
212
|
-
});
|
|
222
|
+
this.setThreadStatus(aggregatedStatuses, name, threadLabel, status, response.workerIndex, response.threadId);
|
|
213
223
|
}
|
|
214
224
|
}
|
|
215
225
|
|
|
@@ -232,6 +242,26 @@ export class CrossThreadStatusCollector {
|
|
|
232
242
|
}
|
|
233
243
|
}
|
|
234
244
|
|
|
245
|
+
private setThreadStatus(
|
|
246
|
+
statuses: Map<string, ComponentStatusSummary>,
|
|
247
|
+
name: string,
|
|
248
|
+
threadLabel: string,
|
|
249
|
+
status: ComponentStatusSummary,
|
|
250
|
+
workerIndex: number | undefined,
|
|
251
|
+
threadId?: number
|
|
252
|
+
): void {
|
|
253
|
+
const baseKey = `${name}@${threadLabel}`;
|
|
254
|
+
let key = baseKey;
|
|
255
|
+
if (statuses.has(baseKey)) {
|
|
256
|
+
if (threadId === undefined) throw new Error(`Physical thread identity is required for duplicate ${baseKey}`);
|
|
257
|
+
key += `${THREAD_IDENTITY_SEPARATOR}${threadId}`;
|
|
258
|
+
}
|
|
259
|
+
statuses.set(key, {
|
|
260
|
+
...status,
|
|
261
|
+
workerIndex,
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
|
|
235
265
|
/**
|
|
236
266
|
* Get status from local thread only (fallback when cross-thread collection fails)
|
|
237
267
|
*/
|
|
@@ -242,10 +272,7 @@ export class CrossThreadStatusCollector {
|
|
|
242
272
|
const localThreadLabel = localWorkerIndex === undefined ? 'main' : `worker-${localWorkerIndex}`;
|
|
243
273
|
|
|
244
274
|
for (const [name, status] of localStatuses) {
|
|
245
|
-
|
|
246
|
-
...status,
|
|
247
|
-
workerIndex: localWorkerIndex,
|
|
248
|
-
});
|
|
275
|
+
this.setThreadStatus(fallbackStatuses, name, localThreadLabel, status, localWorkerIndex);
|
|
249
276
|
}
|
|
250
277
|
return fallbackStatuses;
|
|
251
278
|
}
|
|
@@ -318,7 +345,8 @@ export class StatusAggregator {
|
|
|
318
345
|
// Analyze all instances of this component
|
|
319
346
|
for (const [nameWithThread, status] of statusEntries) {
|
|
320
347
|
const atIndex = nameWithThread.lastIndexOf('@');
|
|
321
|
-
const
|
|
348
|
+
const threadLabelWithIdentity = atIndex !== -1 ? nameWithThread.substring(atIndex + 1) : '';
|
|
349
|
+
const threadLabel = stripThreadIdentity(threadLabelWithIdentity);
|
|
322
350
|
|
|
323
351
|
// Convert lastChecked to ms since epoch
|
|
324
352
|
const checkTime =
|
|
@@ -330,7 +358,7 @@ export class StatusAggregator {
|
|
|
330
358
|
} else if (threadLabel && threadLabel.startsWith('worker-')) {
|
|
331
359
|
const workerIndex = parseInt(threadLabel.substring(7)); // 'worker-'.length = 7
|
|
332
360
|
if (!isNaN(workerIndex)) {
|
|
333
|
-
lastCheckedTimes.workers[workerIndex] = checkTime;
|
|
361
|
+
lastCheckedTimes.workers[workerIndex] = Math.max(lastCheckedTimes.workers[workerIndex] ?? 0, checkTime);
|
|
334
362
|
}
|
|
335
363
|
}
|
|
336
364
|
|
|
@@ -360,7 +388,12 @@ export class StatusAggregator {
|
|
|
360
388
|
// There are inconsistencies - populate abnormalities
|
|
361
389
|
for (const [nameWithThread, status] of statusEntries) {
|
|
362
390
|
if (status.status !== determinedStatus) {
|
|
363
|
-
|
|
391
|
+
const publicNameWithThread = stripThreadIdentity(nameWithThread);
|
|
392
|
+
const existing = abnormalities.get(publicNameWithThread);
|
|
393
|
+
if (existing && STATUS_PRIORITY.indexOf(existing.status) <= STATUS_PRIORITY.indexOf(status.status)) {
|
|
394
|
+
continue;
|
|
395
|
+
}
|
|
396
|
+
abnormalities.set(publicNameWithThread, {
|
|
364
397
|
workerIndex: status.workerIndex !== undefined ? status.workerIndex : -1,
|
|
365
398
|
status: status.status,
|
|
366
399
|
message: status.message,
|
|
@@ -391,15 +424,7 @@ export class StatusAggregator {
|
|
|
391
424
|
* Determine overall status based on priority
|
|
392
425
|
*/
|
|
393
426
|
private static determineOverallStatus(statusCounts: Map<ComponentStatusLevel, number>): ComponentStatusLevel {
|
|
394
|
-
const
|
|
395
|
-
COMPONENT_STATUS_LEVELS.ERROR,
|
|
396
|
-
COMPONENT_STATUS_LEVELS.WARNING,
|
|
397
|
-
COMPONENT_STATUS_LEVELS.LOADING,
|
|
398
|
-
COMPONENT_STATUS_LEVELS.UNKNOWN,
|
|
399
|
-
COMPONENT_STATUS_LEVELS.HEALTHY,
|
|
400
|
-
];
|
|
401
|
-
|
|
402
|
-
for (const priorityStatus of statusPriority) {
|
|
427
|
+
for (const priorityStatus of STATUS_PRIORITY) {
|
|
403
428
|
if (statusCounts.has(priorityStatus) && statusCounts.get(priorityStatus)! > 0) {
|
|
404
429
|
return priorityStatus;
|
|
405
430
|
}
|
|
@@ -75,6 +75,7 @@ export interface AggregatedComponentStatus {
|
|
|
75
75
|
* Component status information from a worker thread
|
|
76
76
|
*/
|
|
77
77
|
export interface WorkerComponentStatuses {
|
|
78
|
+
threadId?: number;
|
|
78
79
|
workerIndex: number | undefined;
|
|
79
80
|
isMainThread: boolean;
|
|
80
81
|
statuses: Array<[string, ComponentStatusSummary]>;
|
|
@@ -36,6 +36,7 @@ export declare class CrossThreadStatusCollector {
|
|
|
36
36
|
* Returns a Map with component names namespaced by worker index
|
|
37
37
|
*/
|
|
38
38
|
collect(registry: ComponentStatusRegistry): Promise<Map<string, ComponentStatusSummary>>;
|
|
39
|
+
private setThreadStatus;
|
|
39
40
|
/**
|
|
40
41
|
* Get status from local thread only (fallback when cross-thread collection fails)
|
|
41
42
|
*/
|
|
@@ -14,6 +14,19 @@ const logger_ts_1 = require("../../utility/logging/logger.js");
|
|
|
14
14
|
const types_ts_1 = require("./types.js");
|
|
15
15
|
const errors_ts_1 = require("./errors.js");
|
|
16
16
|
const logger = (0, logger_ts_1.loggerWithTag)('componentStatus.crossThread');
|
|
17
|
+
const THREAD_IDENTITY_SEPARATOR = '#thread-';
|
|
18
|
+
const STATUS_PRIORITY = [
|
|
19
|
+
types_ts_1.COMPONENT_STATUS_LEVELS.ERROR,
|
|
20
|
+
types_ts_1.COMPONENT_STATUS_LEVELS.WARNING,
|
|
21
|
+
types_ts_1.COMPONENT_STATUS_LEVELS.LOADING,
|
|
22
|
+
types_ts_1.COMPONENT_STATUS_LEVELS.UNKNOWN,
|
|
23
|
+
types_ts_1.COMPONENT_STATUS_LEVELS.HEALTHY,
|
|
24
|
+
];
|
|
25
|
+
function stripThreadIdentity(statusKey) {
|
|
26
|
+
const threadLabelStart = statusKey.lastIndexOf('@') + 1;
|
|
27
|
+
const identityIndex = statusKey.indexOf(THREAD_IDENTITY_SEPARATOR, threadLabelStart);
|
|
28
|
+
return identityIndex === -1 ? statusKey : statusKey.substring(0, identityIndex);
|
|
29
|
+
}
|
|
17
30
|
/**
|
|
18
31
|
* CrossThreadStatusCollector Class
|
|
19
32
|
* Handles collection of component status from all worker threads
|
|
@@ -41,8 +54,9 @@ class CrossThreadStatusCollector {
|
|
|
41
54
|
logger.trace?.('Received component status response from %s, with requestId: %d', workerLabel, message.requestId);
|
|
42
55
|
// Find the pending request by requestId
|
|
43
56
|
const pendingResponses = this.awaitingResponses.get(message.requestId);
|
|
44
|
-
if (pendingResponses) {
|
|
45
|
-
pendingResponses.
|
|
57
|
+
if (pendingResponses && typeof message.threadId === 'number') {
|
|
58
|
+
pendingResponses.set(message.threadId, {
|
|
59
|
+
threadId: message.threadId,
|
|
46
60
|
workerIndex: message.workerIndex,
|
|
47
61
|
isMainThread: message.isMainThread || false,
|
|
48
62
|
statuses: message.statuses || [],
|
|
@@ -94,37 +108,36 @@ class CrossThreadStatusCollector {
|
|
|
94
108
|
this.scheduleCleanup();
|
|
95
109
|
// Generate unique request ID and set up response collection
|
|
96
110
|
const requestId = this.nextRequestId++;
|
|
97
|
-
const responses =
|
|
111
|
+
const responses = new Map();
|
|
98
112
|
this.awaitingResponses.set(requestId, responses);
|
|
99
|
-
|
|
100
|
-
// Total threads = main thread (1) + worker threads (workerCount)
|
|
101
|
-
const workerCount = (0, manageThreads_js_1.getWorkerCount)() || 1;
|
|
102
|
-
const totalThreads = workerCount + 1;
|
|
103
|
-
// We expect responses from all threads except ourselves
|
|
104
|
-
const expectedResponses = totalThreads - 1;
|
|
113
|
+
const expectedThreadIds = (0, manageThreads_js_1.getEligibleBroadcastRecipientThreadIds)();
|
|
105
114
|
// Set up response collection with timeout
|
|
106
115
|
const responsePromise = new Promise((resolve, reject) => {
|
|
107
116
|
let resolved = false;
|
|
108
117
|
// Check if we've received all expected responses
|
|
109
118
|
const checkComplete = () => {
|
|
110
119
|
const collectedResponses = this.awaitingResponses.get(requestId);
|
|
111
|
-
if (collectedResponses
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
120
|
+
if (!collectedResponses || resolved)
|
|
121
|
+
return;
|
|
122
|
+
for (const threadId of expectedThreadIds) {
|
|
123
|
+
if (!collectedResponses.has(threadId))
|
|
124
|
+
return;
|
|
116
125
|
}
|
|
126
|
+
resolved = true;
|
|
127
|
+
cleanup();
|
|
128
|
+
logger.trace?.(`Collected all ${collectedResponses.size} expected responses for request ${requestId}`);
|
|
129
|
+
resolve([...collectedResponses.values()]);
|
|
117
130
|
};
|
|
118
131
|
// Set up timeout as fallback
|
|
119
132
|
const timeoutHandle = setTimeout(() => {
|
|
120
133
|
if (!resolved) {
|
|
121
134
|
resolved = true;
|
|
122
|
-
const collectedResponses = this.awaitingResponses.get(requestId) ||
|
|
135
|
+
const collectedResponses = this.awaitingResponses.get(requestId) || new Map();
|
|
123
136
|
this.awaitingResponses.delete(requestId);
|
|
124
137
|
// Log timeout with diagnostic info
|
|
125
|
-
logger.debug?.(`Collection timeout for request ${requestId}: collected ${collectedResponses.
|
|
138
|
+
logger.debug?.(`Collection timeout for request ${requestId}: collected ${collectedResponses.size}/${expectedThreadIds.size} responses`);
|
|
126
139
|
// Resolve with whatever we've collected so far
|
|
127
|
-
resolve(collectedResponses);
|
|
140
|
+
resolve([...collectedResponses.values()]);
|
|
128
141
|
}
|
|
129
142
|
}, this.timeout);
|
|
130
143
|
// Ensure cleanup happens no matter what
|
|
@@ -161,19 +174,13 @@ class CrossThreadStatusCollector {
|
|
|
161
174
|
const localWorkerIndex = (0, manageThreads_js_1.getWorkerIndex)();
|
|
162
175
|
const localThreadLabel = localWorkerIndex === undefined ? 'main' : `worker-${localWorkerIndex}`;
|
|
163
176
|
for (const [name, status] of localStatuses) {
|
|
164
|
-
|
|
165
|
-
...status,
|
|
166
|
-
workerIndex: localWorkerIndex,
|
|
167
|
-
});
|
|
177
|
+
this.setThreadStatus(aggregatedStatuses, name, localThreadLabel, status, localWorkerIndex);
|
|
168
178
|
}
|
|
169
179
|
// Add responses from other threads
|
|
170
180
|
for (const response of collectedResponses) {
|
|
181
|
+
const threadLabel = response.isMainThread ? 'main' : `worker-${response.workerIndex}`;
|
|
171
182
|
for (const [name, status] of response.statuses) {
|
|
172
|
-
|
|
173
|
-
aggregatedStatuses.set(`${name}@${threadLabel}`, {
|
|
174
|
-
...status,
|
|
175
|
-
workerIndex: response.workerIndex,
|
|
176
|
-
});
|
|
183
|
+
this.setThreadStatus(aggregatedStatuses, name, threadLabel, status, response.workerIndex, response.threadId);
|
|
177
184
|
}
|
|
178
185
|
}
|
|
179
186
|
logger.debug?.(`Collected component status from ${collectedResponses.length + 1} threads (including local)`);
|
|
@@ -192,6 +199,19 @@ class CrossThreadStatusCollector {
|
|
|
192
199
|
return this.getLocalStatusOnly(registry);
|
|
193
200
|
}
|
|
194
201
|
}
|
|
202
|
+
setThreadStatus(statuses, name, threadLabel, status, workerIndex, threadId) {
|
|
203
|
+
const baseKey = `${name}@${threadLabel}`;
|
|
204
|
+
let key = baseKey;
|
|
205
|
+
if (statuses.has(baseKey)) {
|
|
206
|
+
if (threadId === undefined)
|
|
207
|
+
throw new Error(`Physical thread identity is required for duplicate ${baseKey}`);
|
|
208
|
+
key += `${THREAD_IDENTITY_SEPARATOR}${threadId}`;
|
|
209
|
+
}
|
|
210
|
+
statuses.set(key, {
|
|
211
|
+
...status,
|
|
212
|
+
workerIndex,
|
|
213
|
+
});
|
|
214
|
+
}
|
|
195
215
|
/**
|
|
196
216
|
* Get status from local thread only (fallback when cross-thread collection fails)
|
|
197
217
|
*/
|
|
@@ -201,10 +221,7 @@ class CrossThreadStatusCollector {
|
|
|
201
221
|
const localWorkerIndex = (0, manageThreads_js_1.getWorkerIndex)();
|
|
202
222
|
const localThreadLabel = localWorkerIndex === undefined ? 'main' : `worker-${localWorkerIndex}`;
|
|
203
223
|
for (const [name, status] of localStatuses) {
|
|
204
|
-
|
|
205
|
-
...status,
|
|
206
|
-
workerIndex: localWorkerIndex,
|
|
207
|
-
});
|
|
224
|
+
this.setThreadStatus(fallbackStatuses, name, localThreadLabel, status, localWorkerIndex);
|
|
208
225
|
}
|
|
209
226
|
return fallbackStatuses;
|
|
210
227
|
}
|
|
@@ -266,7 +283,8 @@ class StatusAggregator {
|
|
|
266
283
|
// Analyze all instances of this component
|
|
267
284
|
for (const [nameWithThread, status] of statusEntries) {
|
|
268
285
|
const atIndex = nameWithThread.lastIndexOf('@');
|
|
269
|
-
const
|
|
286
|
+
const threadLabelWithIdentity = atIndex !== -1 ? nameWithThread.substring(atIndex + 1) : '';
|
|
287
|
+
const threadLabel = stripThreadIdentity(threadLabelWithIdentity);
|
|
270
288
|
// Convert lastChecked to ms since epoch
|
|
271
289
|
const checkTime = status.lastChecked instanceof Date ? status.lastChecked.getTime() : new Date(status.lastChecked).getTime();
|
|
272
290
|
// Store the last checked time based on thread label
|
|
@@ -276,7 +294,7 @@ class StatusAggregator {
|
|
|
276
294
|
else if (threadLabel && threadLabel.startsWith('worker-')) {
|
|
277
295
|
const workerIndex = parseInt(threadLabel.substring(7)); // 'worker-'.length = 7
|
|
278
296
|
if (!isNaN(workerIndex)) {
|
|
279
|
-
lastCheckedTimes.workers[workerIndex] = checkTime;
|
|
297
|
+
lastCheckedTimes.workers[workerIndex] = Math.max(lastCheckedTimes.workers[workerIndex] ?? 0, checkTime);
|
|
280
298
|
}
|
|
281
299
|
}
|
|
282
300
|
// Track status counts
|
|
@@ -301,7 +319,12 @@ class StatusAggregator {
|
|
|
301
319
|
// There are inconsistencies - populate abnormalities
|
|
302
320
|
for (const [nameWithThread, status] of statusEntries) {
|
|
303
321
|
if (status.status !== determinedStatus) {
|
|
304
|
-
|
|
322
|
+
const publicNameWithThread = stripThreadIdentity(nameWithThread);
|
|
323
|
+
const existing = abnormalities.get(publicNameWithThread);
|
|
324
|
+
if (existing && STATUS_PRIORITY.indexOf(existing.status) <= STATUS_PRIORITY.indexOf(status.status)) {
|
|
325
|
+
continue;
|
|
326
|
+
}
|
|
327
|
+
abnormalities.set(publicNameWithThread, {
|
|
305
328
|
workerIndex: status.workerIndex !== undefined ? status.workerIndex : -1,
|
|
306
329
|
status: status.status,
|
|
307
330
|
message: status.message,
|
|
@@ -328,14 +351,7 @@ class StatusAggregator {
|
|
|
328
351
|
* Determine overall status based on priority
|
|
329
352
|
*/
|
|
330
353
|
static determineOverallStatus(statusCounts) {
|
|
331
|
-
const
|
|
332
|
-
types_ts_1.COMPONENT_STATUS_LEVELS.ERROR,
|
|
333
|
-
types_ts_1.COMPONENT_STATUS_LEVELS.WARNING,
|
|
334
|
-
types_ts_1.COMPONENT_STATUS_LEVELS.LOADING,
|
|
335
|
-
types_ts_1.COMPONENT_STATUS_LEVELS.UNKNOWN,
|
|
336
|
-
types_ts_1.COMPONENT_STATUS_LEVELS.HEALTHY,
|
|
337
|
-
];
|
|
338
|
-
for (const priorityStatus of statusPriority) {
|
|
354
|
+
for (const priorityStatus of STATUS_PRIORITY) {
|
|
339
355
|
if (statusCounts.has(priorityStatus) && statusCounts.get(priorityStatus) > 0) {
|
|
340
356
|
return priorityStatus;
|
|
341
357
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crossThread.js","sourceRoot":"","sources":["../../../components/status/crossThread.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crossThread.js","sourceRoot":"","sources":["../../../components/status/crossThread.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,6 +69,7 @@ export interface AggregatedComponentStatus {
|
|
|
69
69
|
* Component status information from a worker thread
|
|
70
70
|
*/
|
|
71
71
|
export interface WorkerComponentStatuses {
|
|
72
|
+
threadId?: number;
|
|
72
73
|
workerIndex: number | undefined;
|
|
73
74
|
isMainThread: boolean;
|
|
74
75
|
statuses: Array<[string, ComponentStatusSummary]>;
|
|
@@ -113,6 +113,9 @@ type RocksTransactionWithRetry = RocksTransaction & {
|
|
|
113
113
|
};
|
|
114
114
|
export declare class DatabaseTransaction implements Transaction {
|
|
115
115
|
#private;
|
|
116
|
+
constructor(options?: {
|
|
117
|
+
scopeOwned?: boolean;
|
|
118
|
+
});
|
|
116
119
|
writes: TransactionWrite[];
|
|
117
120
|
writesByKey?: Map<any, Map<unknown, TransactionWrite>>;
|
|
118
121
|
completions: Promise<void>[];
|
|
@@ -146,6 +149,7 @@ export declare class DatabaseTransaction implements Transaction {
|
|
|
146
149
|
isReplay?: boolean;
|
|
147
150
|
timedOut?: boolean;
|
|
148
151
|
writesAbandoned?: boolean;
|
|
152
|
+
snapshotFree: boolean;
|
|
149
153
|
getReadTxn(disableSnapshot?: boolean): ReadTransaction;
|
|
150
154
|
private attachOwnedTransaction;
|
|
151
155
|
/**
|
|
@@ -245,6 +249,30 @@ export declare class DatabaseTransaction implements Transaction {
|
|
|
245
249
|
* Resolves with information on the timestamp and success of the commit
|
|
246
250
|
*/
|
|
247
251
|
commit(options?: CommitOptions): MaybePromise<CommitResolution>;
|
|
252
|
+
/**
|
|
253
|
+
* A successful commit that is NOT the scope's final one leaves the scope still running and still
|
|
254
|
+
* responsible for a commit. Rotate to a fresh OPEN generation so the rest of the scope's writes
|
|
255
|
+
* stage into it and are committed — or rolled back — as one unit, instead of each committing itself
|
|
256
|
+
* the moment it is made. Every dispatch path keeps its plain `open === OPEN` check; CLOSED never
|
|
257
|
+
* gains a second meaning.
|
|
258
|
+
*
|
|
259
|
+
* Deliberately not rotated when: the scope is finished (`doneWriting`), nothing owns this instance,
|
|
260
|
+
* a timeout poisoned it, or a commit failed — a failed or uncertain commit must never be followed by
|
|
261
|
+
* a resumed segment that can commit on its own. Nor when read iterators still hold the native
|
|
262
|
+
* handle: that handle belongs to them until they drain, so there is nothing to rotate into and those
|
|
263
|
+
* writes keep today's immediate-commit path.
|
|
264
|
+
*/
|
|
265
|
+
/**
|
|
266
|
+
* Finish a commit: the chain goes with it, then the scope may rotate. A link left attached and CLOSED
|
|
267
|
+
* would be reused by txnForContext for the next write to that database and commit itself, surviving a
|
|
268
|
+
* rollback of the rotated head — the cross-store leftover this rotation exists to prevent. Every
|
|
269
|
+
* commit path must run this, and none may do one half without the other.
|
|
270
|
+
*/
|
|
271
|
+
/** Both scope flags leave together, so no exit can clear one and keep the other. */
|
|
272
|
+
private endScopeOwnership;
|
|
273
|
+
private completeMidScopeCommit;
|
|
274
|
+
/** See completeMidScopeCommit, which is the only caller and carries the reasoning. */
|
|
275
|
+
private rotateAfterMidScopeCommit;
|
|
248
276
|
abort(): void;
|
|
249
277
|
/**
|
|
250
278
|
* Give up on a chain of linked transactions after exhausting conflict retries: poison every link
|