@fluidframework/container-runtime 2.0.0-internal.3.0.4 → 2.0.0-internal.3.0.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.
- package/dist/containerRuntime.js +1 -1
- package/dist/containerRuntime.js.map +1 -1
- package/dist/garbageCollection.d.ts +0 -2
- package/dist/garbageCollection.d.ts.map +1 -1
- package/dist/garbageCollection.js +4 -48
- package/dist/garbageCollection.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/lib/containerRuntime.js +1 -1
- package/lib/containerRuntime.js.map +1 -1
- package/lib/garbageCollection.d.ts +0 -2
- package/lib/garbageCollection.d.ts.map +1 -1
- package/lib/garbageCollection.js +5 -49
- package/lib/garbageCollection.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/package.json +14 -14
- package/src/containerRuntime.ts +1 -1
- package/src/garbageCollection.ts +4 -65
- package/src/packageVersion.ts +1 -1
|
@@ -265,8 +265,6 @@ export declare class GarbageCollector implements IGarbageCollector {
|
|
|
265
265
|
private readonly activeConnection;
|
|
266
266
|
/** Returns a list of all the configurations for garbage collection. */
|
|
267
267
|
private get configs();
|
|
268
|
-
/** Handler to respond to when a SweepReady object is used */
|
|
269
|
-
private readonly sweepReadyUsageHandler;
|
|
270
268
|
protected constructor(createParams: IGarbageCollectorCreateParams);
|
|
271
269
|
/**
|
|
272
270
|
* Called during container initialization. Initialize from the tombstone state in the base snapshot. This is done
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"garbageCollection.d.ts","sourceRoot":"","sources":["../src/garbageCollection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AASjE,OAAO,EAAE,aAAa,EAAe,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAIH,sBAAsB,EACtB,6BAA6B,EAG7B,gBAAgB,EAChB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"garbageCollection.d.ts","sourceRoot":"","sources":["../src/garbageCollection.ts"],"names":[],"mappings":"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"}
|
package/lib/garbageCollection.js
CHANGED
|
@@ -21,11 +21,9 @@ import { gcTreeKey, gcBlobPrefix, gcTombstoneBlobKey, gcDeletedBlobKey, } from "
|
|
|
21
21
|
import { mergeStats, packagePathToTelemetryProperty, SummaryTreeBuilder, } from "@fluidframework/runtime-utils";
|
|
22
22
|
import { ChildLogger, generateStack, loggerToMonitoringContext, PerformanceEvent, TelemetryDataTag, } from "@fluidframework/telemetry-utils";
|
|
23
23
|
import { RuntimeHeaders } from "./containerRuntime";
|
|
24
|
-
import { getSummaryForDatastores } from "./dataStores";
|
|
25
24
|
import { currentGCVersion, defaultInactiveTimeoutMs, defaultSessionExpiryDurationMs, disableSweepLogKey, disableTombstoneKey, gcVersionUpgradeToV2Key, gcTestModeKey, oneDayMs, runGCKey, runSessionExpiryKey, runSweepKey, stableGCVersion, trackGCStateKey, gcTombstoneGenerationOptionName } from "./garbageCollectionConstants";
|
|
26
25
|
import { sendGCTombstoneEvent } from "./garbageCollectionTombstoneUtils";
|
|
27
|
-
import {
|
|
28
|
-
import { getGCVersion, metadataBlobName, dataStoreAttributesBlobName, } from "./summaryFormat";
|
|
26
|
+
import { getGCVersion, metadataBlobName, } from "./summaryFormat";
|
|
29
27
|
/** The types of GC nodes in the GC reference graph. */
|
|
30
28
|
export const GCNodeType = {
|
|
31
29
|
// Nodes that are for data stores.
|
|
@@ -168,7 +166,6 @@ export class GarbageCollector {
|
|
|
168
166
|
// If version upgrade is not enabled, fall back to the stable GC version.
|
|
169
167
|
this.currentGCVersion =
|
|
170
168
|
this.mc.config.getBoolean(gcVersionUpgradeToV2Key) === true ? currentGCVersion : stableGCVersion;
|
|
171
|
-
this.sweepReadyUsageHandler = new SweepReadyUsageDetectionHandler(createParams.getContainerDiagnosticId(), this.mc, this.runtime.closeFn);
|
|
172
169
|
let prevSummaryGCVersion;
|
|
173
170
|
/**
|
|
174
171
|
* Sweep timeout is the time after which unreferenced content can be swept.
|
|
@@ -283,7 +280,6 @@ export class GarbageCollector {
|
|
|
283
280
|
// Get the GC data from the base snapshot. Use LazyPromise because we only want to do this once since it
|
|
284
281
|
// it involves fetching blobs from storage which is expensive.
|
|
285
282
|
this.baseSnapshotDataP = new LazyPromise(async () => {
|
|
286
|
-
var _a;
|
|
287
283
|
if (baseSnapshot === undefined) {
|
|
288
284
|
return undefined;
|
|
289
285
|
}
|
|
@@ -293,43 +289,9 @@ export class GarbageCollector {
|
|
|
293
289
|
if (gcSnapshotTree !== undefined) {
|
|
294
290
|
return getGCDataFromSnapshot(gcSnapshotTree, readAndParseBlob);
|
|
295
291
|
}
|
|
296
|
-
// back-compat - Older documents
|
|
297
|
-
//
|
|
298
|
-
|
|
299
|
-
const gcState = { gcNodes: { "/": { outboundRoutes: [] } } };
|
|
300
|
-
const dataStoreSnapshotTree = getSummaryForDatastores(baseSnapshot, metadata);
|
|
301
|
-
assert(dataStoreSnapshotTree !== undefined, 0x2a8 /* "Expected data store snapshot tree in base snapshot" */);
|
|
302
|
-
for (const [dsId, dsSnapshotTree] of Object.entries(dataStoreSnapshotTree.trees)) {
|
|
303
|
-
const blobId = dsSnapshotTree.blobs[gcTreeKey];
|
|
304
|
-
if (blobId === undefined) {
|
|
305
|
-
continue;
|
|
306
|
-
}
|
|
307
|
-
const gcSummaryDetails = await readAndParseBlob(blobId);
|
|
308
|
-
// If there are no nodes for this data store, skip it.
|
|
309
|
-
if (((_a = gcSummaryDetails.gcData) === null || _a === void 0 ? void 0 : _a.gcNodes) === undefined) {
|
|
310
|
-
continue;
|
|
311
|
-
}
|
|
312
|
-
const dsRootId = `/${dsId}`;
|
|
313
|
-
// Since we used to write GC data at data store level, we won't have an entry for the root ("/").
|
|
314
|
-
// Construct that entry by adding root data store ids to its outbound routes.
|
|
315
|
-
const initialSnapshotDetails = await readAndParseBlob(dsSnapshotTree.blobs[dataStoreAttributesBlobName]);
|
|
316
|
-
if (initialSnapshotDetails.isRootDataStore) {
|
|
317
|
-
gcState.gcNodes["/"].outboundRoutes.push(dsRootId);
|
|
318
|
-
}
|
|
319
|
-
for (const [id, outboundRoutes] of Object.entries(gcSummaryDetails.gcData.gcNodes)) {
|
|
320
|
-
// Prefix the data store id to the GC node ids to make them relative to the root from being
|
|
321
|
-
// relative to the data store. Similar to how its done in DataStore::getGCData.
|
|
322
|
-
const rootId = id === "/" ? dsRootId : `${dsRootId}${id}`;
|
|
323
|
-
gcState.gcNodes[rootId] = { outboundRoutes: Array.from(outboundRoutes) };
|
|
324
|
-
}
|
|
325
|
-
assert(gcState.gcNodes[dsRootId] !== undefined, 0x2a9 /* GC nodes for data store not in GC blob */);
|
|
326
|
-
gcState.gcNodes[dsRootId].unreferencedTimestampMs = gcSummaryDetails.unrefTimestamp;
|
|
327
|
-
}
|
|
328
|
-
// If there is only one node (root node just added above), either GC is disabled or we are loading from
|
|
329
|
-
// the first summary generated by detached container. In both cases, GC was not run - return undefined.
|
|
330
|
-
return Object.keys(gcState.gcNodes).length === 1
|
|
331
|
-
? undefined
|
|
332
|
-
: { gcState, tombstones: undefined, deletedNodes: undefined };
|
|
292
|
+
// back-compat - Older documents get their gc data reset for simplicity as there are few of them
|
|
293
|
+
// incremental gc summary will not work with older gc data as well
|
|
294
|
+
return undefined;
|
|
333
295
|
}
|
|
334
296
|
catch (error) {
|
|
335
297
|
const dpe = DataProcessingError.wrapIfUnrecognized(error, "FailedToInitializeGC");
|
|
@@ -597,7 +559,7 @@ export class GarbageCollector {
|
|
|
597
559
|
return undefined;
|
|
598
560
|
}
|
|
599
561
|
// Add the options that are used to run GC to the telemetry context.
|
|
600
|
-
telemetryContext === null || telemetryContext === void 0 ? void 0 : telemetryContext.
|
|
562
|
+
telemetryContext === null || telemetryContext === void 0 ? void 0 : telemetryContext.setMultiple("fluid_GC", "Options", { fullGC, runSweep: options.runSweep });
|
|
601
563
|
return PerformanceEvent.timedExecAsync(logger, { eventName: "GarbageCollection" }, async (event) => {
|
|
602
564
|
await this.runPreGCSteps();
|
|
603
565
|
// Get the runtime's GC data and run GC on the reference graph in it.
|
|
@@ -1186,12 +1148,6 @@ export class GarbageCollector {
|
|
|
1186
1148
|
this.mc.logger.sendErrorEvent(event);
|
|
1187
1149
|
}
|
|
1188
1150
|
}
|
|
1189
|
-
// If SweepReady Usage Detection is enabled, the handler may close the interactive container.
|
|
1190
|
-
// Once Sweep is fully implemented, this will be removed since the objects will be gone
|
|
1191
|
-
// and errors will arise elsewhere in the runtime
|
|
1192
|
-
if (state === UnreferencedState.SweepReady) {
|
|
1193
|
-
this.sweepReadyUsageHandler.usageDetectedInInteractiveClient(Object.assign(Object.assign({}, propsToLog), { usageType }));
|
|
1194
|
-
}
|
|
1195
1151
|
}
|
|
1196
1152
|
}
|
|
1197
1153
|
async logUnreferencedEvents(logger) {
|