@fluidframework/container-runtime 2.0.0-internal.4.2.1 → 2.0.0-internal.4.4.0
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 +4 -0
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +3 -2
- package/dist/blobManager.js.map +1 -1
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js +1 -0
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +20 -11
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +1 -2
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStores.d.ts +5 -5
- package/dist/dataStores.d.ts.map +1 -1
- package/dist/dataStores.js +3 -6
- package/dist/dataStores.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts +56 -70
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +227 -408
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts.map +1 -1
- package/dist/gc/gcConfigs.js +8 -10
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +2 -0
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcHelpers.d.ts +11 -11
- package/dist/gc/gcHelpers.d.ts.map +1 -1
- package/dist/gc/gcHelpers.js +18 -22
- package/dist/gc/gcHelpers.js.map +1 -1
- package/dist/gc/gcSummaryStateTracker.d.ts +6 -2
- package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/dist/gc/gcSummaryStateTracker.js +16 -6
- package/dist/gc/gcSummaryStateTracker.js.map +1 -1
- package/dist/gc/gcTelemetry.d.ts +91 -0
- package/dist/gc/gcTelemetry.d.ts.map +1 -0
- package/dist/gc/gcTelemetry.js +282 -0
- package/dist/gc/gcTelemetry.js.map +1 -0
- package/dist/gc/index.d.ts +2 -2
- package/dist/gc/index.d.ts.map +1 -1
- package/dist/gc/index.js +5 -6
- package/dist/gc/index.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +1 -1
- package/dist/opLifecycle/opGroupingManager.js.map +1 -1
- package/dist/opLifecycle/outbox.js +1 -1
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js +25 -22
- package/dist/opLifecycle/remoteMessageProcessor.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/dist/pendingStateManager.d.ts +1 -1
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/scheduleManager.js +15 -4
- package/dist/scheduleManager.js.map +1 -1
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js +14 -17
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/summarizer.d.ts +2 -0
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +9 -4
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerHeuristics.d.ts +8 -9
- package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
- package/dist/summary/summarizerHeuristics.js +15 -16
- package/dist/summary/summarizerHeuristics.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +2 -0
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +4 -3
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js +3 -2
- package/lib/blobManager.js.map +1 -1
- package/lib/connectionTelemetry.d.ts.map +1 -1
- package/lib/connectionTelemetry.js +1 -0
- package/lib/connectionTelemetry.js.map +1 -1
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +20 -11
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +1 -2
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStores.d.ts +5 -5
- package/lib/dataStores.d.ts.map +1 -1
- package/lib/dataStores.js +3 -6
- package/lib/dataStores.js.map +1 -1
- package/lib/gc/garbageCollection.d.ts +56 -70
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +231 -412
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcConfigs.d.ts.map +1 -1
- package/lib/gc/gcConfigs.js +8 -10
- package/lib/gc/gcConfigs.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +2 -0
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcHelpers.d.ts +11 -11
- package/lib/gc/gcHelpers.d.ts.map +1 -1
- package/lib/gc/gcHelpers.js +16 -20
- package/lib/gc/gcHelpers.js.map +1 -1
- package/lib/gc/gcSummaryStateTracker.d.ts +6 -2
- package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/lib/gc/gcSummaryStateTracker.js +16 -6
- package/lib/gc/gcSummaryStateTracker.js.map +1 -1
- package/lib/gc/gcTelemetry.d.ts +91 -0
- package/lib/gc/gcTelemetry.d.ts.map +1 -0
- package/lib/gc/gcTelemetry.js +277 -0
- package/lib/gc/gcTelemetry.js.map +1 -0
- package/lib/gc/index.d.ts +2 -2
- package/lib/gc/index.d.ts.map +1 -1
- package/lib/gc/index.js +2 -2
- package/lib/gc/index.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.js +1 -1
- package/lib/opLifecycle/opGroupingManager.js.map +1 -1
- package/lib/opLifecycle/outbox.js +1 -1
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js +25 -22
- package/lib/opLifecycle/remoteMessageProcessor.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/lib/pendingStateManager.d.ts +1 -1
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js.map +1 -1
- package/lib/scheduleManager.js +15 -4
- package/lib/scheduleManager.js.map +1 -1
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js +14 -17
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/summarizer.d.ts +2 -0
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +9 -4
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerHeuristics.d.ts +8 -9
- package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
- package/lib/summary/summarizerHeuristics.js +15 -16
- package/lib/summary/summarizerHeuristics.js.map +1 -1
- package/lib/summary/summarizerTypes.d.ts +2 -0
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +4 -3
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/package.json +15 -16
- package/src/blobManager.ts +3 -2
- package/src/connectionTelemetry.ts +1 -0
- package/src/containerRuntime.ts +22 -15
- package/src/dataStoreContext.ts +1 -2
- package/src/dataStores.ts +4 -7
- package/src/gc/garbageCollection.ts +316 -561
- package/src/gc/gcConfigs.ts +12 -11
- package/src/gc/gcDefinitions.ts +2 -0
- package/src/gc/gcHelpers.ts +21 -40
- package/src/gc/gcSummaryStateTracker.ts +19 -7
- package/src/gc/gcTelemetry.ts +408 -0
- package/src/gc/index.ts +2 -6
- package/src/opLifecycle/README.md +13 -0
- package/src/opLifecycle/opGroupingManager.ts +1 -1
- package/src/opLifecycle/outbox.ts +2 -2
- package/src/opLifecycle/remoteMessageProcessor.ts +37 -28
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +1 -4
- package/src/scheduleManager.ts +19 -7
- package/src/summary/orderedClientElection.ts +14 -17
- package/src/summary/summarizer.ts +17 -5
- package/src/summary/summarizerHeuristics.ts +15 -16
- package/src/summary/summarizerTypes.ts +2 -0
- package/src/summary/summaryGenerator.ts +5 -4
- package/dist/gc/gcSweepReadyUsageDetection.d.ts +0 -53
- package/dist/gc/gcSweepReadyUsageDetection.d.ts.map +0 -1
- package/dist/gc/gcSweepReadyUsageDetection.js +0 -130
- package/dist/gc/gcSweepReadyUsageDetection.js.map +0 -1
- package/lib/gc/gcSweepReadyUsageDetection.d.ts +0 -53
- package/lib/gc/gcSweepReadyUsageDetection.d.ts.map +0 -1
- package/lib/gc/gcSweepReadyUsageDetection.js +0 -125
- package/lib/gc/gcSweepReadyUsageDetection.js.map +0 -1
- package/src/gc/gcSweepReadyUsageDetection.ts +0 -145
package/dist/containerRuntime.js
CHANGED
|
@@ -924,8 +924,14 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
924
924
|
}
|
|
925
925
|
return this.consecutiveReconnects < this.maxConsecutiveReconnects;
|
|
926
926
|
}
|
|
927
|
-
resetReconnectCount() {
|
|
928
|
-
|
|
927
|
+
resetReconnectCount(message) {
|
|
928
|
+
// Chunked ops don't count towards making progress as they are sent
|
|
929
|
+
// in their own batches before the originating batch is sent.
|
|
930
|
+
// Therefore, receiving them while attempting to send the originating batch
|
|
931
|
+
// does not mean that the container is making any progress.
|
|
932
|
+
if ((message === null || message === void 0 ? void 0 : message.type) !== ContainerMessageType.ChunkedOp) {
|
|
933
|
+
this.consecutiveReconnects = 0;
|
|
934
|
+
}
|
|
929
935
|
}
|
|
930
936
|
replayPendingStates() {
|
|
931
937
|
// We need to be able to send ops to replay states
|
|
@@ -967,15 +973,15 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
967
973
|
const { IdCompressor } = await Promise.resolve().then(() => __importStar(require("./id-compressor")));
|
|
968
974
|
this.idCompressor = IdCompressor.deserialize(op.stashedState);
|
|
969
975
|
}
|
|
970
|
-
async applyStashedOp(type,
|
|
976
|
+
async applyStashedOp(type, contents) {
|
|
971
977
|
switch (type) {
|
|
972
978
|
case ContainerMessageType.FluidDataStoreOp:
|
|
973
|
-
return this.dataStores.applyStashedOp(
|
|
979
|
+
return this.dataStores.applyStashedOp(contents);
|
|
974
980
|
case ContainerMessageType.Attach:
|
|
975
|
-
return this.dataStores.applyStashedAttachOp(
|
|
981
|
+
return this.dataStores.applyStashedAttachOp(contents);
|
|
976
982
|
case ContainerMessageType.IdAllocation:
|
|
977
983
|
(0, common_utils_1.assert)(this.idCompressor !== undefined, 0x67b /* IdCompressor should be defined if enabled */);
|
|
978
|
-
return this.applyStashedIdAllocationOp(
|
|
984
|
+
return this.applyStashedIdAllocationOp(contents);
|
|
979
985
|
case ContainerMessageType.Alias:
|
|
980
986
|
case ContainerMessageType.BlobAttach:
|
|
981
987
|
return;
|
|
@@ -1126,7 +1132,7 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
1126
1132
|
// If we have processed a local op, this means that the container is
|
|
1127
1133
|
// making progress and we can reset the counter for how many times
|
|
1128
1134
|
// we have consecutively replayed the pending states
|
|
1129
|
-
this.resetReconnectCount();
|
|
1135
|
+
this.resetReconnectCount(message);
|
|
1130
1136
|
}
|
|
1131
1137
|
}
|
|
1132
1138
|
catch (e) {
|
|
@@ -1586,7 +1592,7 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
1586
1592
|
* @param options - options controlling how the summary is generated or submitted
|
|
1587
1593
|
*/
|
|
1588
1594
|
async submitSummary(options) {
|
|
1589
|
-
var _a, _b;
|
|
1595
|
+
var _a, _b, _c;
|
|
1590
1596
|
const { fullTree = false, refreshLatestAck, summaryLogger } = options;
|
|
1591
1597
|
// The summary number for this summary. This will be updated during the summary process, so get it now and
|
|
1592
1598
|
// use it for all events logged during this summary.
|
|
@@ -1604,12 +1610,13 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
1604
1610
|
await this.waitForDeltaManagerToCatchup(latestSnapshotRefSeq, summaryNumberLogger);
|
|
1605
1611
|
}
|
|
1606
1612
|
const shouldPauseInboundSignal = this.mc.config.getBoolean("Fluid.ContainerRuntime.SubmitSummary.disableInboundSignalPause") !== true;
|
|
1613
|
+
let summaryRefSeqNum;
|
|
1607
1614
|
try {
|
|
1608
1615
|
await this.deltaManager.inbound.pause();
|
|
1609
1616
|
if (shouldPauseInboundSignal) {
|
|
1610
1617
|
await this.deltaManager.inboundSignal.pause();
|
|
1611
1618
|
}
|
|
1612
|
-
|
|
1619
|
+
summaryRefSeqNum = this.deltaManager.lastSequenceNumber;
|
|
1613
1620
|
const minimumSequenceNumber = this.deltaManager.minimumSequenceNumber;
|
|
1614
1621
|
const message = `Summary @${summaryRefSeqNum}:${this.deltaManager.minimumSequenceNumber}`;
|
|
1615
1622
|
const lastAck = this.summaryCollection.latestAck;
|
|
@@ -1690,7 +1697,7 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
1690
1697
|
const gcSummaryTreeStats = summaryTree.tree[runtime_definitions_1.gcTreeKey]
|
|
1691
1698
|
? (0, runtime_utils_1.calculateStats)(summaryTree.tree[runtime_definitions_1.gcTreeKey])
|
|
1692
1699
|
: undefined;
|
|
1693
|
-
const summaryStats = Object.assign({ dataStoreCount: this.dataStores.size, summarizedDataStoreCount: this.dataStores.size - handleCount, gcStateUpdatedDataStoreCount:
|
|
1700
|
+
const summaryStats = Object.assign({ dataStoreCount: this.dataStores.size, summarizedDataStoreCount: this.dataStores.size - handleCount, gcStateUpdatedDataStoreCount: this.garbageCollector.updatedDSCountSinceLastSummary, gcBlobNodeCount: gcSummaryTreeStats === null || gcSummaryTreeStats === void 0 ? void 0 : gcSummaryTreeStats.blobNodeCount, gcTotalBlobsSize: gcSummaryTreeStats === null || gcSummaryTreeStats === void 0 ? void 0 : gcSummaryTreeStats.totalBlobSize, summaryNumber }, partialStats);
|
|
1694
1701
|
const generateSummaryData = {
|
|
1695
1702
|
referenceSequenceNumber: summaryRefSeqNum,
|
|
1696
1703
|
minimumSequenceNumber,
|
|
@@ -1720,7 +1727,7 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
1720
1727
|
else if (lastAck === undefined) {
|
|
1721
1728
|
summaryContext = {
|
|
1722
1729
|
proposalHandle: undefined,
|
|
1723
|
-
ackHandle: (
|
|
1730
|
+
ackHandle: (_a = this.context.getLoadedFromVersion()) === null || _a === void 0 ? void 0 : _a.id,
|
|
1724
1731
|
referenceSequenceNumber: summaryRefSeqNum,
|
|
1725
1732
|
};
|
|
1726
1733
|
}
|
|
@@ -1765,6 +1772,8 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
1765
1772
|
finally {
|
|
1766
1773
|
// Cleanup wip summary in case of failure
|
|
1767
1774
|
this.summarizerNode.clearSummary();
|
|
1775
|
+
// ! This needs to happen before we resume inbound queues to ensure heuristics are tracked correctly
|
|
1776
|
+
(_c = (_b = this._summarizer) === null || _b === void 0 ? void 0 : _b.recordSummaryAttempt) === null || _c === void 0 ? void 0 : _c.call(_b, summaryRefSeqNum);
|
|
1768
1777
|
// Restart the delta manager
|
|
1769
1778
|
this.deltaManager.inbound.resume();
|
|
1770
1779
|
if (shouldPauseInboundSignal) {
|