@fluidframework/container-runtime 2.0.0-internal.6.2.0 → 2.0.0-internal.6.3.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.
Files changed (310) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/batchTracker.d.ts.map +1 -1
  3. package/dist/batchTracker.js +4 -3
  4. package/dist/batchTracker.js.map +1 -1
  5. package/dist/blobManager.d.ts +1 -2
  6. package/dist/blobManager.d.ts.map +1 -1
  7. package/dist/blobManager.js +81 -69
  8. package/dist/blobManager.js.map +1 -1
  9. package/dist/connectionTelemetry.d.ts.map +1 -1
  10. package/dist/connectionTelemetry.js +13 -12
  11. package/dist/connectionTelemetry.js.map +1 -1
  12. package/dist/containerRuntime.d.ts +18 -3
  13. package/dist/containerRuntime.d.ts.map +1 -1
  14. package/dist/containerRuntime.js +185 -145
  15. package/dist/containerRuntime.js.map +1 -1
  16. package/dist/dataStore.js +3 -3
  17. package/dist/dataStore.js.map +1 -1
  18. package/dist/dataStoreContext.d.ts +2 -1
  19. package/dist/dataStoreContext.d.ts.map +1 -1
  20. package/dist/dataStoreContext.js +36 -36
  21. package/dist/dataStoreContext.js.map +1 -1
  22. package/dist/dataStoreContexts.d.ts.map +1 -1
  23. package/dist/dataStoreContexts.js +7 -8
  24. package/dist/dataStoreContexts.js.map +1 -1
  25. package/dist/dataStores.d.ts.map +1 -1
  26. package/dist/dataStores.js +19 -20
  27. package/dist/dataStores.js.map +1 -1
  28. package/dist/deltaManagerProxyBase.d.ts +1 -1
  29. package/dist/deltaManagerProxyBase.js +2 -2
  30. package/dist/deltaManagerProxyBase.js.map +1 -1
  31. package/dist/deltaScheduler.js +6 -6
  32. package/dist/deltaScheduler.js.map +1 -1
  33. package/dist/gc/garbageCollection.d.ts +3 -5
  34. package/dist/gc/garbageCollection.d.ts.map +1 -1
  35. package/dist/gc/garbageCollection.js +4 -21
  36. package/dist/gc/garbageCollection.js.map +1 -1
  37. package/dist/gc/gcDefinitions.d.ts +2 -2
  38. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  39. package/dist/gc/gcDefinitions.js.map +1 -1
  40. package/dist/gc/gcHelpers.js +7 -7
  41. package/dist/gc/gcHelpers.js.map +1 -1
  42. package/dist/gc/gcSummaryStateTracker.d.ts +4 -7
  43. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  44. package/dist/gc/gcSummaryStateTracker.js +15 -52
  45. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  46. package/dist/gc/gcUnreferencedStateTracker.js +4 -4
  47. package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
  48. package/dist/gc/index.d.ts +1 -1
  49. package/dist/gc/index.d.ts.map +1 -1
  50. package/dist/gc/index.js +1 -2
  51. package/dist/gc/index.js.map +1 -1
  52. package/dist/id-compressor/appendOnlySortedMap.js +2 -2
  53. package/dist/id-compressor/appendOnlySortedMap.js.map +1 -1
  54. package/dist/id-compressor/finalSpace.js +2 -2
  55. package/dist/id-compressor/finalSpace.js.map +1 -1
  56. package/dist/id-compressor/idCompressor.d.ts.map +1 -1
  57. package/dist/id-compressor/idCompressor.js +16 -15
  58. package/dist/id-compressor/idCompressor.js.map +1 -1
  59. package/dist/id-compressor/sessions.js +5 -5
  60. package/dist/id-compressor/sessions.js.map +1 -1
  61. package/dist/id-compressor/utilities.js +2 -2
  62. package/dist/id-compressor/utilities.js.map +1 -1
  63. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  64. package/dist/opLifecycle/opCompressor.js +4 -3
  65. package/dist/opLifecycle/opCompressor.js.map +1 -1
  66. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  67. package/dist/opLifecycle/opDecompressor.js +11 -10
  68. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  69. package/dist/opLifecycle/opGroupingManager.js +3 -3
  70. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  71. package/dist/opLifecycle/opSplitter.js +12 -12
  72. package/dist/opLifecycle/opSplitter.js.map +1 -1
  73. package/dist/opLifecycle/outbox.js +6 -6
  74. package/dist/opLifecycle/outbox.js.map +1 -1
  75. package/dist/packageVersion.d.ts +1 -1
  76. package/dist/packageVersion.js +1 -1
  77. package/dist/packageVersion.js.map +1 -1
  78. package/dist/pendingStateManager.d.ts.map +1 -1
  79. package/dist/pendingStateManager.js +12 -13
  80. package/dist/pendingStateManager.js.map +1 -1
  81. package/dist/scheduleManager.d.ts.map +1 -1
  82. package/dist/scheduleManager.js +19 -18
  83. package/dist/scheduleManager.js.map +1 -1
  84. package/dist/summary/index.d.ts +1 -1
  85. package/dist/summary/index.d.ts.map +1 -1
  86. package/dist/summary/index.js.map +1 -1
  87. package/dist/summary/orderedClientElection.d.ts +1 -1
  88. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  89. package/dist/summary/orderedClientElection.js +6 -5
  90. package/dist/summary/orderedClientElection.js.map +1 -1
  91. package/dist/summary/runWhileConnectedCoordinator.js +3 -3
  92. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  93. package/dist/summary/runningSummarizer.d.ts +1 -1
  94. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  95. package/dist/summary/runningSummarizer.js +13 -12
  96. package/dist/summary/runningSummarizer.js.map +1 -1
  97. package/dist/summary/summarizer.d.ts +1 -1
  98. package/dist/summary/summarizer.d.ts.map +1 -1
  99. package/dist/summary/summarizer.js +4 -3
  100. package/dist/summary/summarizer.js.map +1 -1
  101. package/dist/summary/summarizerClientElection.d.ts +1 -1
  102. package/dist/summary/summarizerClientElection.js +2 -2
  103. package/dist/summary/summarizerClientElection.js.map +1 -1
  104. package/dist/summary/summarizerHeuristics.js +2 -2
  105. package/dist/summary/summarizerHeuristics.js.map +1 -1
  106. package/dist/summary/summarizerNode/index.d.ts +1 -1
  107. package/dist/summary/summarizerNode/index.d.ts.map +1 -1
  108. package/dist/summary/summarizerNode/index.js.map +1 -1
  109. package/dist/summary/summarizerNode/summarizerNode.d.ts +5 -14
  110. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  111. package/dist/summary/summarizerNode/summarizerNode.js +32 -109
  112. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  113. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +6 -30
  114. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  115. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  116. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +0 -11
  117. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  118. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +5 -88
  119. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  120. package/dist/summary/summaryCollection.d.ts +1 -1
  121. package/dist/summary/summaryCollection.d.ts.map +1 -1
  122. package/dist/summary/summaryCollection.js +9 -8
  123. package/dist/summary/summaryCollection.js.map +1 -1
  124. package/dist/summary/summaryFormat.js +2 -2
  125. package/dist/summary/summaryFormat.js.map +1 -1
  126. package/dist/summary/summaryGenerator.d.ts +1 -1
  127. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  128. package/dist/summary/summaryGenerator.js +10 -10
  129. package/dist/summary/summaryGenerator.js.map +1 -1
  130. package/dist/summary/summaryManager.d.ts +1 -1
  131. package/dist/summary/summaryManager.d.ts.map +1 -1
  132. package/dist/summary/summaryManager.js +9 -8
  133. package/dist/summary/summaryManager.js.map +1 -1
  134. package/lib/batchTracker.d.ts.map +1 -1
  135. package/lib/batchTracker.js +2 -1
  136. package/lib/batchTracker.js.map +1 -1
  137. package/lib/blobManager.d.ts +1 -2
  138. package/lib/blobManager.d.ts.map +1 -1
  139. package/lib/blobManager.js +52 -40
  140. package/lib/blobManager.js.map +1 -1
  141. package/lib/connectionTelemetry.d.ts.map +1 -1
  142. package/lib/connectionTelemetry.js +2 -1
  143. package/lib/connectionTelemetry.js.map +1 -1
  144. package/lib/containerRuntime.d.ts +18 -3
  145. package/lib/containerRuntime.d.ts.map +1 -1
  146. package/lib/containerRuntime.js +147 -107
  147. package/lib/containerRuntime.js.map +1 -1
  148. package/lib/dataStore.js +1 -1
  149. package/lib/dataStore.js.map +1 -1
  150. package/lib/dataStoreContext.d.ts +2 -1
  151. package/lib/dataStoreContext.d.ts.map +1 -1
  152. package/lib/dataStoreContext.js +2 -2
  153. package/lib/dataStoreContext.js.map +1 -1
  154. package/lib/dataStoreContexts.d.ts.map +1 -1
  155. package/lib/dataStoreContexts.js +1 -2
  156. package/lib/dataStoreContexts.js.map +1 -1
  157. package/lib/dataStores.d.ts.map +1 -1
  158. package/lib/dataStores.js +1 -2
  159. package/lib/dataStores.js.map +1 -1
  160. package/lib/deltaManagerProxyBase.d.ts +1 -1
  161. package/lib/deltaManagerProxyBase.js +1 -1
  162. package/lib/deltaManagerProxyBase.js.map +1 -1
  163. package/lib/deltaScheduler.js +1 -1
  164. package/lib/deltaScheduler.js.map +1 -1
  165. package/lib/gc/garbageCollection.d.ts +3 -5
  166. package/lib/gc/garbageCollection.d.ts.map +1 -1
  167. package/lib/gc/garbageCollection.js +5 -22
  168. package/lib/gc/garbageCollection.js.map +1 -1
  169. package/lib/gc/gcDefinitions.d.ts +2 -2
  170. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  171. package/lib/gc/gcDefinitions.js.map +1 -1
  172. package/lib/gc/gcHelpers.js +1 -1
  173. package/lib/gc/gcHelpers.js.map +1 -1
  174. package/lib/gc/gcSummaryStateTracker.d.ts +4 -7
  175. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
  176. package/lib/gc/gcSummaryStateTracker.js +16 -53
  177. package/lib/gc/gcSummaryStateTracker.js.map +1 -1
  178. package/lib/gc/gcUnreferencedStateTracker.js +1 -1
  179. package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
  180. package/lib/gc/index.d.ts +1 -1
  181. package/lib/gc/index.d.ts.map +1 -1
  182. package/lib/gc/index.js +1 -1
  183. package/lib/gc/index.js.map +1 -1
  184. package/lib/id-compressor/appendOnlySortedMap.js +1 -1
  185. package/lib/id-compressor/appendOnlySortedMap.js.map +1 -1
  186. package/lib/id-compressor/finalSpace.js +1 -1
  187. package/lib/id-compressor/finalSpace.js.map +1 -1
  188. package/lib/id-compressor/idCompressor.d.ts.map +1 -1
  189. package/lib/id-compressor/idCompressor.js +2 -1
  190. package/lib/id-compressor/idCompressor.js.map +1 -1
  191. package/lib/id-compressor/sessions.js +1 -1
  192. package/lib/id-compressor/sessions.js.map +1 -1
  193. package/lib/id-compressor/utilities.js +1 -1
  194. package/lib/id-compressor/utilities.js.map +1 -1
  195. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  196. package/lib/opLifecycle/opCompressor.js +2 -1
  197. package/lib/opLifecycle/opCompressor.js.map +1 -1
  198. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  199. package/lib/opLifecycle/opDecompressor.js +2 -1
  200. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  201. package/lib/opLifecycle/opGroupingManager.js +1 -1
  202. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  203. package/lib/opLifecycle/opSplitter.js +1 -1
  204. package/lib/opLifecycle/opSplitter.js.map +1 -1
  205. package/lib/opLifecycle/outbox.js +1 -1
  206. package/lib/opLifecycle/outbox.js.map +1 -1
  207. package/lib/packageVersion.d.ts +1 -1
  208. package/lib/packageVersion.js +1 -1
  209. package/lib/packageVersion.js.map +1 -1
  210. package/lib/pendingStateManager.d.ts.map +1 -1
  211. package/lib/pendingStateManager.js +1 -2
  212. package/lib/pendingStateManager.js.map +1 -1
  213. package/lib/scheduleManager.d.ts.map +1 -1
  214. package/lib/scheduleManager.js +2 -1
  215. package/lib/scheduleManager.js.map +1 -1
  216. package/lib/summary/index.d.ts +1 -1
  217. package/lib/summary/index.d.ts.map +1 -1
  218. package/lib/summary/index.js.map +1 -1
  219. package/lib/summary/orderedClientElection.d.ts +1 -1
  220. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  221. package/lib/summary/orderedClientElection.js +2 -1
  222. package/lib/summary/orderedClientElection.js.map +1 -1
  223. package/lib/summary/runWhileConnectedCoordinator.js +1 -1
  224. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
  225. package/lib/summary/runningSummarizer.d.ts +1 -1
  226. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  227. package/lib/summary/runningSummarizer.js +5 -4
  228. package/lib/summary/runningSummarizer.js.map +1 -1
  229. package/lib/summary/summarizer.d.ts +1 -1
  230. package/lib/summary/summarizer.d.ts.map +1 -1
  231. package/lib/summary/summarizer.js +2 -1
  232. package/lib/summary/summarizer.js.map +1 -1
  233. package/lib/summary/summarizerClientElection.d.ts +1 -1
  234. package/lib/summary/summarizerClientElection.js +1 -1
  235. package/lib/summary/summarizerClientElection.js.map +1 -1
  236. package/lib/summary/summarizerHeuristics.js +1 -1
  237. package/lib/summary/summarizerHeuristics.js.map +1 -1
  238. package/lib/summary/summarizerNode/index.d.ts +1 -1
  239. package/lib/summary/summarizerNode/index.d.ts.map +1 -1
  240. package/lib/summary/summarizerNode/index.js.map +1 -1
  241. package/lib/summary/summarizerNode/summarizerNode.d.ts +5 -14
  242. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  243. package/lib/summary/summarizerNode/summarizerNode.js +16 -93
  244. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  245. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +6 -30
  246. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  247. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  248. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +0 -11
  249. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  250. package/lib/summary/summarizerNode/summarizerNodeWithGc.js +3 -86
  251. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  252. package/lib/summary/summaryCollection.d.ts +1 -1
  253. package/lib/summary/summaryCollection.d.ts.map +1 -1
  254. package/lib/summary/summaryCollection.js +2 -1
  255. package/lib/summary/summaryCollection.js.map +1 -1
  256. package/lib/summary/summaryFormat.js +1 -1
  257. package/lib/summary/summaryFormat.js.map +1 -1
  258. package/lib/summary/summaryGenerator.d.ts +1 -1
  259. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  260. package/lib/summary/summaryGenerator.js +3 -3
  261. package/lib/summary/summaryGenerator.js.map +1 -1
  262. package/lib/summary/summaryManager.d.ts +1 -1
  263. package/lib/summary/summaryManager.d.ts.map +1 -1
  264. package/lib/summary/summaryManager.js +4 -3
  265. package/lib/summary/summaryManager.js.map +1 -1
  266. package/package.json +22 -24
  267. package/src/batchTracker.ts +2 -1
  268. package/src/blobManager.ts +57 -48
  269. package/src/connectionTelemetry.ts +2 -1
  270. package/src/containerRuntime.ts +207 -166
  271. package/src/dataStore.ts +1 -1
  272. package/src/dataStoreContext.ts +2 -2
  273. package/src/dataStoreContexts.ts +1 -2
  274. package/src/dataStores.ts +1 -2
  275. package/src/deltaManagerProxyBase.ts +1 -1
  276. package/src/deltaScheduler.ts +1 -1
  277. package/src/gc/garbageCollection.ts +6 -41
  278. package/src/gc/gcDefinitions.ts +2 -6
  279. package/src/gc/gcHelpers.ts +1 -1
  280. package/src/gc/gcSummaryStateTracker.ts +19 -65
  281. package/src/gc/gcUnreferencedStateTracker.ts +1 -1
  282. package/src/gc/index.ts +0 -1
  283. package/src/id-compressor/appendOnlySortedMap.ts +1 -1
  284. package/src/id-compressor/finalSpace.ts +1 -1
  285. package/src/id-compressor/idCompressor.ts +2 -1
  286. package/src/id-compressor/sessions.ts +1 -1
  287. package/src/id-compressor/utilities.ts +1 -1
  288. package/src/opLifecycle/opCompressor.ts +2 -1
  289. package/src/opLifecycle/opDecompressor.ts +2 -1
  290. package/src/opLifecycle/opGroupingManager.ts +1 -1
  291. package/src/opLifecycle/opSplitter.ts +1 -1
  292. package/src/opLifecycle/outbox.ts +1 -1
  293. package/src/packageVersion.ts +1 -1
  294. package/src/pendingStateManager.ts +1 -2
  295. package/src/scheduleManager.ts +2 -1
  296. package/src/summary/index.ts +1 -2
  297. package/src/summary/orderedClientElection.ts +2 -1
  298. package/src/summary/runWhileConnectedCoordinator.ts +1 -1
  299. package/src/summary/runningSummarizer.ts +5 -10
  300. package/src/summary/summarizer.ts +2 -1
  301. package/src/summary/summarizerClientElection.ts +1 -1
  302. package/src/summary/summarizerHeuristics.ts +1 -1
  303. package/src/summary/summarizerNode/index.ts +1 -2
  304. package/src/summary/summarizerNode/summarizerNode.ts +23 -145
  305. package/src/summary/summarizerNode/summarizerNodeUtils.ts +7 -38
  306. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +3 -123
  307. package/src/summary/summaryCollection.ts +2 -1
  308. package/src/summary/summaryFormat.ts +1 -1
  309. package/src/summary/summaryGenerator.ts +3 -3
  310. package/src/summary/summaryManager.ts +4 -3
