@fluidframework/container-runtime 2.0.0-dev-rc.5.0.0.265721 → 2.0.0-dev-rc.5.0.0.267932

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 (287) hide show
  1. package/api-report/container-runtime.api.md +12 -13
  2. package/dist/batchTracker.js.map +1 -1
  3. package/dist/blobManager.d.ts +2 -2
  4. package/dist/blobManager.d.ts.map +1 -1
  5. package/dist/blobManager.js.map +1 -1
  6. package/dist/channelCollection.d.ts +3 -3
  7. package/dist/channelCollection.d.ts.map +1 -1
  8. package/dist/channelCollection.js.map +1 -1
  9. package/dist/connectionTelemetry.d.ts +2 -1
  10. package/dist/connectionTelemetry.d.ts.map +1 -1
  11. package/dist/connectionTelemetry.js +14 -14
  12. package/dist/connectionTelemetry.js.map +1 -1
  13. package/dist/containerRuntime.d.ts +2 -2
  14. package/dist/containerRuntime.d.ts.map +1 -1
  15. package/dist/containerRuntime.js +12 -16
  16. package/dist/containerRuntime.js.map +1 -1
  17. package/dist/dataStoreContext.d.ts +3 -4
  18. package/dist/dataStoreContext.d.ts.map +1 -1
  19. package/dist/dataStoreContext.js.map +1 -1
  20. package/dist/deltaManagerProxies.d.ts +4 -3
  21. package/dist/deltaManagerProxies.d.ts.map +1 -1
  22. package/dist/deltaManagerProxies.js.map +1 -1
  23. package/dist/deltaScheduler.d.ts +2 -1
  24. package/dist/deltaScheduler.d.ts.map +1 -1
  25. package/dist/deltaScheduler.js.map +1 -1
  26. package/dist/gc/garbageCollection.d.ts +0 -1
  27. package/dist/gc/garbageCollection.d.ts.map +1 -1
  28. package/dist/gc/garbageCollection.js +17 -20
  29. package/dist/gc/garbageCollection.js.map +1 -1
  30. package/dist/gc/gcConfigs.d.ts.map +1 -1
  31. package/dist/gc/gcConfigs.js +5 -19
  32. package/dist/gc/gcConfigs.js.map +1 -1
  33. package/dist/gc/gcDefinitions.d.ts +1 -10
  34. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  35. package/dist/gc/gcDefinitions.js +1 -3
  36. package/dist/gc/gcDefinitions.js.map +1 -1
  37. package/dist/gc/gcHelpers.d.ts +1 -1
  38. package/dist/gc/gcHelpers.d.ts.map +1 -1
  39. package/dist/gc/gcHelpers.js.map +1 -1
  40. package/dist/gc/gcSummaryStateTracker.d.ts +1 -34
  41. package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
  42. package/dist/gc/gcSummaryStateTracker.js +9 -62
  43. package/dist/gc/gcSummaryStateTracker.js.map +1 -1
  44. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  45. package/dist/gc/gcTelemetry.js.map +1 -1
  46. package/dist/gc/index.d.ts +1 -1
  47. package/dist/gc/index.d.ts.map +1 -1
  48. package/dist/gc/index.js +1 -2
  49. package/dist/gc/index.js.map +1 -1
  50. package/dist/messageTypes.d.ts +1 -1
  51. package/dist/messageTypes.d.ts.map +1 -1
  52. package/dist/messageTypes.js.map +1 -1
  53. package/dist/opLifecycle/definitions.d.ts +2 -2
  54. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  55. package/dist/opLifecycle/definitions.js.map +1 -1
  56. package/dist/opLifecycle/opCompressor.d.ts +11 -1
  57. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  58. package/dist/opLifecycle/opCompressor.js +13 -2
  59. package/dist/opLifecycle/opCompressor.js.map +1 -1
  60. package/dist/opLifecycle/opDecompressor.d.ts +1 -1
  61. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  62. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  63. package/dist/opLifecycle/opGroupingManager.d.ts +10 -3
  64. package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
  65. package/dist/opLifecycle/opGroupingManager.js +7 -0
  66. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  67. package/dist/opLifecycle/opSplitter.d.ts +4 -2
  68. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  69. package/dist/opLifecycle/opSplitter.js +12 -7
  70. package/dist/opLifecycle/opSplitter.js.map +1 -1
  71. package/dist/opLifecycle/outbox.d.ts +9 -0
  72. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  73. package/dist/opLifecycle/outbox.js +10 -1
  74. package/dist/opLifecycle/outbox.js.map +1 -1
  75. package/dist/opLifecycle/remoteMessageProcessor.d.ts +1 -1
  76. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  77. package/dist/opLifecycle/remoteMessageProcessor.js +2 -2
  78. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  79. package/dist/opProperties.d.ts +1 -1
  80. package/dist/opProperties.d.ts.map +1 -1
  81. package/dist/opProperties.js.map +1 -1
  82. package/dist/packageVersion.d.ts +1 -1
  83. package/dist/packageVersion.js +1 -1
  84. package/dist/packageVersion.js.map +1 -1
  85. package/dist/pendingStateManager.js.map +1 -1
  86. package/dist/scheduleManager.d.ts +2 -1
  87. package/dist/scheduleManager.d.ts.map +1 -1
  88. package/dist/scheduleManager.js.map +1 -1
  89. package/dist/summary/orderedClientElection.d.ts +1 -1
  90. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  91. package/dist/summary/orderedClientElection.js.map +1 -1
  92. package/dist/summary/runningSummarizer.d.ts +1 -1
  93. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  94. package/dist/summary/runningSummarizer.js +3 -4
  95. package/dist/summary/runningSummarizer.js.map +1 -1
  96. package/dist/summary/summarizerClientElection.d.ts +1 -1
  97. package/dist/summary/summarizerClientElection.d.ts.map +1 -1
  98. package/dist/summary/summarizerClientElection.js +2 -2
  99. package/dist/summary/summarizerClientElection.js.map +1 -1
  100. package/dist/summary/summarizerNode/summarizerNode.d.ts +2 -1
  101. package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  102. package/dist/summary/summarizerNode/summarizerNode.js +16 -16
  103. package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
  104. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
  105. package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  106. package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  107. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +1 -1
  108. package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  109. package/dist/summary/summarizerNode/summarizerNodeWithGc.js +1 -1
  110. package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  111. package/dist/summary/summarizerTypes.d.ts +2 -3
  112. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  113. package/dist/summary/summarizerTypes.js.map +1 -1
  114. package/dist/summary/summaryCollection.d.ts +2 -1
  115. package/dist/summary/summaryCollection.d.ts.map +1 -1
  116. package/dist/summary/summaryCollection.js +9 -9
  117. package/dist/summary/summaryCollection.js.map +1 -1
  118. package/dist/summary/summaryFormat.d.ts +2 -2
  119. package/dist/summary/summaryFormat.d.ts.map +1 -1
  120. package/dist/summary/summaryFormat.js +2 -2
  121. package/dist/summary/summaryFormat.js.map +1 -1
  122. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  123. package/dist/summary/summaryGenerator.js +3 -4
  124. package/dist/summary/summaryGenerator.js.map +1 -1
  125. package/lib/batchTracker.js.map +1 -1
  126. package/lib/blobManager.d.ts +2 -2
  127. package/lib/blobManager.d.ts.map +1 -1
  128. package/lib/blobManager.js.map +1 -1
  129. package/lib/channelCollection.d.ts +3 -3
  130. package/lib/channelCollection.d.ts.map +1 -1
  131. package/lib/channelCollection.js.map +1 -1
  132. package/lib/connectionTelemetry.d.ts +2 -1
  133. package/lib/connectionTelemetry.d.ts.map +1 -1
  134. package/lib/connectionTelemetry.js +2 -2
  135. package/lib/connectionTelemetry.js.map +1 -1
  136. package/lib/containerRuntime.d.ts +2 -2
  137. package/lib/containerRuntime.d.ts.map +1 -1
  138. package/lib/containerRuntime.js +6 -10
  139. package/lib/containerRuntime.js.map +1 -1
  140. package/lib/dataStoreContext.d.ts +3 -4
  141. package/lib/dataStoreContext.d.ts.map +1 -1
  142. package/lib/dataStoreContext.js.map +1 -1
  143. package/lib/deltaManagerProxies.d.ts +4 -3
  144. package/lib/deltaManagerProxies.d.ts.map +1 -1
  145. package/lib/deltaManagerProxies.js.map +1 -1
  146. package/lib/deltaScheduler.d.ts +2 -1
  147. package/lib/deltaScheduler.d.ts.map +1 -1
  148. package/lib/deltaScheduler.js.map +1 -1
  149. package/lib/gc/garbageCollection.d.ts +0 -1
  150. package/lib/gc/garbageCollection.d.ts.map +1 -1
  151. package/lib/gc/garbageCollection.js +17 -20
  152. package/lib/gc/garbageCollection.js.map +1 -1
  153. package/lib/gc/gcConfigs.d.ts.map +1 -1
  154. package/lib/gc/gcConfigs.js +6 -20
  155. package/lib/gc/gcConfigs.js.map +1 -1
  156. package/lib/gc/gcDefinitions.d.ts +1 -10
  157. package/lib/gc/gcDefinitions.d.ts.map +1 -1
  158. package/lib/gc/gcDefinitions.js +0 -2
  159. package/lib/gc/gcDefinitions.js.map +1 -1
  160. package/lib/gc/gcHelpers.d.ts +1 -1
  161. package/lib/gc/gcHelpers.d.ts.map +1 -1
  162. package/lib/gc/gcHelpers.js.map +1 -1
  163. package/lib/gc/gcSummaryStateTracker.d.ts +1 -34
  164. package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
  165. package/lib/gc/gcSummaryStateTracker.js +4 -57
  166. package/lib/gc/gcSummaryStateTracker.js.map +1 -1
  167. package/lib/gc/gcTelemetry.d.ts.map +1 -1
  168. package/lib/gc/gcTelemetry.js.map +1 -1
  169. package/lib/gc/index.d.ts +1 -1
  170. package/lib/gc/index.d.ts.map +1 -1
  171. package/lib/gc/index.js +1 -1
  172. package/lib/gc/index.js.map +1 -1
  173. package/lib/messageTypes.d.ts +1 -1
  174. package/lib/messageTypes.d.ts.map +1 -1
  175. package/lib/messageTypes.js.map +1 -1
  176. package/lib/opLifecycle/definitions.d.ts +2 -2
  177. package/lib/opLifecycle/definitions.d.ts.map +1 -1
  178. package/lib/opLifecycle/definitions.js.map +1 -1
  179. package/lib/opLifecycle/opCompressor.d.ts +11 -1
  180. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  181. package/lib/opLifecycle/opCompressor.js +13 -2
  182. package/lib/opLifecycle/opCompressor.js.map +1 -1
  183. package/lib/opLifecycle/opDecompressor.d.ts +1 -1
  184. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  185. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  186. package/lib/opLifecycle/opGroupingManager.d.ts +10 -3
  187. package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
  188. package/lib/opLifecycle/opGroupingManager.js +7 -0
  189. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  190. package/lib/opLifecycle/opSplitter.d.ts +4 -2
  191. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  192. package/lib/opLifecycle/opSplitter.js +12 -7
  193. package/lib/opLifecycle/opSplitter.js.map +1 -1
  194. package/lib/opLifecycle/outbox.d.ts +9 -0
  195. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  196. package/lib/opLifecycle/outbox.js +10 -1
  197. package/lib/opLifecycle/outbox.js.map +1 -1
  198. package/lib/opLifecycle/remoteMessageProcessor.d.ts +1 -1
  199. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  200. package/lib/opLifecycle/remoteMessageProcessor.js +1 -1
  201. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  202. package/lib/opProperties.d.ts +1 -1
  203. package/lib/opProperties.d.ts.map +1 -1
  204. package/lib/opProperties.js.map +1 -1
  205. package/lib/packageVersion.d.ts +1 -1
  206. package/lib/packageVersion.js +1 -1
  207. package/lib/packageVersion.js.map +1 -1
  208. package/lib/pendingStateManager.js.map +1 -1
  209. package/lib/scheduleManager.d.ts +2 -1
  210. package/lib/scheduleManager.d.ts.map +1 -1
  211. package/lib/scheduleManager.js.map +1 -1
  212. package/lib/summary/orderedClientElection.d.ts +1 -1
  213. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  214. package/lib/summary/orderedClientElection.js.map +1 -1
  215. package/lib/summary/runningSummarizer.d.ts +1 -1
  216. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  217. package/lib/summary/runningSummarizer.js +1 -2
  218. package/lib/summary/runningSummarizer.js.map +1 -1
  219. package/lib/summary/summarizerClientElection.d.ts +1 -1
  220. package/lib/summary/summarizerClientElection.d.ts.map +1 -1
  221. package/lib/summary/summarizerClientElection.js +1 -1
  222. package/lib/summary/summarizerClientElection.js.map +1 -1
  223. package/lib/summary/summarizerNode/summarizerNode.d.ts +2 -1
  224. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
  225. package/lib/summary/summarizerNode/summarizerNode.js +14 -14
  226. package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
  227. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
  228. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
  229. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
  230. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +1 -1
  231. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
  232. package/lib/summary/summarizerNode/summarizerNodeWithGc.js +1 -1
  233. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
  234. package/lib/summary/summarizerTypes.d.ts +2 -3
  235. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  236. package/lib/summary/summarizerTypes.js.map +1 -1
  237. package/lib/summary/summaryCollection.d.ts +2 -1
  238. package/lib/summary/summaryCollection.d.ts.map +1 -1
  239. package/lib/summary/summaryCollection.js +1 -1
  240. package/lib/summary/summaryCollection.js.map +1 -1
  241. package/lib/summary/summaryFormat.d.ts +2 -2
  242. package/lib/summary/summaryFormat.d.ts.map +1 -1
  243. package/lib/summary/summaryFormat.js +1 -1
  244. package/lib/summary/summaryFormat.js.map +1 -1
  245. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  246. package/lib/summary/summaryGenerator.js +2 -3
  247. package/lib/summary/summaryGenerator.js.map +1 -1
  248. package/lib/tsdoc-metadata.json +1 -1
  249. package/package.json +31 -20
  250. package/src/batchTracker.ts +1 -1
  251. package/src/blobManager.ts +4 -4
  252. package/src/channelCollection.ts +4 -3
  253. package/src/connectionTelemetry.ts +14 -6
  254. package/src/containerRuntime.ts +17 -21
  255. package/src/dataStoreContext.ts +10 -10
  256. package/src/deltaManagerProxies.ts +7 -5
  257. package/src/deltaScheduler.ts +2 -1
  258. package/src/gc/garbageCollection.ts +18 -24
  259. package/src/gc/gcConfigs.ts +5 -24
  260. package/src/gc/gcDefinitions.ts +1 -10
  261. package/src/gc/gcHelpers.ts +1 -1
  262. package/src/gc/gcSummaryStateTracker.ts +6 -72
  263. package/src/gc/gcTelemetry.ts +1 -1
  264. package/src/gc/index.ts +0 -1
  265. package/src/messageTypes.ts +1 -1
  266. package/src/opLifecycle/README.md +120 -160
  267. package/src/opLifecycle/definitions.ts +2 -2
  268. package/src/opLifecycle/opCompressor.ts +13 -2
  269. package/src/opLifecycle/opDecompressor.ts +1 -1
  270. package/src/opLifecycle/opGroupingManager.ts +11 -4
  271. package/src/opLifecycle/opSplitter.ts +13 -8
  272. package/src/opLifecycle/outbox.ts +10 -1
  273. package/src/opLifecycle/remoteMessageProcessor.ts +2 -1
  274. package/src/opProperties.ts +2 -4
  275. package/src/packageVersion.ts +1 -1
  276. package/src/pendingStateManager.ts +1 -1
  277. package/src/scheduleManager.ts +2 -1
  278. package/src/summary/orderedClientElection.ts +1 -1
  279. package/src/summary/runningSummarizer.ts +2 -2
  280. package/src/summary/summarizerClientElection.ts +2 -1
  281. package/src/summary/summarizerNode/summarizerNode.ts +19 -29
  282. package/src/summary/summarizerNode/summarizerNodeUtils.ts +2 -1
  283. package/src/summary/summarizerNode/summarizerNodeWithGc.ts +3 -5
  284. package/src/summary/summarizerTypes.ts +2 -7
  285. package/src/summary/summaryCollection.ts +2 -2
  286. package/src/summary/summaryFormat.ts +5 -6
  287. package/src/summary/summaryGenerator.ts +2 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/container-runtime",
