@fluidframework/container-runtime 2.20.0 → 2.21.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 (333) hide show
  1. package/.eslintrc.cjs +36 -6
  2. package/CHANGELOG.md +38 -0
  3. package/api-report/container-runtime.legacy.alpha.api.md +31 -31
  4. package/dist/batchTracker.d.ts +1 -2
  5. package/dist/batchTracker.d.ts.map +1 -1
  6. package/dist/batchTracker.js +1 -1
  7. package/dist/batchTracker.js.map +1 -1
  8. package/dist/blobManager/blobManager.d.ts.map +1 -1
  9. package/dist/blobManager/blobManager.js +14 -11
  10. package/dist/blobManager/blobManager.js.map +1 -1
  11. package/dist/blobManager/blobManagerSnapSum.d.ts +1 -0
  12. package/dist/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  13. package/dist/blobManager/blobManagerSnapSum.js +7 -5
  14. package/dist/blobManager/blobManagerSnapSum.js.map +1 -1
  15. package/dist/channelCollection.d.ts.map +1 -1
  16. package/dist/channelCollection.js +63 -41
  17. package/dist/channelCollection.js.map +1 -1
  18. package/dist/connectionTelemetry.d.ts +2 -2
  19. package/dist/connectionTelemetry.d.ts.map +1 -1
  20. package/dist/connectionTelemetry.js +4 -4
  21. package/dist/connectionTelemetry.js.map +1 -1
  22. package/dist/containerRuntime.d.ts +14 -30
  23. package/dist/containerRuntime.d.ts.map +1 -1
  24. package/dist/containerRuntime.js +264 -194
  25. package/dist/containerRuntime.js.map +1 -1
  26. package/dist/dataStore.js +6 -3
  27. package/dist/dataStore.js.map +1 -1
  28. package/dist/dataStoreContext.d.ts.map +1 -1
  29. package/dist/dataStoreContext.js +16 -11
  30. package/dist/dataStoreContext.js.map +1 -1
  31. package/dist/dataStoreContexts.d.ts.map +1 -1
  32. package/dist/dataStoreContexts.js +1 -0
  33. package/dist/dataStoreContexts.js.map +1 -1
  34. package/dist/deltaScheduler.d.ts.map +1 -1
  35. package/dist/deltaScheduler.js +5 -5
  36. package/dist/deltaScheduler.js.map +1 -1
  37. package/dist/gc/garbageCollection.d.ts.map +1 -1
  38. package/dist/gc/garbageCollection.js +36 -14
  39. package/dist/gc/garbageCollection.js.map +1 -1
  40. package/dist/gc/gcConfigs.d.ts.map +1 -1
  41. package/dist/gc/gcConfigs.js +2 -0
  42. package/dist/gc/gcConfigs.js.map +1 -1
  43. package/dist/gc/gcDefinitions.d.ts +8 -0
  44. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  45. package/dist/gc/gcDefinitions.js +1 -0
  46. package/dist/gc/gcDefinitions.js.map +1 -1
  47. package/dist/gc/gcHelpers.d.ts.map +1 -1
  48. package/dist/gc/gcHelpers.js +8 -5
  49. package/dist/gc/gcHelpers.js.map +1 -1
  50. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  51. package/dist/gc/gcSummaryStateTracker.js +2 -1
  52. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  53. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  54. package/dist/gc/gcTelemetry.js +29 -15
  55. package/dist/gc/gcTelemetry.js.map +1 -1
  56. package/dist/inboundBatchAggregator.js +3 -3
  57. package/dist/inboundBatchAggregator.js.map +1 -1
  58. package/dist/layerCompatState.d.ts +19 -0
  59. package/dist/layerCompatState.d.ts.map +1 -0
  60. package/dist/layerCompatState.js +64 -0
  61. package/dist/layerCompatState.js.map +1 -0
  62. package/dist/messageTypes.d.ts.map +1 -1
  63. package/dist/messageTypes.js.map +1 -1
  64. package/dist/opLifecycle/duplicateBatchDetector.js +2 -2
  65. package/dist/opLifecycle/duplicateBatchDetector.js.map +1 -1
  66. package/dist/opLifecycle/opCompressor.d.ts +3 -2
  67. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  68. package/dist/opLifecycle/opCompressor.js +13 -19
  69. package/dist/opLifecycle/opCompressor.js.map +1 -1
  70. package/dist/opLifecycle/opDecompressor.d.ts +3 -0
  71. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  72. package/dist/opLifecycle/opDecompressor.js +4 -1
  73. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  74. package/dist/opLifecycle/opGroupingManager.d.ts +1 -1
  75. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  76. package/dist/opLifecycle/opGroupingManager.js +5 -3
  77. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  78. package/dist/opLifecycle/opSplitter.d.ts +13 -10
  79. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  80. package/dist/opLifecycle/opSplitter.js +14 -11
  81. package/dist/opLifecycle/opSplitter.js.map +1 -1
  82. package/dist/opLifecycle/outbox.d.ts +3 -3
  83. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  84. package/dist/opLifecycle/outbox.js +11 -15
  85. package/dist/opLifecycle/outbox.js.map +1 -1
  86. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  87. package/dist/opLifecycle/remoteMessageProcessor.js +3 -1
  88. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  89. package/dist/packageVersion.d.ts +1 -1
  90. package/dist/packageVersion.js +1 -1
  91. package/dist/packageVersion.js.map +1 -1
  92. package/dist/pendingStateManager.d.ts +3 -4
  93. package/dist/pendingStateManager.d.ts.map +1 -1
  94. package/dist/pendingStateManager.js +11 -10
  95. package/dist/pendingStateManager.js.map +1 -1
  96. package/dist/summary/documentSchema.d.ts +7 -0
  97. package/dist/summary/documentSchema.d.ts.map +1 -1
  98. package/dist/summary/documentSchema.js +6 -4
  99. package/dist/summary/documentSchema.js.map +1 -1
  100. package/dist/summary/orderedClientElection.d.ts +1 -0
  101. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  102. package/dist/summary/orderedClientElection.js +13 -11
  103. package/dist/summary/orderedClientElection.js.map +1 -1
  104. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -0
  105. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  106. package/dist/summary/runWhileConnectedCoordinator.js +7 -2
  107. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  108. package/dist/summary/runningSummarizer.d.ts +2 -2
  109. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  110. package/dist/summary/runningSummarizer.js +38 -17
  111. package/dist/summary/runningSummarizer.js.map +1 -1
  112. package/dist/summary/summarizer.d.ts +1 -0
  113. package/dist/summary/summarizer.d.ts.map +1 -1
  114. package/dist/summary/summarizer.js +18 -9
  115. package/dist/summary/summarizer.js.map +1 -1
  116. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  117. package/dist/summary/summarizerClientElection.js +1 -0
  118. package/dist/summary/summarizerClientElection.js.map +1 -1
  119. package/dist/summary/summarizerHeuristics.js +1 -1
  120. package/dist/summary/summarizerHeuristics.js.map +1 -1
  121. package/dist/summary/summarizerNode/index.d.ts.map +1 -1
  122. package/dist/summary/summarizerNode/index.js.map +1 -1
  123. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  124. package/dist/summary/summarizerNode/summarizerNode.js +30 -31
  125. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  126. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +1 -1
  127. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +3 -3
  128. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  129. package/dist/summary/summarizerTypes.d.ts +7 -0
  130. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  131. package/dist/summary/summarizerTypes.js.map +1 -1
  132. package/dist/summary/summaryCollection.d.ts +3 -4
  133. package/dist/summary/summaryCollection.d.ts.map +1 -1
  134. package/dist/summary/summaryCollection.js +9 -6
  135. package/dist/summary/summaryCollection.js.map +1 -1
  136. package/dist/summary/summaryFormat.d.ts +4 -1
  137. package/dist/summary/summaryFormat.d.ts.map +1 -1
  138. package/dist/summary/summaryFormat.js +3 -2
  139. package/dist/summary/summaryFormat.js.map +1 -1
  140. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  141. package/dist/summary/summaryGenerator.js +19 -8
  142. package/dist/summary/summaryGenerator.js.map +1 -1
  143. package/dist/summary/summaryManager.d.ts.map +1 -1
  144. package/dist/summary/summaryManager.js +12 -9
  145. package/dist/summary/summaryManager.js.map +1 -1
  146. package/lib/batchTracker.d.ts +1 -2
  147. package/lib/batchTracker.d.ts.map +1 -1
  148. package/lib/batchTracker.js +2 -2
  149. package/lib/batchTracker.js.map +1 -1
  150. package/lib/blobManager/blobManager.d.ts.map +1 -1
  151. package/lib/blobManager/blobManager.js +14 -11
  152. package/lib/blobManager/blobManager.js.map +1 -1
  153. package/lib/blobManager/blobManagerSnapSum.d.ts +1 -0
  154. package/lib/blobManager/blobManagerSnapSum.d.ts.map +1 -1
  155. package/lib/blobManager/blobManagerSnapSum.js +7 -5
  156. package/lib/blobManager/blobManagerSnapSum.js.map +1 -1
  157. package/lib/channelCollection.d.ts.map +1 -1
  158. package/lib/channelCollection.js +66 -42
  159. package/lib/channelCollection.js.map +1 -1
  160. package/lib/connectionTelemetry.d.ts +2 -2
  161. package/lib/connectionTelemetry.d.ts.map +1 -1
  162. package/lib/connectionTelemetry.js +5 -5
  163. package/lib/connectionTelemetry.js.map +1 -1
  164. package/lib/containerRuntime.d.ts +14 -30
  165. package/lib/containerRuntime.d.ts.map +1 -1
  166. package/lib/containerRuntime.js +271 -196
  167. package/lib/containerRuntime.js.map +1 -1
  168. package/lib/dataStore.js +6 -3
  169. package/lib/dataStore.js.map +1 -1
  170. package/lib/dataStoreContext.d.ts.map +1 -1
  171. package/lib/dataStoreContext.js +16 -11
  172. package/lib/dataStoreContext.js.map +1 -1
  173. package/lib/dataStoreContexts.d.ts.map +1 -1
  174. package/lib/dataStoreContexts.js +1 -0
  175. package/lib/dataStoreContexts.js.map +1 -1
  176. package/lib/deltaScheduler.d.ts.map +1 -1
  177. package/lib/deltaScheduler.js +6 -6
  178. package/lib/deltaScheduler.js.map +1 -1
  179. package/lib/gc/garbageCollection.d.ts.map +1 -1
  180. package/lib/gc/garbageCollection.js +39 -15
  181. package/lib/gc/garbageCollection.js.map +1 -1
  182. package/lib/gc/gcConfigs.d.ts.map +1 -1
  183. package/lib/gc/gcConfigs.js +2 -0
  184. package/lib/gc/gcConfigs.js.map +1 -1
  185. package/lib/gc/gcDefinitions.d.ts +8 -0
  186. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  187. package/lib/gc/gcDefinitions.js +1 -0
  188. package/lib/gc/gcDefinitions.js.map +1 -1
  189. package/lib/gc/gcHelpers.d.ts.map +1 -1
  190. package/lib/gc/gcHelpers.js +8 -5
  191. package/lib/gc/gcHelpers.js.map +1 -1
  192. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
  193. package/lib/gc/gcSummaryStateTracker.js +2 -1
  194. package/lib/gc/gcSummaryStateTracker.js.map +1 -1
  195. package/lib/gc/gcTelemetry.d.ts.map +1 -1
  196. package/lib/gc/gcTelemetry.js +32 -16
  197. package/lib/gc/gcTelemetry.js.map +1 -1
  198. package/lib/inboundBatchAggregator.js +4 -4
  199. package/lib/inboundBatchAggregator.js.map +1 -1
  200. package/lib/layerCompatState.d.ts +19 -0
  201. package/lib/layerCompatState.d.ts.map +1 -0
  202. package/lib/layerCompatState.js +60 -0
  203. package/lib/layerCompatState.js.map +1 -0
  204. package/lib/messageTypes.d.ts.map +1 -1
  205. package/lib/messageTypes.js.map +1 -1
  206. package/lib/opLifecycle/duplicateBatchDetector.js +2 -2
  207. package/lib/opLifecycle/duplicateBatchDetector.js.map +1 -1
  208. package/lib/opLifecycle/opCompressor.d.ts +3 -2
  209. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  210. package/lib/opLifecycle/opCompressor.js +13 -19
  211. package/lib/opLifecycle/opCompressor.js.map +1 -1
  212. package/lib/opLifecycle/opDecompressor.d.ts +3 -0
  213. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  214. package/lib/opLifecycle/opDecompressor.js +4 -1
  215. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  216. package/lib/opLifecycle/opGroupingManager.d.ts +1 -1
  217. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
  218. package/lib/opLifecycle/opGroupingManager.js +5 -3
  219. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  220. package/lib/opLifecycle/opSplitter.d.ts +13 -10
  221. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  222. package/lib/opLifecycle/opSplitter.js +14 -11
  223. package/lib/opLifecycle/opSplitter.js.map +1 -1
  224. package/lib/opLifecycle/outbox.d.ts +3 -3
  225. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  226. package/lib/opLifecycle/outbox.js +11 -15
  227. package/lib/opLifecycle/outbox.js.map +1 -1
  228. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  229. package/lib/opLifecycle/remoteMessageProcessor.js +3 -1
  230. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  231. package/lib/packageVersion.d.ts +1 -1
  232. package/lib/packageVersion.js +1 -1
  233. package/lib/packageVersion.js.map +1 -1
  234. package/lib/pendingStateManager.d.ts +3 -4
  235. package/lib/pendingStateManager.d.ts.map +1 -1
  236. package/lib/pendingStateManager.js +12 -11
  237. package/lib/pendingStateManager.js.map +1 -1
  238. package/lib/summary/documentSchema.d.ts +7 -0
  239. package/lib/summary/documentSchema.d.ts.map +1 -1
  240. package/lib/summary/documentSchema.js +6 -4
  241. package/lib/summary/documentSchema.js.map +1 -1
  242. package/lib/summary/orderedClientElection.d.ts +1 -0
  243. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  244. package/lib/summary/orderedClientElection.js +13 -11
  245. package/lib/summary/orderedClientElection.js.map +1 -1
  246. package/lib/summary/runWhileConnectedCoordinator.d.ts +1 -0
  247. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  248. package/lib/summary/runWhileConnectedCoordinator.js +7 -2
  249. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
  250. package/lib/summary/runningSummarizer.d.ts +2 -2
  251. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  252. package/lib/summary/runningSummarizer.js +38 -17
  253. package/lib/summary/runningSummarizer.js.map +1 -1
  254. package/lib/summary/summarizer.d.ts +1 -0
  255. package/lib/summary/summarizer.d.ts.map +1 -1
  256. package/lib/summary/summarizer.js +18 -9
  257. package/lib/summary/summarizer.js.map +1 -1
  258. package/lib/summary/summarizerClientElection.d.ts.map +1 -1
  259. package/lib/summary/summarizerClientElection.js +1 -0
  260. package/lib/summary/summarizerClientElection.js.map +1 -1
  261. package/lib/summary/summarizerHeuristics.js +1 -1
  262. package/lib/summary/summarizerHeuristics.js.map +1 -1
  263. package/lib/summary/summarizerNode/index.d.ts.map +1 -1
  264. package/lib/summary/summarizerNode/index.js.map +1 -1
  265. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  266. package/lib/summary/summarizerNode/summarizerNode.js +30 -31
  267. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  268. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +1 -1
  269. package/lib/summary/summarizerNode/summarizerNodeWithGc.js +3 -3
  270. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  271. package/lib/summary/summarizerTypes.d.ts +7 -0
  272. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  273. package/lib/summary/summarizerTypes.js.map +1 -1
  274. package/lib/summary/summaryCollection.d.ts +3 -4
  275. package/lib/summary/summaryCollection.d.ts.map +1 -1
  276. package/lib/summary/summaryCollection.js +9 -6
  277. package/lib/summary/summaryCollection.js.map +1 -1
  278. package/lib/summary/summaryFormat.d.ts +4 -1
  279. package/lib/summary/summaryFormat.d.ts.map +1 -1
  280. package/lib/summary/summaryFormat.js +2 -2
  281. package/lib/summary/summaryFormat.js.map +1 -1
  282. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  283. package/lib/summary/summaryGenerator.js +19 -8
  284. package/lib/summary/summaryGenerator.js.map +1 -1
  285. package/lib/summary/summaryManager.d.ts.map +1 -1
  286. package/lib/summary/summaryManager.js +12 -9
  287. package/lib/summary/summaryManager.js.map +1 -1
  288. package/package.json +21 -43
  289. package/src/batchTracker.ts +3 -3
  290. package/src/blobManager/blobManager.ts +16 -14
  291. package/src/blobManager/blobManagerSnapSum.ts +8 -8
  292. package/src/channelCollection.ts +63 -44
  293. package/src/connectionTelemetry.ts +12 -6
  294. package/src/containerRuntime.ts +306 -235
  295. package/src/dataStore.ts +6 -3
  296. package/src/dataStoreContext.ts +16 -16
  297. package/src/dataStoreContexts.ts +1 -0
  298. package/src/deltaScheduler.ts +6 -6
  299. package/src/gc/garbageCollection.ts +47 -20
  300. package/src/gc/gcConfigs.ts +9 -1
  301. package/src/gc/gcDefinitions.ts +12 -0
  302. package/src/gc/gcHelpers.ts +9 -4
  303. package/src/gc/gcSummaryStateTracker.ts +3 -1
  304. package/src/gc/gcTelemetry.ts +26 -11
  305. package/src/inboundBatchAggregator.ts +4 -4
  306. package/src/layerCompatState.ts +75 -0
  307. package/src/messageTypes.ts +2 -0
  308. package/src/opLifecycle/README.md +43 -34
  309. package/src/opLifecycle/duplicateBatchDetector.ts +2 -2
  310. package/src/opLifecycle/opCompressor.ts +16 -23
  311. package/src/opLifecycle/opDecompressor.ts +4 -1
  312. package/src/opLifecycle/opGroupingManager.ts +5 -4
  313. package/src/opLifecycle/opSplitter.ts +14 -11
  314. package/src/opLifecycle/outbox.ts +13 -20
  315. package/src/opLifecycle/remoteMessageProcessor.ts +3 -1
  316. package/src/packageVersion.ts +1 -1
  317. package/src/pendingStateManager.ts +15 -10
  318. package/src/summary/documentSchema.ts +11 -4
  319. package/src/summary/orderedClientElection.ts +14 -11
  320. package/src/summary/runWhileConnectedCoordinator.ts +6 -0
  321. package/src/summary/runningSummarizer.ts +43 -19
  322. package/src/summary/summarizer.ts +24 -11
  323. package/src/summary/summarizerClientElection.ts +2 -0
  324. package/src/summary/summarizerHeuristics.ts +1 -1
  325. package/src/summary/summarizerNode/index.ts +1 -0
  326. package/src/summary/summarizerNode/summarizerNode.ts +32 -31
  327. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +4 -4
  328. package/src/summary/summarizerTypes.ts +7 -0
  329. package/src/summary/summaryCollection.ts +19 -8
  330. package/src/summary/summaryFormat.ts +10 -5
  331. package/src/summary/summaryGenerator.ts +25 -10
  332. package/src/summary/summaryManager.ts +14 -12
  333. package/container-runtime.test-files.tar +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"garbageCollection.d.ts","sourceRoot":"","sources":["../../src/gc/garbageCollection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"garbageCollection.d.ts","sourceRoot":"","sources":["../../src/gc/garbageCollection.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,9 @@ import { TombstoneResponseHeaderKey } from "../containerRuntime.js";
11
11
  import { ClientSessionExpiredError } from "../error.js";
12
12
  import { ContainerMessageType } from "../messageTypes.js";
13
13
  import { generateGCConfigs } from "./gcConfigs.js";
14
- import { GCNodeType, GarbageCollectionMessageType, UnreferencedState, } from "./gcDefinitions.js";
14
+ import {
15
+ // eslint-disable-next-line import/no-deprecated
16
+ GCNodeType, GarbageCollectionMessageType, UnreferencedState, } from "./gcDefinitions.js";
15
17
  import { cloneGCData, concatGarbageCollectionData, dataStoreNodePathOnly, getGCDataFromSnapshot, urlToGCNodePath, } from "./gcHelpers.js";
16
18
  import { runGarbageCollection } from "./gcReferenceGraphAlgorithm.js";
17
19
  import { GCSummaryStateTracker } from "./gcSummaryStateTracker.js";
@@ -71,8 +73,10 @@ export class GarbageCollector {
71
73
  /**
72
74
  * API for ensuring the correct auto-recovery mitigations
73
75
  */
76
+ // TODO: consider hoisting this to an outer scope as an optimization
77
+ // eslint-disable-next-line unicorn/consistent-function-scoping
74
78
  this.autoRecovery = (() => {
75
- // This uses a hidden state machine for forcing fullGC as part of autorecovery,
79
+ // This uses a hidden state machine for forcing fullGC as part of auto-recovery,
76
80
  // to regenerate the GC data for each node.
77
81
  //
78
82
  // Once fullGC has been requested, we need to wait until GC has run and the summary has been acked before clearing the state.
@@ -207,7 +211,7 @@ export class GarbageCollector {
207
211
  if (nodeData.unreferencedTimestampMs !== undefined) {
208
212
  this.unreferencedNodesState.set(nodeId, new UnreferencedStateTracker(nodeData.unreferencedTimestampMs, this.configs.inactiveTimeoutMs, currentReferenceTimestampMs, this.configs.tombstoneTimeoutMs, this.configs.sweepGracePeriodMs));
209
213
  }
210
- gcNodes[nodeId] = Array.from(nodeData.outboundRoutes);
214
+ gcNodes[nodeId] = [...nodeData.outboundRoutes];
211
215
  }
212
216
  this.gcDataFromLastRun = { gcNodes };
213
217
  });
@@ -223,7 +227,7 @@ export class GarbageCollector {
223
227
  // state will re-summarize to reset any GC specific state in their summaries (like unreferenced flag).
224
228
  const gcNodes = {};
225
229
  for (const [nodeId, nodeData] of Object.entries(baseSnapshotData.gcState.gcNodes)) {
226
- gcNodes[nodeId] = Array.from(nodeData.outboundRoutes);
230
+ gcNodes[nodeId] = [...nodeData.outboundRoutes];
227
231
  }
228
232
  // Run GC on the nodes in the base summary to get the routes used in each node in the container.
229
233
  // This is an optimization for space (vs performance) wherein we don't need to store the used routes of
@@ -265,7 +269,7 @@ export class GarbageCollector {
265
269
  // Initialize the tombstone state from the snapshot. Also, notify the runtime of tombstone routes.
266
270
  if (baseSnapshotData.tombstones !== undefined) {
267
271
  // Create a copy since we are writing from a source we don't control
268
- this.tombstones = Array.from(baseSnapshotData.tombstones);
272
+ this.tombstones = [...baseSnapshotData.tombstones];
269
273
  this.runtime.updateTombstonedRoutes(this.tombstones);
270
274
  }
271
275
  await this.initializeOrUpdateGCState();
@@ -284,16 +288,16 @@ export class GarbageCollector {
284
288
  eventName: "InitializeOrUpdateGCState",
285
289
  }, async (event) => {
286
290
  // If the GC state hasn't been initialized yet, initialize it and return.
287
- if (!initialized) {
288
- await this.initializeGCStateFromBaseSnapshotP;
289
- }
290
- else {
291
+ if (initialized) {
291
292
  // If the GC state has been initialized, update the tracking of unreferenced nodes as per the current
292
293
  // reference timestamp.
293
294
  for (const [, nodeStateTracker] of this.unreferencedNodesState) {
294
295
  nodeStateTracker.updateTracking(currentReferenceTimestampMs);
295
296
  }
296
297
  }
298
+ else {
299
+ await this.initializeGCStateFromBaseSnapshotP;
300
+ }
297
301
  event.end({
298
302
  details: { initialized, unrefNodeCount: this.unreferencedNodesState.size },
299
303
  });
@@ -523,6 +527,7 @@ export class GarbageCollector {
523
527
  // local state when processing the op.
524
528
  const sweepReadyDSAndBlobs = nodesToDelete.filter((nodeId) => {
525
529
  const nodeType = this.runtime.getNodeType(nodeId);
530
+ // eslint-disable-next-line import/no-deprecated
526
531
  return nodeType === GCNodeType.DataStore || nodeType === GCNodeType.Blob;
527
532
  });
528
533
  const contents = {
@@ -586,7 +591,7 @@ export class GarbageCollector {
586
591
  */
587
592
  const gcDataSuperSet = concatGarbageCollectionData(previousGCData, currentGCData);
588
593
  const newOutboundRoutesSinceLastRun = [];
589
- this.newReferencesSinceLastRun.forEach((outboundRoutes, sourceNodeId) => {
594
+ for (const [sourceNodeId, outboundRoutes] of this.newReferencesSinceLastRun) {
590
595
  if (gcDataSuperSet.gcNodes[sourceNodeId] === undefined) {
591
596
  gcDataSuperSet.gcNodes[sourceNodeId] = outboundRoutes;
592
597
  }
@@ -594,7 +599,7 @@ export class GarbageCollector {
594
599
  gcDataSuperSet.gcNodes[sourceNodeId].push(...outboundRoutes);
595
600
  }
596
601
  newOutboundRoutesSinceLastRun.push(...outboundRoutes);
597
- });
602
+ }
598
603
  /**
599
604
  * Run GC on the above reference graph starting with root and all new outbound routes. This will generate a
600
605
  * list of all nodes that could have been referenced since the last run. If any of these nodes are unreferenced,
@@ -626,6 +631,7 @@ export class GarbageCollector {
626
631
  }
627
632
  return this.summaryStateTracker.summarize(trackState && !fullTree, gcState, this.deletedNodes, this.tombstones);
628
633
  }
634
+ // eslint-disable-next-line import/no-deprecated
629
635
  getMetadata() {
630
636
  return {
631
637
  /**
@@ -670,8 +676,9 @@ export class GarbageCollector {
670
676
  this.autoRecovery.requestFullGCOnNextRun();
671
677
  break;
672
678
  }
673
- default:
679
+ default: {
674
680
  throw DataProcessingError.create(`Garbage collection message of unknown type ${gcMessageType}`, "processMessage");
681
+ }
675
682
  }
676
683
  }
677
684
  }
@@ -690,7 +697,7 @@ export class GarbageCollector {
690
697
  // The ids in the sweep-ready nodes do not contain DDS node ids. This is an optimization to reduce the size
691
698
  // of the GC op. Since GC applies to data store only, all its DDSes are deleted along with it. So, get the
692
699
  // DDS nodes ID from the unreferenced nodes state.
693
- const allSweepReadyNodeIds = Array.from(sweepReadyNodeIds);
700
+ const allSweepReadyNodeIds = [...sweepReadyNodeIds];
694
701
  for (const [id] of this.unreferencedNodesState) {
695
702
  // Ignore data store nodes since they would already be in the list.
696
703
  const pathParts = id.split("/");
@@ -727,7 +734,7 @@ export class GarbageCollector {
727
734
  // trackedId will be either DataStore or Blob ID (not sub-DataStore ID, since some of those are unrecognized by GC)
728
735
  const trackedId = node.path;
729
736
  const isTombstoned = this.tombstones.includes(trackedId);
730
- const fullPath = request !== undefined ? urlToGCNodePath(request.url) : trackedId;
737
+ const fullPath = request === undefined ? trackedId : urlToGCNodePath(request.url);
731
738
  // This will log if appropriate
732
739
  this.telemetryTracker.nodeUsed(trackedId, {
733
740
  id: fullPath,
@@ -753,6 +760,7 @@ export class GarbageCollector {
753
760
  const nodeType = this.runtime.getNodeType(fullPath);
754
761
  // Unless this is a Loaded event for a Blob or DataStore, we're done after telemetry tracking
755
762
  const loadedBlobOrDataStore = reason === "Loaded" &&
763
+ // eslint-disable-next-line import/no-deprecated
756
764
  (nodeType === GCNodeType.Blob || nodeType === GCNodeType.DataStore);
757
765
  if (!loadedBlobOrDataStore) {
758
766
  return;
@@ -857,7 +865,9 @@ export class GarbageCollector {
857
865
  * @param gcResult - The result of the current GC run.
858
866
  * @returns the stats of the mark phase run.
859
867
  */
868
+ // eslint-disable-next-line import/no-deprecated
860
869
  getMarkPhaseStats(gcResult) {
870
+ // eslint-disable-next-line import/no-deprecated
861
871
  const markPhaseStats = {
862
872
  nodeCount: 0,
863
873
  dataStoreCount: 0,
@@ -881,6 +891,7 @@ export class GarbageCollector {
881
891
  if (!isReferenced) {
882
892
  markPhaseStats.unrefNodeCount++;
883
893
  }
894
+ // eslint-disable-next-line import/no-deprecated
884
895
  if (this.runtime.getNodeType(nodeId) === GCNodeType.DataStore) {
885
896
  markPhaseStats.dataStoreCount++;
886
897
  if (stateUpdated) {
@@ -890,6 +901,7 @@ export class GarbageCollector {
890
901
  markPhaseStats.unrefDataStoreCount++;
891
902
  }
892
903
  }
904
+ // eslint-disable-next-line import/no-deprecated
893
905
  if (this.runtime.getNodeType(nodeId) === GCNodeType.Blob) {
894
906
  markPhaseStats.attachmentBlobCount++;
895
907
  if (stateUpdated) {
@@ -916,9 +928,12 @@ export class GarbageCollector {
916
928
  * @param markPhaseStats - The stats of the mark phase run.
917
929
  * @returns the stats of the sweep phase run.
918
930
  */
919
- getSweepPhaseStats(deletedNodes, sweepReadyNodes, markPhaseStats) {
931
+ getSweepPhaseStats(deletedNodes, sweepReadyNodes,
932
+ // eslint-disable-next-line import/no-deprecated
933
+ markPhaseStats) {
920
934
  // Initialize the life time node counts to the mark phase node counts. If sweep is not enabled,
921
935
  // these will be the life time node count for this container.
936
+ // eslint-disable-next-line import/no-deprecated
922
937
  const sweepPhaseStats = {
923
938
  lifetimeNodeCount: markPhaseStats.nodeCount,
924
939
  lifetimeDataStoreCount: markPhaseStats.dataStoreCount,
@@ -929,24 +944,31 @@ export class GarbageCollector {
929
944
  };
930
945
  // The runtime can't reliably identify the type of deleted nodes. So, get the type here. This should
931
946
  // be good enough because the only types that participate in GC today are data stores, DDSes and blobs.
947
+ // eslint-disable-next-line import/no-deprecated, unicorn/consistent-function-scoping
932
948
  const getDeletedNodeType = (nodeId) => {
933
949
  const pathParts = nodeId.split("/");
934
950
  if (pathParts[1] === blobManagerBasePath) {
951
+ // eslint-disable-next-line import/no-deprecated
935
952
  return GCNodeType.Blob;
936
953
  }
937
954
  if (pathParts.length === 2) {
955
+ // eslint-disable-next-line import/no-deprecated
938
956
  return GCNodeType.DataStore;
939
957
  }
940
958
  if (pathParts.length === 3) {
959
+ // eslint-disable-next-line import/no-deprecated
941
960
  return GCNodeType.SubDataStore;
942
961
  }
962
+ // eslint-disable-next-line import/no-deprecated
943
963
  return GCNodeType.Other;
944
964
  };
945
965
  for (const nodeId of deletedNodes) {
946
966
  sweepPhaseStats.deletedNodeCount++;
947
967
  const nodeType = getDeletedNodeType(nodeId);
968
+ // eslint-disable-next-line import/no-deprecated
948
969
  if (nodeType === GCNodeType.DataStore) {
949
970
  sweepPhaseStats.deletedDataStoreCount++;
971
+ // eslint-disable-next-line import/no-deprecated
950
972
  }
951
973
  else if (nodeType === GCNodeType.Blob) {
952
974
  sweepPhaseStats.deletedAttachmentBlobCount++;
@@ -966,8 +988,10 @@ export class GarbageCollector {
966
988
  for (const nodeId of sweepReadyNodes) {
967
989
  sweepPhaseStats.deletedNodeCount++;
968
990
  const nodeType = this.runtime.getNodeType(nodeId);
991
+ // eslint-disable-next-line import/no-deprecated
969
992
  if (nodeType === GCNodeType.DataStore) {
970
993
  sweepPhaseStats.deletedDataStoreCount++;
994
+ // eslint-disable-next-line import/no-deprecated
971
995
  }
972
996
  else if (nodeType === GCNodeType.Blob) {
973
997
  sweepPhaseStats.deletedAttachmentBlobCount++;