@@ -9,12 +9,9 @@ import {
9
9
  TelemetryDataTag,
10
10
  tagCodeArtifacts,
11
11
  } from "@fluidframework/telemetry-utils";
12
- import { assert } from "@fluidframework/common-utils";
13
- import { LazyPromise } from "@fluidframework/core-utils";
14
- import { ISnapshotTree } from "@fluidframework/protocol-definitions";
12
+ import { assert, LazyPromise } from "@fluidframework/core-utils";
15
13
  import {
16
14
  CreateChildSummarizerNodeParam,
17
- gcTreeKey,
18
15
  IGarbageCollectionData,
19
16
  IGarbageCollectionDetailsBase,
20
17
  ISummarizeInternalResult,
@@ -25,21 +22,15 @@ import {
25
22
  ITelemetryContext,
26
23
  IExperimentalIncrementalSummaryContext,
27
24
  } from "@fluidframework/runtime-definitions";
28
- import { ReadAndParseBlob, unpackChildNodesUsedRoutes } from "@fluidframework/runtime-utils";
25
+ import { unpackChildNodesUsedRoutes } from "@fluidframework/runtime-utils";
29
26
  import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
30
- import {
31
- cloneGCData,
32
- getGCDataFromSnapshot,
33
- runGarbageCollection,
34
- unpackChildNodesGCDetails,
35
- } from "../../gc";
27
+ import { cloneGCData, unpackChildNodesGCDetails } from "../../gc";
36
28
  import { SummarizerNode } from "./summarizerNode";
37
29
  import {
38
30
  EscapedPath,
39
31
  ICreateChildDetails,
40
32
  IInitialSummary,
41
33
  ISummarizerNodeRootContract,
42
- parseSummaryForSubtrees,
43
34
  SummaryNode,
44
35
  ValidateSummaryResult,
45
36
  } from "./summarizerNodeUtils";
@@ -391,117 +382,6 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
391
382
  return super.refreshLatestSummaryFromPending(proposalHandle, referenceSequenceNumber);
392
383
  }
