@fluidframework/container-runtime 2.0.0-internal.3.4.2 → 2.0.0-internal.3.4.4

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 (40) hide show
  1. package/dist/containerRuntime.d.ts.map +1 -1
  2. package/dist/containerRuntime.js +5 -4
  3. package/dist/containerRuntime.js.map +1 -1
  4. package/dist/gc/garbageCollection.d.ts.map +1 -1
  5. package/dist/gc/garbageCollection.js +3 -2
  6. package/dist/gc/garbageCollection.js.map +1 -1
  7. package/dist/gc/gcHelpers.d.ts +1 -9
  8. package/dist/gc/gcHelpers.d.ts.map +1 -1
  9. package/dist/gc/gcHelpers.js +1 -52
  10. package/dist/gc/gcHelpers.js.map +1 -1
  11. package/dist/gc/index.d.ts +1 -1
  12. package/dist/gc/index.d.ts.map +1 -1
  13. package/dist/gc/index.js +1 -2
  14. package/dist/gc/index.js.map +1 -1
  15. package/dist/packageVersion.d.ts +1 -1
  16. package/dist/packageVersion.js +1 -1
  17. package/dist/packageVersion.js.map +1 -1
  18. package/lib/containerRuntime.d.ts.map +1 -1
  19. package/lib/containerRuntime.js +5 -4
  20. package/lib/containerRuntime.js.map +1 -1
  21. package/lib/gc/garbageCollection.d.ts.map +1 -1
  22. package/lib/gc/garbageCollection.js +4 -3
  23. package/lib/gc/garbageCollection.js.map +1 -1
  24. package/lib/gc/gcHelpers.d.ts +1 -9
  25. package/lib/gc/gcHelpers.d.ts.map +1 -1
  26. package/lib/gc/gcHelpers.js +0 -50
  27. package/lib/gc/gcHelpers.js.map +1 -1
  28. package/lib/gc/index.d.ts +1 -1
  29. package/lib/gc/index.d.ts.map +1 -1
  30. package/lib/gc/index.js +1 -1
  31. package/lib/gc/index.js.map +1 -1
  32. package/lib/packageVersion.d.ts +1 -1
  33. package/lib/packageVersion.js +1 -1
  34. package/lib/packageVersion.js.map +1 -1
  35. package/package.json +14 -14
  36. package/src/containerRuntime.ts +4 -3
  37. package/src/gc/garbageCollection.ts +4 -7
  38. package/src/gc/gcHelpers.ts +1 -75
  39. package/src/gc/index.ts +0 -1
  40. package/src/packageVersion.ts +1 -1
@@ -5,5 +5,5 @@
5
5
  * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
6
6
  */
7
7
  export declare const pkgName = "@fluidframework/container-runtime";
8
- export declare const pkgVersion = "2.0.0-internal.3.4.2";
8
+ export declare const pkgVersion = "2.0.0-internal.3.4.4";
9
9
  //# sourceMappingURL=packageVersion.d.ts.map
@@ -5,5 +5,5 @@
5
5
  * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
6
6
  */
7
7
  export const pkgName = "@fluidframework/container-runtime";
8
- export const pkgVersion = "2.0.0-internal.3.4.2";
8
+ export const pkgVersion = "2.0.0-internal.3.4.4";
9
9
  //# sourceMappingURL=packageVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,mCAAmC,CAAC;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG,sBAAsB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/container-runtime\";\nexport const pkgVersion = \"2.0.0-internal.3.4.2\";\n"]}