3
- "version": "2.0.0-dev-rc.5.0.0.265721",
3
+ "version": "2.0.0-dev-rc.5.0.0.267932",
4
4
  "description": "Fluid container runtime",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -127,19 +127,18 @@
127
127
  "temp-directory": "nyc/.nyc_output"
128
128
  },
129
129
  "dependencies": {
130
- "@fluid-internal/client-utils": "2.0.0-dev-rc.5.0.0.265721",
131
- "@fluidframework/container-definitions": "2.0.0-dev-rc.5.0.0.265721",
132
- "@fluidframework/container-runtime-definitions": "2.0.0-dev-rc.5.0.0.265721",
133
- "@fluidframework/core-interfaces": "2.0.0-dev-rc.5.0.0.265721",
134
- "@fluidframework/core-utils": "2.0.0-dev-rc.5.0.0.265721",
135
- "@fluidframework/datastore": "2.0.0-dev-rc.5.0.0.265721",
136
- "@fluidframework/driver-definitions": "2.0.0-dev-rc.5.0.0.265721",
137
- "@fluidframework/driver-utils": "2.0.0-dev-rc.5.0.0.265721",
138
- "@fluidframework/id-compressor": "2.0.0-dev-rc.5.0.0.265721",
139
- "@fluidframework/protocol-definitions": "^3.2.0",
140
- "@fluidframework/runtime-definitions": "2.0.0-dev-rc.5.0.0.265721",
141
- "@fluidframework/runtime-utils": "2.0.0-dev-rc.5.0.0.265721",
142
- "@fluidframework/telemetry-utils": "2.0.0-dev-rc.5.0.0.265721",
130
+ "@fluid-internal/client-utils": "2.0.0-dev-rc.5.0.0.267932",
131
+ "@fluidframework/container-definitions": "2.0.0-dev-rc.5.0.0.267932",
132
+ "@fluidframework/container-runtime-definitions": "2.0.0-dev-rc.5.0.0.267932",
133
+ "@fluidframework/core-interfaces": "2.0.0-dev-rc.5.0.0.267932",
134
+ "@fluidframework/core-utils": "2.0.0-dev-rc.5.0.0.267932",
135
+ "@fluidframework/datastore": "2.0.0-dev-rc.5.0.0.267932",
136
+ "@fluidframework/driver-definitions": "2.0.0-dev-rc.5.0.0.267932",
137
+ "@fluidframework/driver-utils": "2.0.0-dev-rc.5.0.0.267932",
138
+ "@fluidframework/id-compressor": "2.0.0-dev-rc.5.0.0.267932",
139
+ "@fluidframework/runtime-definitions": "2.0.0-dev-rc.5.0.0.267932",
140
+ "@fluidframework/runtime-utils": "2.0.0-dev-rc.5.0.0.267932",
141
+ "@fluidframework/telemetry-utils": "2.0.0-dev-rc.5.0.0.267932",
143
142
  "@tylerbu/sorted-btree-es6": "^1.8.0",
144
143
  "double-ended-queue": "^2.1.0-0",
145
144
  "lz4js": "^0.2.0",
@@ -148,17 +147,17 @@
148
147
  "devDependencies": {
149
148
  "@arethetypeswrong/cli": "^0.15.2",
150
149
  "@biomejs/biome": "^1.6.2",
151
- "@fluid-internal/mocha-test-setup": "2.0.0-dev-rc.5.0.0.265721",
152
- "@fluid-private/stochastic-test-utils": "2.0.0-dev-rc.5.0.0.265721",
153
- "@fluid-private/test-pairwise-generator": "2.0.0-dev-rc.5.0.0.265721",
150
+ "@fluid-internal/mocha-test-setup": "2.0.0-dev-rc.5.0.0.267932",
151
+ "@fluid-private/stochastic-test-utils": "2.0.0-dev-rc.5.0.0.267932",
152
+ "@fluid-private/test-pairwise-generator": "2.0.0-dev-rc.5.0.0.267932",
154
153
  "@fluid-tools/benchmark": "^0.48.0",
155
154
  "@fluid-tools/build-cli": "^0.39.0-264124",
156
155
  "@fluidframework/build-common": "^2.0.3",
157
156
  "@fluidframework/build-tools": "^0.39.0-264124",
158
157
  "@fluidframework/container-runtime-previous": "npm:@fluidframework/container-runtime@2.0.0-rc.4.0.0",
159
158
  "@fluidframework/eslint-config-fluid": "^5.1.0",
160
- "@fluidframework/test-runtime-utils": "2.0.0-dev-rc.5.0.0.265721",
161
- "@microsoft/api-extractor": "^7.43.1",
159
+ "@fluidframework/test-runtime-utils": "2.0.0-dev-rc.5.0.0.267932",
160
+ "@microsoft/api-extractor": "^7.45.1",
162
161
  "@types/double-ended-queue": "^2.1.0",
163
162
  "@types/mocha": "^9.1.1",
164
163
  "@types/node": "^18.19.0",
@@ -175,7 +174,7 @@
175
174
  "prettier": "~3.0.3",
176
175
  "rimraf": "^4.4.0",
177
176
  "sinon": "^17.0.1",
178
- "typescript": "~5.3.3"
177
+ "typescript": "~5.4.5"
179
178
  },
180
179
  "typeValidation": {
181
180
  "broken": {
@@ -226,6 +225,18 @@
226
225
  "RemovedInterfaceDeclaration_IRetriableFailureResult": {
227
226
  "backCompat": false,
228
227
  "forwardCompat": false
228
+ },
229
+ "InterfaceDeclaration_IGenerateSummaryTreeResult": {
230
+ "backCompat": false
231
+ },
232
+ "InterfaceDeclaration_ISubmitSummaryOpResult": {
233
+ "backCompat": false
234
+ },
235
+ "InterfaceDeclaration_IUploadSummaryResult": {
236
+ "backCompat": false
237
+ },
238
+ "TypeAliasDeclaration_SubmitSummaryResult": {
239
+ "backCompat": false
229
240
  }
230
241
  }
231
242
  },
@@ -7,7 +7,7 @@ import type { EventEmitter } from "@fluid-internal/client-utils";
7
7
  import { performance } from "@fluid-internal/client-utils";
8
8
  import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
9
9
  import { assert } from "@fluidframework/core-utils/internal";
10
- import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
10
+ import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
11
11
  import { ITelemetryLoggerExt, createChildLogger } from "@fluidframework/telemetry-utils/internal";
12
12
 
13
13
  export class BatchTracker {
@@ -14,13 +14,13 @@ import {
14
14
  type IFluidHandleInternal,
15
15
  } from "@fluidframework/core-interfaces/internal";
16
16
  import { assert, Deferred } from "@fluidframework/core-utils/internal";
17
- import { IDocumentStorageService } from "@fluidframework/driver-definitions/internal";
18
- import { canRetryOnError, runWithRetry } from "@fluidframework/driver-utils/internal";
17
+ import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
19
18
  import {
19
+ IDocumentStorageService,
20
20
  ICreateBlobResponse,
21
- ISequencedDocumentMessage,
22
21
  ISnapshotTree,
23
- } from "@fluidframework/protocol-definitions";
22
+ } from "@fluidframework/driver-definitions/internal";
23
+ import { canRetryOnError, runWithRetry } from "@fluidframework/driver-utils/internal";
24
24
  import {
25
25
  IGarbageCollectionData,
26
26
  ISummaryTreeWithStats,
@@ -14,14 +14,14 @@ import {
14
14
  import type { IFluidHandleInternal } from "@fluidframework/core-interfaces/internal";
15
15
  import { assert, Lazy, LazyPromise } from "@fluidframework/core-utils/internal";
16
16
  import { FluidObjectHandle } from "@fluidframework/datastore/internal";
17
+ import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
18
+ import type { ISnapshot } from "@fluidframework/driver-definitions/internal";
19
+ import { ISnapshotTree } from "@fluidframework/driver-definitions/internal";
17
20
  import {
18
21
  buildSnapshotTree,
19
22
  getSnapshotTree,
20
23
  isInstanceOfISnapshot,
21
24
  } from "@fluidframework/driver-utils/internal";
22
- import type { ISnapshot } from "@fluidframework/driver-definitions/internal";
23
- import { ISequencedDocumentMessage, ISnapshotTree } from "@fluidframework/protocol-definitions";
24
- import { IInboundSignalMessage } from "@fluidframework/runtime-definitions";
25
25
  import {
26
26
  ISummaryTreeWithStats,
27
27
  ITelemetryContext,
@@ -40,6 +40,7 @@ import {
40
40
  InboundAttachMessage,
41
41
  NamedFluidDataStoreRegistryEntries,
42
42
  channelsTreeName,
43
+ IInboundSignalMessage,
43
44
  } from "@fluidframework/runtime-definitions/internal";
44
45
  import {
45
46
  GCDataBuilder,
@@ -8,12 +8,9 @@ import { IDeltaManager } from "@fluidframework/container-definitions/internal";
8
8
  import { IContainerRuntimeEvents } from "@fluidframework/container-runtime-definitions/internal";
9
9
  import { IEventProvider } from "@fluidframework/core-interfaces";
10
10
  import { assert } from "@fluidframework/core-utils/internal";
11
+ import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
12
+ import { IDocumentMessage, MessageType } from "@fluidframework/driver-definitions/internal";
11
13
  import { isRuntimeMessage } from "@fluidframework/driver-utils/internal";
12
- import {
13
- IDocumentMessage,
14
- ISequencedDocumentMessage,
15
- MessageType,
16
- } from "@fluidframework/protocol-definitions";
17
14
  import {
18
15
  IEventSampler,
19
16
  ITelemetryLoggerExt,
@@ -95,6 +92,13 @@ class OpPerfTelemetry {
95
92
  private readonly deltaLatencyLogger: ISampledTelemetryLogger;
96
93
 
97
94
  private static readonly PROCESSED_OPS_SAMPLE_RATE = 500;
95
+
96
+ /**
97
+ * A sampled logger to log Ops that have been processed by the current client, the NoOp sent and the
98
+ * size of the ops processed within one sampling window of this log event.
99
+ * The data from this logger will be used to monitor the efficiency of NoOp-heuristics or to get approximate collab window size.
100
+ * Note: no log events are sent when sampling is disabled, because logging at every op will be too noisy.
101
+ */
98
102
  private readonly opsLogger: ISampledTelemetryLogger;
99
103
 
100
104
  /**
@@ -167,7 +171,11 @@ class OpPerfTelemetry {
167
171
  },
168
172
  };
169
173
  })();
170
- this.opsLogger = createSampledLogger(logger, opsEventSampler);
174
+ this.opsLogger = createSampledLogger(
175
+ logger,
176
+ opsEventSampler,
177
+ true /* skipLoggingWhenSamplingIsDisabled */,
178
+ );
171
179
 
172
180
  this.deltaManager.on("pong", (latency) => this.recordPingTime(latency));
173
181
  this.deltaManager.on("submitOp", (message) => this.beforeOpSubmit(message));
@@ -44,11 +44,23 @@ import {
44
44
  PromiseCache,
45
45
  delay,
46
46
  } from "@fluidframework/core-utils/internal";
47
+ import {
48
+ IClientDetails,
49
+ IQuorumClients,
50
+ ISequencedDocumentMessage,
51
+ ISignalMessage,
52
+ ISummaryTree,
53
+ SummaryType,
54
+ } from "@fluidframework/driver-definitions";
47
55
  import {
48
56
  DriverHeader,
49
57
  FetchSource,
50
58
  IDocumentStorageService,
51
59
  type ISnapshot,
60
+ IDocumentMessage,
61
+ ISnapshotTree,
62
+ ISummaryContent,
63
+ MessageType,
52
64
  } from "@fluidframework/driver-definitions/internal";
53
65
  import { readAndParse } from "@fluidframework/driver-utils/internal";
54
66
  import type { IIdCompressor } from "@fluidframework/id-compressor";
@@ -58,19 +70,6 @@ import type {
58
70
  SerializedIdCompressorWithNoSession,
59
71
  SerializedIdCompressorWithOngoingSession,
60
72
  } from "@fluidframework/id-compressor/internal";
61
- import {
62
- IClientDetails,
63
- IDocumentMessage,
64
- IQuorumClients,
65
- ISequencedDocumentMessage,
66
- ISignalMessage,
67
- ISnapshotTree,
68
- ISummaryContent,
69
- ISummaryTree,
70
- MessageType,
71
- SummaryType,
72
- } from "@fluidframework/protocol-definitions";
73
- import { IInboundSignalMessage } from "@fluidframework/runtime-definitions";
74
73
  import {
75
74
  ISummaryTreeWithStats,
76
75
  ITelemetryContext,
@@ -88,6 +87,7 @@ import {
88
87
  SummarizeInternalFn,
89
88
  channelsTreeName,
90
89
  gcTreeKey,
90
+ IInboundSignalMessage,
91
91
  } from "@fluidframework/runtime-definitions/internal";
92
92
  import {
93
93
  GCDataBuilder,
@@ -2227,7 +2227,7 @@ export class ContainerRuntime
2227
2227
  );
2228
2228
 
2229
2229
  // Is document schema explicit control on?
2230
- const explitiSchemaControl = documentSchema?.runtime.explicitSchemaControl;
2230
+ const explicitSchemaControl = documentSchema?.runtime.explicitSchemaControl;
2231
2231
 
2232
2232
  const metadata: IContainerRuntimeMetadata = {
2233
2233
  ...this.createContainerMetadata,
@@ -2241,10 +2241,10 @@ export class ContainerRuntime
2241
2241
  // runtimes (that preceed document schema control capabilities) to close container on load due to mismatch in
2242
2242
  // last message's sequence number.
2243
2243
  // See also lastMessageFromMetadata()
2244
- message: explitiSchemaControl
2244
+ message: explicitSchemaControl
2245
2245
  ? ({ sequenceNumber: -1 } as any as ISummaryMetadataMessage)
2246
2246
  : message,
2247
- lastMessage: explitiSchemaControl ? message : undefined,
2247
+ lastMessage: explicitSchemaControl ? message : undefined,
2248
2248
  documentSchema,
2249
2249
  };
2250
2250
 
@@ -3614,12 +3614,9 @@ export class ContainerRuntime
3614
3614
 
3615
3615
  const trace = Trace.start();
3616
3616
  let summarizeResult: ISummaryTreeWithStats;
3617
- // If the GC state needs to be reset, we need to force a full tree summary and update the unreferenced
3618
- // state of all the nodes.
3619
- const forcedFullTree = this.garbageCollector.summaryStateNeedsReset;
3620
3617
  try {
3621
3618
  summarizeResult = await this.summarize({
3622
- fullTree: fullTree || forcedFullTree,
3619
+ fullTree,
3623
3620
  trackState: true,
3624
3621
  summaryLogger: summaryNumberLogger,
3625
3622
  runGC: this.garbageCollector.shouldRunGC,
@@ -3696,7 +3693,6 @@ export class ContainerRuntime
3696
3693
  summaryTree,
3697
3694
  summaryStats,
3698
3695
  generateDuration: trace.trace().duration,
3699
- forcedFullTree,
3700
3696
  } as const;
3701
3697
 
3702
3698
  continueResult = checkContinue();
@@ -16,9 +16,17 @@ import {
16
16
  } from "@fluidframework/core-interfaces";
17
17
  import { type IFluidHandleInternal } from "@fluidframework/core-interfaces/internal";
18
18
  import { assert, LazyPromise, unreachableCase } from "@fluidframework/core-utils/internal";
19
+ import {
20
+ IClientDetails,
21
+ IQuorumClients,
22
+ ISequencedDocumentMessage,
23
+ } from "@fluidframework/driver-definitions";
19
24
  import {
20
25
  IDocumentStorageService,
21
26
  type ISnapshot,
27
+ IDocumentMessage,
28
+ ISnapshotTree,
29
+ ITreeEntry,
22
30
  } from "@fluidframework/driver-definitions/internal";
23
31
  import {
24
32
  BlobTreeEntry,
@@ -26,15 +34,6 @@ import {
26
34
  readAndParse,
27
35
  } from "@fluidframework/driver-utils/internal";
28
36
  import type { IIdCompressor } from "@fluidframework/id-compressor";
29
- import {
30
- IClientDetails,
31
- IDocumentMessage,
32
- IQuorumClients,
33
- ISequencedDocumentMessage,
34
- ISnapshotTree,
35
- ITreeEntry,
36
- } from "@fluidframework/protocol-definitions";
37
- import { IInboundSignalMessage } from "@fluidframework/runtime-definitions";
38
37
  import {
39
38
  ISummaryTreeWithStats,
40
39
  ITelemetryContext,
@@ -57,6 +56,7 @@ import {
57
56
  SummarizeInternalFn,
58
57
  channelsTreeName,
59
58
  gcDataBlobKey,
59
+ IInboundSignalMessage,
60
60
  } from "@fluidframework/runtime-definitions/internal";
61
61
  import {
62
62
  addBlobToSummary,
@@ -292,7 +292,7 @@ export abstract class FluidDataStoreContext
292
292
  // We know that if the base snapshot is omitted, then the isRootDataStore flag is not set.
293
293
  // That means we can skip the expensive call to getInitialSnapshotDetails for virtualized datastores,
294
294
  // and get the information from the alias map directly.
295
- if (aliasedDataStores !== undefined && this.baseSnapshot?.omitted === true) {
295
+ if (aliasedDataStores !== undefined && (this.baseSnapshot as any)?.omitted === true) {
296
296
  return aliasedDataStores.has(this.id);
297
297
  }
298
298
 
@@ -13,17 +13,19 @@ import type {
13
13
  ReadOnlyInfo,
14
14
  } from "@fluidframework/container-definitions/internal";
15
15
  import type { IErrorBase } from "@fluidframework/core-interfaces";
16
- import type { IAnyDriverError } from "@fluidframework/driver-definitions/internal";
17
16
  import {
18
- IClientConfiguration,
19
17
  IClientDetails,
20
- IDocumentMessage,
21
18
  ISequencedDocumentMessage,
22
19
  ISignalMessage,
23
- } from "@fluidframework/protocol-definitions";
20
+ } from "@fluidframework/driver-definitions";
21
+ import type { IAnyDriverError } from "@fluidframework/driver-definitions/internal";
22
+ import {
23
+ IClientConfiguration,
24
+ IDocumentMessage,
25
+ } from "@fluidframework/driver-definitions/internal";
24
26
 
25
- import { summarizerClientType } from "./summary/index.js";
26
27
  import type { PendingStateManager } from "./pendingStateManager.js";
28
+ import { summarizerClientType } from "./summary/index.js";
27
29
 
28
30
  /**
29
31
  * Base class for DeltaManager proxy that proxy's access to the real DeltaManager.
@@ -5,7 +5,8 @@
5
5
 
6
6
  import { performance } from "@fluid-internal/client-utils";
7
7
  import { IDeltaManager } from "@fluidframework/container-definitions/internal";
8
- import { IDocumentMessage, ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
8
+ import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
9
+ import { IDocumentMessage } from "@fluidframework/driver-definitions/internal";
9
10
  import { ITelemetryLoggerExt, formatTick } from "@fluidframework/telemetry-utils/internal";
10
11
 
11
12
  /**
@@ -96,7 +96,7 @@ export class GarbageCollector implements IGarbageCollector {
96
96
  private readonly configs: IGarbageCollectorConfigs;
97
97
 
98
98
  public get shouldRunGC(): boolean {
99
- return this.configs.shouldRunGC;
99
+ return this.configs.gcEnabled;
100
100
  }
101
101
 
102
102
  public readonly sessionExpiryTimerStarted: number | undefined;
@@ -159,10 +159,6 @@ export class GarbageCollector implements IGarbageCollector {
159
159
 
160
160
  private readonly submitMessage: (message: ContainerRuntimeGCMessage) => void;
161
161
 
162
- public get summaryStateNeedsReset(): boolean {
163
- return this.summaryStateTracker.doesSummaryStateNeedReset;
164
- }
165
-
166
162
  /** Returns the count of data stores whose GC state updated since the last summary. */
167
163
  public get updatedDSCountSinceLastSummary(): number {
168
164
  return this.summaryStateTracker.updatedDSCountSinceLastSummary;
@@ -217,10 +213,7 @@ export class GarbageCollector implements IGarbageCollector {
217
213
  this.sessionExpiryTimerStarted = Date.now();
218
214
  }
219
215
 
220
- this.summaryStateTracker = new GCSummaryStateTracker(
221
- this.configs,
222
- baseSnapshot?.trees[gcTreeKey] !== undefined /* wasGCRunInBaseSnapshot */,
223
- );
216
+ this.summaryStateTracker = new GCSummaryStateTracker(this.configs);
224
217
 
225
218
  this.telemetryTracker = new GCTelemetryTracker(
226
219
  this.mc,
@@ -334,6 +327,10 @@ export class GarbageCollector implements IGarbageCollector {
334
327
  return {};
335
328
  }
336
329
 
330
+ // Note that the base GC details are returned even if GC is disabled. This is to handle the special scenario
331
+ // where GC is disabled but GC state exists in base snapshot. In this scenario, the nodes which get the GC
332
+ // state will re-summarize to reset any GC specific state in their summaries (like unreferenced flag).
333
+
337
334
  const gcNodes: { [id: string]: string[] } = {};
338
335
  for (const [nodeId, nodeData] of Object.entries(baseSnapshotData.gcState.gcNodes)) {
339
336
  gcNodes[nodeId] = Array.from(nodeData.outboundRoutes);
@@ -374,7 +371,7 @@ export class GarbageCollector implements IGarbageCollector {
374
371
  return;
375
372
  }
376
373
 
377
- // Initialize the deleted nodes from the snapshot. This is done irrespective of whether sweep is enabled or not
374
+ // Initialize the deleted nodes from the snapshot. This is done irrespective of whether GC / sweep is enabled
378
375
  // to identify deleted nodes' usage.
379
376
  if (baseSnapshotData.deletedNodes !== undefined) {
380
377
  this.deletedNodes = new Set(baseSnapshotData.deletedNodes);
@@ -440,7 +437,7 @@ export class GarbageCollector implements IGarbageCollector {
440
437
  * with an older reference timestamp. So, doing this on every connection will keep the unreferenced state
441
438
  * tracking up-to-date.
442
439
  */
443
- if (connected && this.configs.shouldRunGC) {
440
+ if (connected && this.shouldRunGC) {
444
441
  this.initializeOrUpdateGCState().catch((error) => {
445
442
  this.mc.logger.sendErrorEvent(
446
443
  {
@@ -480,8 +477,7 @@ export class GarbageCollector implements IGarbageCollector {
480
477
  const fullGC =
481
478
  options.fullGC ??
482
479
  (this.configs.runFullGC === true ||
483
- this.summaryStateTracker.autoRecovery.fullGCRequested() ||
484
- this.summaryStateTracker.doesSummaryStateNeedReset);
480
+ this.summaryStateTracker.autoRecovery.fullGCRequested());
485
481
 
486
482
  // Add the options that are used to run GC to the telemetry context.
487
483
  telemetryContext?.setMultiple("fluid_GC", "Options", {
@@ -489,14 +485,12 @@ export class GarbageCollector implements IGarbageCollector {
489
485
  runSweep: options.runSweep,
490
486
  });
491
487
 
492
- const logger = options.logger
493
- ? createChildLogger({
494
- logger: options.logger,
495
- properties: {
496
- all: { completedGCRuns: () => this.completedRuns },
497
- },
498
- })
499
- : this.mc.logger;
488
+ const logger = createChildLogger({
489
+ logger: options.logger ?? this.mc.logger,
490
+ properties: {
491
+ all: { completedGCRuns: this.completedRuns, fullGC },
492
+ },
493
+ });
500
494
 
501
495
  /**
502
496
  * If there is no current reference timestamp, skip running GC. We need the current timestamp to track
@@ -855,7 +849,7 @@ export class GarbageCollector implements IGarbageCollector {
855
849
  trackState: boolean,
856
850
  telemetryContext?: ITelemetryContext,
857
851
  ): ISummarizeResult | undefined {
858
- if (!this.configs.shouldRunGC || this.gcDataFromLastRun === undefined) {
852
+ if (!this.shouldRunGC || this.gcDataFromLastRun === undefined) {
859
853
  return;
860
854
  }
861
855
 
@@ -998,7 +992,7 @@ export class GarbageCollector implements IGarbageCollector {
998
992
  request,
999
993
  headerData,
1000
994
  }: IGCNodeUpdatedProps) {
1001
- if (!this.configs.shouldRunGC) {
995
+ if (!this.shouldRunGC) {
1002
996
  return;
1003
997
  }
1004
998
 
@@ -1107,7 +1101,7 @@ export class GarbageCollector implements IGarbageCollector {
1107
1101
  * @param autorecovery - This reference is added artificially, for autorecovery. Used for logging.
1108
1102
  */
1109
1103
  public addedOutboundReference(fromNodePath: string, toNodePath: string, autorecovery?: true) {
1110
- if (!this.configs.shouldRunGC) {
1104
+ if (!this.shouldRunGC) {
1111
1105
  return;
1112
1106
  }
1113
1107
 
@@ -28,7 +28,6 @@ import {
28
28
  gcTestModeKey,
29
29
  maxSnapshotCacheExpiryMs,
30
30
  oneDayMs,
31
- runGCTestKey,
32
31
  runSessionExpiryKey,
33
32
  runSweepKey,
34
33
  throwOnTombstoneLoadOverrideKey,
@@ -54,7 +53,7 @@ export function generateGCConfigs(
54
53
  isSummarizerClient: boolean;
55
54
  },
56
55
  ): IGarbageCollectorConfigs {
57
- let gcDisabled: boolean = false;
56
+ let gcEnabled: boolean = true;
58
57
  let sessionExpiryTimeoutMs: number | undefined;
59
58
  let tombstoneTimeoutMs: number | undefined;
60
59
  let persistedGcFeatureMatrix: GCFeatureMatrix | undefined;
@@ -72,7 +71,7 @@ export function generateGCConfigs(
72
71
  gcVersionInBaseSnapshot = getGCVersion(metadata);
73
72
  // Existing documents which did not have metadata blob or had GC disabled have GC version as 0. GC will be
74
73
  // disabled for these documents.
75
- gcDisabled = gcVersionInBaseSnapshot === 0;
74
+ gcEnabled = gcVersionInBaseSnapshot !== 0;
76
75
  sessionExpiryTimeoutMs = metadata?.sessionExpiryTimeoutMs;
77
76
  const legacyPersistedSweepTimeoutMs = (metadata as IGCMetadata_Deprecated)?.sweepTimeoutMs;
78
77
  tombstoneTimeoutMs =
@@ -108,23 +107,6 @@ export function generateGCConfigs(
108
107
  createParams.gcOptions[gcGenerationOptionName] /* currentGeneration */,
109
108
  );
110
109
 
111
- const gcVersionInEffect = getGCVersionInEffect(mc.config);
112
-
113
- // The GC version is up-to-date if the GC version in effect is at least equal to the GC version in base snapshot.
114
- // If it is not up-to-date, there is a newer version of GC out there which is more reliable than this. So, GC
115
- // should not run as it may produce incorrect / unreliable state.
116
- const isGCVersionUpToDate =
117
- gcVersionInBaseSnapshot === undefined || gcVersionInEffect >= gcVersionInBaseSnapshot;
118
-
119
- /**
120
- * Whether GC should run or not. The following conditions have to be met to run sweep:
121
- * 1. GC should not be disabled for this container.
122
- * 2. The current GC version should be greater or equal to the GC version in the base snapshot.
123
- *
124
- * These conditions can be overridden via the RunGC feature flag for testing.
125
- */
126
- const shouldRunGC = mc.config.getBoolean(runGCTestKey) ?? (!gcDisabled && isGCVersionUpToDate);
127
-
128
110
  /**
129
111
  * Whether sweep should run or not. This refers to whether Tombstones should fail on load and whether
130
112
  * sweep-ready nodes should be deleted.
@@ -137,7 +119,7 @@ export function generateGCConfigs(
137
119
  * These conditions can be overridden via the RunSweep feature flag.
138
120
  */
139
121
  const sweepEnabled: boolean =
140
- !shouldRunGC || tombstoneTimeoutMs === undefined
122
+ !gcEnabled || tombstoneTimeoutMs === undefined
141
123
  ? false
142
124
  : mc.config.getBoolean(runSweepKey) ??
143
125
  (sweepAllowed && createParams.gcOptions.enableGCSweep === true);
@@ -188,9 +170,8 @@ export function generateGCConfigs(
188
170
  !createParams.isSummarizerClient;
189
171
 
190
172
  return {
191
- gcEnabled: !gcDisabled, // For this document
173
+ gcEnabled, // For this document
192
174
  sweepEnabled: sweepAllowed, // For this document (based on current GC Generation option)
193
- shouldRunGC, // For this session
194
175
  shouldRunSweep, // For this session
195
176
  runFullGC,
196
177
  testMode,
@@ -201,7 +182,7 @@ export function generateGCConfigs(
201
182
  inactiveTimeoutMs,
202
183
  persistedGcFeatureMatrix,
203
184
  gcVersionInBaseSnapshot,
204
- gcVersionInEffect,
185
+ gcVersionInEffect: getGCVersionInEffect(mc.config),
205
186
  throwOnInactiveLoad,
206
187
  throwOnTombstoneLoad,
207
188
  throwOnTombstoneUsage,
@@ -5,7 +5,7 @@
5
5
 
6
6
  import { ICriticalContainerError } from "@fluidframework/container-definitions";
7
7
  import { IRequest } from "@fluidframework/core-interfaces";
8
- import { ISnapshotTree } from "@fluidframework/protocol-definitions";
8
+ import { ISnapshotTree } from "@fluidframework/driver-definitions/internal";
9
9
  import {
10
10
  ITelemetryContext,
11
11
  IGarbageCollectionData,
@@ -81,8 +81,6 @@ export const disableDatastoreSweepKey = "Fluid.GarbageCollection.DisableDataStor
81
81
  export const detectOutboundRoutesViaDDSKey = "Fluid.GarbageCollection.DetectOutboundRoutesViaDDS";
82
82
  /** Config key to disable auto-recovery mechanism that protects Tombstones that are loaded from being swept (use true) */
83
83
  export const disableAutoRecoveryKey = "Fluid.GarbageCollection.DisableAutoRecovery";
84
- /** Config key to turn GC on / off for testing. */
85
- export const runGCTestKey = "Fluid.GarbageCollection.Test.RunGC";
86
84
 
87
85
  // One day in milliseconds.
88
86
  export const oneDayMs = 1 * 24 * 60 * 60 * 1000;
@@ -334,8 +332,6 @@ export interface IGarbageCollector {
334
332
  readonly sessionExpiryTimerStarted: number | undefined;
335
333
  /** Tells whether GC should run or not. */
336
334
  readonly shouldRunGC: boolean;
337
- /** Tells whether the GC state in summary needs to be reset in the next summary. */
338
- readonly summaryStateNeedsReset: boolean;
339
335
  /** The count of data stores whose GC state updated since the last summary. */
340
336
  readonly updatedDSCountSinceLastSummary: number;
341
337
  /** Tells whether tombstone feature is enabled and enforced. */
@@ -472,11 +468,6 @@ export interface IGarbageCollectorConfigs {
472
468
  * throughout its lifetime.
473
469
  */
474
470
  readonly sweepEnabled: boolean;
475
- /**
476
- * Tracks if GC should run or not. Even if GC is enabled for a document (see gcEnabled), it can be explicitly
477
- * disabled via runtime options or feature flags.
478
- */
479
- readonly shouldRunGC: boolean;
480
471
  /**
481
472
  * Tracks if sweep phase should run or not, or if it should run only for attachment blobs.
482
473
  * Even if the sweep phase is allowed for a document (see sweepEnabled), it may be disabled or partially enabled
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  import { assert } from "@fluidframework/core-utils/internal";
7
- import { ISnapshotTree } from "@fluidframework/protocol-definitions";
7
+ import { ISnapshotTree } from "@fluidframework/driver-definitions/internal";
8
8
  import {
9
9
  IGarbageCollectionDetailsBase,
10
10
  gcBlobPrefix,