393
384
 
394
- /**
395
- * Called when we need to upload the reference state from the given summary.
396
- */
397
- protected async refreshLatestSummaryFromSnapshot(
398
- referenceSequenceNumber: number,
399
- snapshotTree: ISnapshotTree,
400
- basePath: EscapedPath | undefined,
401
- localPath: EscapedPath,
402
- correlatedSummaryLogger: ITelemetryLoggerExt,
403
- readAndParseBlob: ReadAndParseBlob,
404
- ): Promise<void> {
405
- await this.refreshGCStateFromSnapshot(
406
- referenceSequenceNumber,
407
- snapshotTree,
408
- readAndParseBlob,
409
- );
410
- return super.refreshLatestSummaryFromSnapshot(
411
- referenceSequenceNumber,
412
- snapshotTree,
413
- basePath,
414
- localPath,
415
- correlatedSummaryLogger,
416
- readAndParseBlob,
417
- );
418
- }
419
-
420
- /**
421
- * Updates GC state from the given snapshot if GC is enabled and the snapshot is newer than the one this node
422
- * is tracking.
423
- */
424
- private async refreshGCStateFromSnapshot(
425
- referenceSequenceNumber: number,
426
- snapshotTree: ISnapshotTree,
427
- readAndParseBlob: ReadAndParseBlob,
428
- ): Promise<void> {
429
- // If GC is disabled or we have seen a newer summary, skip updating GC state.
430
- if (this.gcDisabled || this.referenceSequenceNumber >= referenceSequenceNumber) {
431
- return;
432
- }
433
-
434
- // Load the base GC details before proceeding because if that happens later it can overwrite the GC details
435
- // written by the following code.
436
- await this.loadBaseGCDetails();
437
-
438
- // Possible re-entrancy. We may already have processed this while loading base GC details.
439
- if (this.referenceSequenceNumber >= referenceSequenceNumber) {
440
- return;
441
- }
442
-
443
- /**
444
- * GC data is written at root of the snapshot tree under "gc" sub-tree. This data needs to be propagated to
445
- * all the nodes in the container.
446
- * The root summarizer node reads the GC data from the "gc" sub-tree, runs GC on it to get used routes in
447
- * the container and updates its GC data and referenced used routes. It then gets the GC data and used
448
- * routes of all its children and adds it to their snapshot tree.
449
- * All the other nodes gets the GC data and used routes from their snapshot tree and updates their state.
450
- * They get the GC data and used routes of their children and add it to their snapshot tree and so on.
451
- *
452
- * Note that if the snapshot does not have GC tree, GC data will be set to undefined and used routes will be
453
- * set to self-route (meaning referenced) for all nodes. This is important because the GC data needs to be
454
- * regenerated in the next summary.
455
- */
456
- let gcDetails: IGarbageCollectionDetailsBase | undefined;
457
- const gcSnapshotTree = snapshotTree.trees[gcTreeKey];
458
- if (gcSnapshotTree !== undefined) {
459
- // If there is a GC tree in the snapshot, this is the root summarizer node. Read GC data from the tree
460
- // process it as explained above.
461
- const gcSnapshotData = await getGCDataFromSnapshot(gcSnapshotTree, readAndParseBlob);
462
-
463
- if (gcSnapshotData.gcState !== undefined) {
464
- const gcNodes: { [id: string]: string[] } = {};
465
- for (const [nodeId, nodeData] of Object.entries(gcSnapshotData.gcState.gcNodes)) {
466
- gcNodes[nodeId] = Array.from(nodeData.outboundRoutes);
467
- }
468
- // Run GC on the nodes in the snapshot to get the used routes for each node in the container.
469
- const usedRoutes = runGarbageCollection(gcNodes, ["/"]).referencedNodeIds;
470
- gcDetails = { gcData: { gcNodes }, usedRoutes };
471
- }
472
- } else {
473
- // If there is a GC blob in the snapshot, it's a non-root summarizer nodes - The root summarizer node
474
- // writes GC blob in the snapshot of child nodes. Get GC data and used routes from the blob.
475
- const gcDetailsBlob = snapshotTree.blobs[gcTreeKey];
476
- if (gcDetailsBlob !== undefined) {
477
- gcDetails = JSON.parse(gcDetailsBlob) as IGarbageCollectionDetailsBase;
478
- }
479
- }
480
-
481
- // Update this node to the same GC state it was when the ack corresponding to this summary was processed.
482
- this.gcData = gcDetails?.gcData !== undefined ? cloneGCData(gcDetails.gcData) : undefined;
483
- this.referenceUsedRoutes =
484
- gcDetails?.usedRoutes !== undefined ? Array.from(gcDetails.usedRoutes) : undefined;
485
- // If there are no used routes in the GC details, set it to have self route which will make the node
486
- // referenced. This scenario can only happen if the snapshot is from a client where GC was not run or
487
- // disabled. In both the cases, the node should be referenced.
488
- this.usedRoutes =
489
- gcDetails?.usedRoutes !== undefined ? Array.from(gcDetails.usedRoutes) : [""];
490
-
491
- if (gcDetails === undefined) {
492
- return;
493
- }
494
-
495
- // Generate the GC data and used routes of children GC nodes and add it to their snapshot tree.
496
- const gcDetailsMap = unpackChildNodesGCDetails(gcDetails);
497
- const { childrenTree } = parseSummaryForSubtrees(snapshotTree);
498
- gcDetailsMap.forEach((childGCDetails: IGarbageCollectionDetailsBase, childId: string) => {
499
- if (childrenTree.trees[childId] !== undefined) {
500
- childrenTree.trees[childId].blobs[gcTreeKey] = JSON.stringify(childGCDetails);
501
- }
502
- });
503
- }
504
-
505
385
  /**
506
386
  * Override the createChild method to return an instance of SummarizerNodeWithGC.
507
387
  */