1
+ {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,mCAAmC,CAAC;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG,sBAAsB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/container-runtime\";\nexport const pkgVersion = \"2.0.0-internal.3.4.4\";\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/container-runtime",
3
- "version": "2.0.0-internal.3.4.2",
3
+ "version": "2.0.0-internal.3.4.4",
4
4
  "description": "Fluid container runtime",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -37,19 +37,19 @@
37
37
  "dependencies": {
38
38
  "@fluidframework/common-definitions": "^0.20.1",
39
39
  "@fluidframework/common-utils": "^1.1.1",
40
- "@fluidframework/container-definitions": ">=2.0.0-internal.3.4.2 <2.0.0-internal.4.0.0",
41
- "@fluidframework/container-runtime-definitions": ">=2.0.0-internal.3.4.2 <2.0.0-internal.4.0.0",
42
- "@fluidframework/container-utils": ">=2.0.0-internal.3.4.2 <2.0.0-internal.4.0.0",
43
- "@fluidframework/core-interfaces": ">=2.0.0-internal.3.4.2 <2.0.0-internal.4.0.0",
44
- "@fluidframework/datastore": ">=2.0.0-internal.3.4.2 <2.0.0-internal.4.0.0",
45
- "@fluidframework/driver-definitions": ">=2.0.0-internal.3.4.2 <2.0.0-internal.4.0.0",
46
- "@fluidframework/driver-utils": ">=2.0.0-internal.3.4.2 <2.0.0-internal.4.0.0",
47
- "@fluidframework/garbage-collector": ">=2.0.0-internal.3.4.2 <2.0.0-internal.4.0.0",
40
+ "@fluidframework/container-definitions": ">=2.0.0-internal.3.4.4 <2.0.0-internal.4.0.0",
41
+ "@fluidframework/container-runtime-definitions": ">=2.0.0-internal.3.4.4 <2.0.0-internal.4.0.0",
42
+ "@fluidframework/container-utils": ">=2.0.0-internal.3.4.4 <2.0.0-internal.4.0.0",
43
+ "@fluidframework/core-interfaces": ">=2.0.0-internal.3.4.4 <2.0.0-internal.4.0.0",
44
+ "@fluidframework/datastore": ">=2.0.0-internal.3.4.4 <2.0.0-internal.4.0.0",
45
+ "@fluidframework/driver-definitions": ">=2.0.0-internal.3.4.4 <2.0.0-internal.4.0.0",
46
+ "@fluidframework/driver-utils": ">=2.0.0-internal.3.4.4 <2.0.0-internal.4.0.0",
47
+ "@fluidframework/garbage-collector": ">=2.0.0-internal.3.4.4 <2.0.0-internal.4.0.0",
48
48
  "@fluidframework/protocol-base": "^0.1038.4000",
49
49
  "@fluidframework/protocol-definitions": "^1.1.0",
50
- "@fluidframework/runtime-definitions": ">=2.0.0-internal.3.4.2 <2.0.0-internal.4.0.0",
51
- "@fluidframework/runtime-utils": ">=2.0.0-internal.3.4.2 <2.0.0-internal.4.0.0",
52
- "@fluidframework/telemetry-utils": ">=2.0.0-internal.3.4.2 <2.0.0-internal.4.0.0",
50
+ "@fluidframework/runtime-definitions": ">=2.0.0-internal.3.4.4 <2.0.0-internal.4.0.0",
51
+ "@fluidframework/runtime-utils": ">=2.0.0-internal.3.4.4 <2.0.0-internal.4.0.0",
52
+ "@fluidframework/telemetry-utils": ">=2.0.0-internal.3.4.4 <2.0.0-internal.4.0.0",
53
53
  "double-ended-queue": "^2.1.0-0",
54
54
  "events": "^3.1.0",
55
55
  "lz4js": "^0.2.0",
@@ -61,8 +61,8 @@
61
61
  "@fluidframework/build-tools": "^0.13.0",
62
62
  "@fluidframework/container-runtime-previous": "npm:@fluidframework/container-runtime@2.0.0-internal.3.2.0",
63
63
  "@fluidframework/eslint-config-fluid": "^2.0.0",
64
- "@fluidframework/mocha-test-setup": ">=2.0.0-internal.3.4.2 <2.0.0-internal.4.0.0",
65
- "@fluidframework/test-runtime-utils": ">=2.0.0-internal.3.4.2 <2.0.0-internal.4.0.0",
64
+ "@fluidframework/mocha-test-setup": ">=2.0.0-internal.3.4.4 <2.0.0-internal.4.0.0",
65
+ "@fluidframework/test-runtime-utils": ">=2.0.0-internal.3.4.4 <2.0.0-internal.4.0.0",
66
66
  "@microsoft/api-extractor": "^7.34.4",
67
67
  "@types/double-ended-queue": "^2.1.0",
68
68
  "@types/events": "^3.0.0",
@@ -1982,12 +1982,13 @@ export class ContainerRuntime
1982
1982
  clientSignalSequenceNumber: envelope.clientSignalSequenceNumber,
1983
1983
  });
1984
1984
  } else if (
1985
- this.consecutiveReconnects === 0 &&
1986
1985
  envelope.clientSignalSequenceNumber ===
1987
- this._perfSignalData.trackingSignalSequenceNumber
1986
+ this._perfSignalData.trackingSignalSequenceNumber
1988
1987
  ) {
1989
1988
  // only logging for the first connection and the trackingSignalSequenceNUmber.
1990
- this.sendSignalTelemetryEvent(envelope.clientSignalSequenceNumber);
1989
+ if (this.consecutiveReconnects === 0) {
1990
+ this.sendSignalTelemetryEvent(envelope.clientSignalSequenceNumber);
1991
+ }
1991
1992
  this._perfSignalData.trackingSignalSequenceNumber = undefined;
1992
1993
  }
1993
1994
  }
@@ -52,7 +52,7 @@ import {
52
52
  IGCMetadata,
53
53
  IGarbageCollectorConfigs,
54
54
  } from "./gcDefinitions";
55
- import { getSnapshotDataFromOldSnapshotFormat, sendGCUnexpectedUsageEvent } from "./gcHelpers";
55
+ import { sendGCUnexpectedUsageEvent } from "./gcHelpers";
56
56
  import { GCSummaryStateTracker } from "./gcSummaryStateTracker";
57
57
  import { UnreferencedStateTracker } from "./gcUnreferencedStateTracker";
58
58
 
@@ -210,12 +210,9 @@ export class GarbageCollector implements IGarbageCollector {
210
210
  return getGCDataFromSnapshot(gcSnapshotTree, readAndParseBlob);
211
211
  }
212
212
 