@@ -5,7 +5,8 @@
5
5
 
6
6
  import { IDisposable, IEvent } from "@fluidframework/core-interfaces";
7
7
  import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
8
- import { Deferred, assert, TypedEventEmitter } from "@fluidframework/common-utils";
8
+ import { Deferred, assert } from "@fluidframework/core-utils";
9
+ import { TypedEventEmitter } from "@fluid-internal/client-utils";
9
10
  import { IDeltaManager } from "@fluidframework/container-definitions";
10
11
  import {
11
12
  IDocumentMessage,
@@ -3,7 +3,7 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { assert } from "@fluidframework/common-utils";
6
+ import { assert } from "@fluidframework/core-utils";
7
7
  import { IDocumentStorageService } from "@fluidframework/driver-definitions";
8
8
  import {
9
9
  readAndParse,
@@ -16,10 +16,10 @@ import {
16
16
  IPromiseTimer,
17
17
  IPromiseTimerResult,
18
18
  Timer,
19
- } from "@fluidframework/common-utils";
19
+ } from "@fluidframework/core-utils";
20
20
  import { MessageType } from "@fluidframework/protocol-definitions";
21
21
  import { getRetryDelaySecondsFromError } from "@fluidframework/driver-utils";
22
- import { DriverErrorType } from "@fluidframework/driver-definitions";
22
+ import { DriverErrorTypes } from "@fluidframework/driver-definitions";
23
23
  import {
24
24
  IAckSummaryResult,
25
25
  INackSummaryResult,
@@ -277,7 +277,7 @@ export class SummaryGenerator {
277
277
  // If failure happened on upload, we may not yet realized that socket disconnected, so check
278
278
  // offlineError too.
279
279
  const category =
280
- cancellationToken.cancelled || error?.errorType === DriverErrorType.offlineError
280
+ cancellationToken.cancelled || error?.errorType === DriverErrorTypes.offlineError
281
281
  ? "generic"
282
282
  : "error";
283
283
 
@@ -9,13 +9,14 @@ import {
9
9
  IEventProvider,
10
10
  ITelemetryBaseLogger,
11
11
  } from "@fluidframework/core-interfaces";
12
- import { TypedEventEmitter, assert } from "@fluidframework/common-utils";
12
+ import { assert } from "@fluidframework/core-utils";
13
+ import { TypedEventEmitter } from "@fluid-internal/client-utils";
13
14
  import {
14
15
  createChildLogger,
15
16
  ITelemetryLoggerExt,
16
17
  PerformanceEvent,
17
18
  } from "@fluidframework/telemetry-utils";
18
- import { DriverErrorType } from "@fluidframework/driver-definitions";
19
+ import { DriverErrorTypes } from "@fluidframework/driver-definitions";
19
20
  import { IThrottler } from "../throttler";
20
21
  import { ISummarizerClientElection } from "./summarizerClientElection";
21
22
  import {
@@ -328,7 +329,7 @@ export class SummaryManager extends TypedEventEmitter<ISummarizerEvents> impleme
328
329
  // If failure happened on container load, we may not yet realized that socket disconnected, so check
329
330
  // offlineError.
330
331
  const category =
331
- error?.errorType === DriverErrorType.offlineError ? "generic" : "error";
332
+ error?.errorType === DriverErrorTypes.offlineError ? "generic" : "error";
332
333
  this.logger.sendTelemetryEvent(
333
334
  {
334
335
  eventName: "SummarizerException",