213
- // back-compat - Older documents will have the GC blobs in each data store's snapshot tree.
214
- return getSnapshotDataFromOldSnapshotFormat(
215
- baseSnapshot,
216
- createParams.metadata,
217
- readAndParseBlob,
218
- );
213
+ // back-compat - Older documents get their gc data reset for simplicity as there are few of them
214
+ // incremental gc summary will not work with older gc data as well
215
+ return undefined;
219
216
  } catch (error) {
220
217
  const dpe = DataProcessingError.wrapIfUnrecognized(
221
218
  error,
@@ -4,23 +4,12 @@
4
4
  */
5
5
 
6
6
  import { ITelemetryGenericEvent } from "@fluidframework/common-definitions";
7
- import { assert } from "@fluidframework/common-utils";
8
- import { ISnapshotTree } from "@fluidframework/protocol-definitions";
9
7
  import {
10
- gcTreeKey,
11
8
  IGarbageCollectionNodeData,
12
- IGarbageCollectionSnapshotData,
13
9
  IGarbageCollectionState,
14
- IGarbageCollectionSummaryDetailsLegacy,
15
10
  } from "@fluidframework/runtime-definitions";
16
- import { packagePathToTelemetryProperty, ReadAndParseBlob } from "@fluidframework/runtime-utils";
11
+ import { packagePathToTelemetryProperty } from "@fluidframework/runtime-utils";
17
12
  import { MonitoringContext } from "@fluidframework/telemetry-utils";
18
- import { getSummaryForDatastores } from "../dataStores";
19
- import {
20
- dataStoreAttributesBlobName,
21
- IContainerRuntimeMetadata,
22
- ReadFluidDataStoreAttributes,
23
- } from "../summary";
24
13
  import {
25
14
  disableTombstoneKey,
26
15
  GCFeatureMatrix,
@@ -139,66 +128,3 @@ export function generateSortedGCState(gcState: IGarbageCollectionState): IGarbag
139
128
  }
140
129
  return sortedGCState;
141
130
  }
142
-
143
- /**
144
- * This is for back-compat only - Before GC data was written at the root of the summary tree, individual GC blobs were
145
- * written at data store's snapshot tree. This function consolidates them into the new IGarbageCollectionState format.
146
- */
147
- export async function getSnapshotDataFromOldSnapshotFormat(
148
- oldSnapshot: ISnapshotTree,
149
- metadata: IContainerRuntimeMetadata | undefined,
150
- readAndParseBlob: ReadAndParseBlob,
151
- ): Promise<IGarbageCollectionSnapshotData | undefined> {
152
- // Add a node for the root node that is not present in older snapshot format.
153
- const gcState: IGarbageCollectionState = {
154
- gcNodes: { "/": { outboundRoutes: [] } },
155
- };
156
- const dataStoreSnapshotTree = getSummaryForDatastores(oldSnapshot, metadata);
157
- assert(
158
- dataStoreSnapshotTree !== undefined,
159
- 0x2a8 /* "Expected data store snapshot tree in base snapshot" */,
160
- );
161
- for (const [dsId, dsSnapshotTree] of Object.entries(dataStoreSnapshotTree.trees)) {
162
- const blobId = dsSnapshotTree.blobs[gcTreeKey];
163
- if (blobId === undefined) {
164
- continue;
165
- }
166
-
167
- const gcSummaryDetails = await readAndParseBlob<IGarbageCollectionSummaryDetailsLegacy>(
168
- blobId,
169
- );
170
- // If there are no nodes for this data store, skip it.
171
- if (gcSummaryDetails.gcData?.gcNodes === undefined) {
172
- continue;
173
- }
174
-
175
- const dsRootId = `/${dsId}`;
176
- // Since we used to write GC data at data store level, we won't have an entry for the root ("/").
177
- // Construct that entry by adding root data store ids to its outbound routes.
178
- const initialSnapshotDetails = await readAndParseBlob<ReadFluidDataStoreAttributes>(
179
- dsSnapshotTree.blobs[dataStoreAttributesBlobName],
180
- );
181
- if (initialSnapshotDetails.isRootDataStore) {
182
- gcState.gcNodes["/"].outboundRoutes.push(dsRootId);
183
- }
184
-
185
- for (const [id, outboundRoutes] of Object.entries(gcSummaryDetails.gcData.gcNodes)) {
186
- // Prefix the data store id to the GC node ids to make them relative to the root from being
187
- // relative to the data store. Similar to how its done in DataStore::getGCData.
188
- const rootId = id === "/" ? dsRootId : `${dsRootId}${id}`;
189
- gcState.gcNodes[rootId] = {
190
- outboundRoutes: Array.from(outboundRoutes),
191
- };
192
- }
193
- assert(
194
- gcState.gcNodes[dsRootId] !== undefined,
195
- 0x2a9 /* GC nodes for data store not in GC blob */,
196
- );
197
- gcState.gcNodes[dsRootId].unreferencedTimestampMs = gcSummaryDetails.unrefTimestamp;
198
- }
199
- // If there is only one node (root node just added above), either GC is disabled or we are loading from
200
- // the first summary generated by detached container. In both cases, GC was not run - return undefined.
201
- return Object.keys(gcState.gcNodes).length === 1
202
- ? undefined
203
- : { gcState, tombstones: undefined, deletedNodes: undefined };
204
- }
package/src/gc/index.ts CHANGED
@@ -35,7 +35,6 @@ export {
35
35
  UnreferencedState,
36
36
  } from "./gcDefinitions";
37
37
  export {
38
- getSnapshotDataFromOldSnapshotFormat,
39
38
  sendGCUnexpectedUsageEvent,
40
39
  shouldAllowGcTombstoneEnforcement,
41
40
  shouldAllowGcSweep,
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/container-runtime";
9
- export const pkgVersion = "2.0.0-internal.3.4.2";
9
+ export const pkgVersion = "2.0.0-internal.3.4.4";