@fluidframework/container-runtime 2.0.0-internal.8.0.1 → 2.0.0-rc.1.0.1

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 (447) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +1 -7
  3. package/api-extractor-esm.json +4 -0
  4. package/api-extractor-lint.json +1 -10
  5. package/api-extractor.json +1 -9
  6. package/api-report/container-runtime.api.md +18 -17
  7. package/dist/blobManager.d.ts +8 -3
  8. package/dist/blobManager.d.ts.map +1 -1
  9. package/dist/blobManager.js +15 -4
  10. package/dist/blobManager.js.map +1 -1
  11. package/dist/container-runtime-alpha.d.ts +265 -17
  12. package/dist/container-runtime-beta.d.ts +0 -42
  13. package/dist/container-runtime-public.d.ts +0 -42
  14. package/dist/container-runtime-untrimmed.d.ts +32 -17
  15. package/dist/containerRuntime.d.ts +8 -4
  16. package/dist/containerRuntime.d.ts.map +1 -1
  17. package/dist/containerRuntime.js +15 -29
  18. package/dist/containerRuntime.js.map +1 -1
  19. package/dist/dataStoreContext.d.ts +5 -2
  20. package/dist/dataStoreContext.d.ts.map +1 -1
  21. package/dist/dataStoreContext.js +10 -3
  22. package/dist/dataStoreContext.js.map +1 -1
  23. package/dist/dataStores.d.ts +10 -3
  24. package/dist/dataStores.d.ts.map +1 -1
  25. package/dist/dataStores.js +51 -8
  26. package/dist/dataStores.js.map +1 -1
  27. package/dist/gc/garbageCollection.d.ts.map +1 -1
  28. package/dist/gc/garbageCollection.js +15 -4
  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 +26 -19
  32. package/dist/gc/gcConfigs.js.map +1 -1
  33. package/dist/gc/gcDefinitions.d.ts +29 -6
  34. package/dist/gc/gcDefinitions.d.ts.map +1 -1
  35. package/dist/gc/gcDefinitions.js +5 -3
  36. package/dist/gc/gcDefinitions.js.map +1 -1
  37. package/dist/gc/gcTelemetry.d.ts +13 -6
  38. package/dist/gc/gcTelemetry.d.ts.map +1 -1
  39. package/dist/gc/gcTelemetry.js +18 -9
  40. package/dist/gc/gcTelemetry.js.map +1 -1
  41. package/dist/gc/index.d.ts +1 -1
  42. package/dist/gc/index.d.ts.map +1 -1
  43. package/dist/gc/index.js +2 -1
  44. package/dist/gc/index.js.map +1 -1
  45. package/dist/messageTypes.d.ts +1 -1
  46. package/dist/messageTypes.js +1 -1
  47. package/dist/messageTypes.js.map +1 -1
  48. package/dist/opLifecycle/definitions.d.ts +1 -1
  49. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  50. package/dist/opLifecycle/definitions.js.map +1 -1
  51. package/dist/opLifecycle/outbox.d.ts +4 -4
  52. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  53. package/dist/opLifecycle/outbox.js +4 -1
  54. package/dist/opLifecycle/outbox.js.map +1 -1
  55. package/dist/packageVersion.d.ts +1 -1
  56. package/dist/packageVersion.d.ts.map +1 -1
  57. package/dist/packageVersion.js +1 -1
  58. package/dist/packageVersion.js.map +1 -1
  59. package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -1
  60. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  61. package/dist/summary/runningSummarizer.d.ts +5 -0
  62. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  63. package/dist/summary/runningSummarizer.js +46 -17
  64. package/dist/summary/runningSummarizer.js.map +1 -1
  65. package/dist/summary/summarizer.d.ts +1 -1
  66. package/dist/summary/summarizer.js +1 -1
  67. package/dist/summary/summarizer.js.map +1 -1
  68. package/dist/summary/summarizerTypes.d.ts +3 -1
  69. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  70. package/dist/summary/summarizerTypes.js.map +1 -1
  71. package/dist/summary/summaryCollection.d.ts +7 -7
  72. package/dist/summary/summaryCollection.js +1 -1
  73. package/dist/summary/summaryCollection.js.map +1 -1
  74. package/lib/{batchTracker.d.ts → batchTracker.d.mts} +1 -1
  75. package/lib/batchTracker.d.mts.map +1 -0
  76. package/lib/{batchTracker.js → batchTracker.mjs} +1 -1
  77. package/lib/batchTracker.mjs.map +1 -0
  78. package/lib/{blobManager.d.ts → blobManager.d.mts} +9 -4
  79. package/lib/blobManager.d.mts.map +1 -0
  80. package/lib/{blobManager.js → blobManager.mjs} +17 -6
  81. package/lib/blobManager.mjs.map +1 -0
  82. package/lib/{connectionTelemetry.d.ts → connectionTelemetry.d.mts} +1 -1
  83. package/lib/connectionTelemetry.d.mts.map +1 -0
  84. package/lib/{connectionTelemetry.js → connectionTelemetry.mjs} +1 -1
  85. package/lib/connectionTelemetry.mjs.map +1 -0
  86. package/lib/{container-runtime-alpha.d.ts → container-runtime-alpha.d.mts} +265 -17
  87. package/lib/{container-runtime-beta.d.ts → container-runtime-beta.d.mts} +0 -42
  88. package/lib/{container-runtime-public.d.ts → container-runtime-public.d.mts} +0 -42
  89. package/lib/{container-runtime-untrimmed.d.ts → container-runtime-untrimmed.d.mts} +32 -17
  90. package/lib/{containerHandleContext.d.ts → containerHandleContext.d.mts} +2 -2
  91. package/lib/containerHandleContext.d.mts.map +1 -0
  92. package/lib/{containerHandleContext.js → containerHandleContext.mjs} +1 -1
  93. package/lib/containerHandleContext.mjs.map +1 -0
  94. package/lib/{containerRuntime.d.ts → containerRuntime.d.mts} +14 -14
  95. package/lib/containerRuntime.d.mts.map +1 -0
  96. package/lib/{containerRuntime.js → containerRuntime.mjs} +31 -22
  97. package/lib/containerRuntime.mjs.map +1 -0
  98. package/lib/{dataStore.d.ts → dataStore.d.mts} +3 -3
  99. package/lib/dataStore.d.mts.map +1 -0
  100. package/lib/{dataStore.js → dataStore.mjs} +1 -1
  101. package/lib/dataStore.mjs.map +1 -0
  102. package/lib/{dataStoreContext.d.ts → dataStoreContext.d.mts} +7 -4
  103. package/lib/dataStoreContext.d.mts.map +1 -0
  104. package/lib/{dataStoreContext.js → dataStoreContext.mjs} +13 -6
  105. package/lib/dataStoreContext.mjs.map +1 -0
  106. package/lib/{dataStoreContexts.d.ts → dataStoreContexts.d.mts} +2 -2
  107. package/lib/dataStoreContexts.d.mts.map +1 -0
  108. package/lib/{dataStoreContexts.js → dataStoreContexts.mjs} +1 -1
  109. package/lib/dataStoreContexts.mjs.map +1 -0
  110. package/lib/{dataStoreRegistry.d.ts → dataStoreRegistry.d.mts} +1 -1
  111. package/lib/dataStoreRegistry.d.mts.map +1 -0
  112. package/lib/{dataStoreRegistry.js → dataStoreRegistry.mjs} +1 -5
  113. package/lib/dataStoreRegistry.mjs.map +1 -0
  114. package/lib/{dataStores.d.ts → dataStores.d.mts} +17 -10
  115. package/lib/dataStores.d.mts.map +1 -0
  116. package/lib/{dataStores.js → dataStores.mjs} +58 -16
  117. package/lib/dataStores.mjs.map +1 -0
  118. package/lib/{deltaManagerProxyBase.d.ts → deltaManagerProxyBase.d.mts} +1 -1
  119. package/lib/deltaManagerProxyBase.d.mts.map +1 -0
  120. package/lib/{deltaManagerProxyBase.js → deltaManagerProxyBase.mjs} +1 -1
  121. package/lib/deltaManagerProxyBase.mjs.map +1 -0
  122. package/lib/{deltaManagerSummarizerProxy.d.ts → deltaManagerSummarizerProxy.d.mts} +2 -2
  123. package/lib/deltaManagerSummarizerProxy.d.mts.map +1 -0
  124. package/lib/{deltaManagerSummarizerProxy.js → deltaManagerSummarizerProxy.mjs} +3 -3
  125. package/lib/deltaManagerSummarizerProxy.mjs.map +1 -0
  126. package/lib/{deltaScheduler.d.ts → deltaScheduler.d.mts} +1 -1
  127. package/lib/deltaScheduler.d.mts.map +1 -0
  128. package/lib/{deltaScheduler.js → deltaScheduler.mjs} +1 -1
  129. package/lib/deltaScheduler.mjs.map +1 -0
  130. package/lib/{error.d.ts → error.d.mts} +1 -1
  131. package/lib/error.d.mts.map +1 -0
  132. package/lib/{error.js → error.mjs} +1 -1
  133. package/lib/error.mjs.map +1 -0
  134. package/lib/gc/{garbageCollection.d.ts → garbageCollection.d.mts} +5 -5
  135. package/lib/gc/garbageCollection.d.mts.map +1 -0
  136. package/lib/gc/{garbageCollection.js → garbageCollection.mjs} +28 -17
  137. package/lib/gc/garbageCollection.mjs.map +1 -0
  138. package/lib/gc/{gcConfigs.d.ts → gcConfigs.d.mts} +3 -3
  139. package/lib/gc/gcConfigs.d.mts.map +1 -0
  140. package/lib/gc/{gcConfigs.js → gcConfigs.mjs} +29 -22
  141. package/lib/gc/gcConfigs.mjs.map +1 -0
  142. package/lib/gc/{gcDefinitions.d.ts → gcDefinitions.d.mts} +33 -10
  143. package/lib/gc/gcDefinitions.d.mts.map +1 -0
  144. package/lib/gc/{gcDefinitions.js → gcDefinitions.mjs} +5 -3
  145. package/lib/gc/gcDefinitions.mjs.map +1 -0
  146. package/lib/gc/{gcHelpers.d.ts → gcHelpers.d.mts} +3 -3
  147. package/lib/gc/{gcHelpers.d.ts.map → gcHelpers.d.mts.map} +1 -1
  148. package/lib/gc/{gcHelpers.js → gcHelpers.mjs} +1 -1
  149. package/lib/gc/gcHelpers.mjs.map +1 -0
  150. package/lib/gc/{gcReferenceGraphAlgorithm.d.ts → gcReferenceGraphAlgorithm.d.mts} +2 -2
  151. package/lib/gc/gcReferenceGraphAlgorithm.d.mts.map +1 -0
  152. package/lib/gc/{gcReferenceGraphAlgorithm.js → gcReferenceGraphAlgorithm.mjs} +1 -1
  153. package/lib/gc/gcReferenceGraphAlgorithm.mjs.map +1 -0
  154. package/lib/gc/{gcSummaryDefinitions.d.ts → gcSummaryDefinitions.d.mts} +1 -1
  155. package/lib/gc/gcSummaryDefinitions.d.mts.map +1 -0
  156. package/lib/gc/{gcSummaryDefinitions.js → gcSummaryDefinitions.mjs} +1 -1
  157. package/lib/gc/gcSummaryDefinitions.mjs.map +1 -0
  158. package/lib/gc/{gcSummaryStateTracker.d.ts → gcSummaryStateTracker.d.mts} +4 -4
  159. package/lib/gc/gcSummaryStateTracker.d.mts.map +1 -0
  160. package/lib/gc/{gcSummaryStateTracker.js → gcSummaryStateTracker.mjs} +2 -2
  161. package/lib/gc/gcSummaryStateTracker.mjs.map +1 -0
  162. package/lib/gc/{gcTelemetry.d.ts → gcTelemetry.d.mts} +18 -11
  163. package/lib/gc/gcTelemetry.d.mts.map +1 -0
  164. package/lib/gc/{gcTelemetry.js → gcTelemetry.mjs} +20 -11
  165. package/lib/gc/gcTelemetry.mjs.map +1 -0
  166. package/lib/gc/{gcUnreferencedStateTracker.d.ts → gcUnreferencedStateTracker.d.mts} +2 -2
  167. package/lib/gc/gcUnreferencedStateTracker.d.mts.map +1 -0
  168. package/lib/gc/{gcUnreferencedStateTracker.js → gcUnreferencedStateTracker.mjs} +2 -2
  169. package/lib/gc/gcUnreferencedStateTracker.mjs.map +1 -0
  170. package/lib/gc/{index.d.ts → index.d.mts} +9 -9
  171. package/lib/gc/index.d.mts.map +1 -0
  172. package/lib/gc/{index.js → index.mjs} +8 -8
  173. package/lib/gc/index.mjs.map +1 -0
  174. package/lib/{index.d.ts → index.d.mts} +8 -8
  175. package/lib/index.d.mts.map +1 -0
  176. package/lib/{index.js → index.mjs} +7 -9
  177. package/lib/index.mjs.map +1 -0
  178. package/lib/{messageTypes.d.ts → messageTypes.d.mts} +5 -5
  179. package/lib/messageTypes.d.mts.map +1 -0
  180. package/lib/{messageTypes.js → messageTypes.mjs} +2 -2
  181. package/lib/messageTypes.mjs.map +1 -0
  182. package/lib/{metadata.d.ts → metadata.d.mts} +1 -1
  183. package/lib/metadata.d.mts.map +1 -0
  184. package/lib/{metadata.js → metadata.mjs} +1 -1
  185. package/lib/metadata.mjs.map +1 -0
  186. package/lib/opLifecycle/{batchManager.d.ts → batchManager.d.mts} +3 -3
  187. package/lib/opLifecycle/batchManager.d.mts.map +1 -0
  188. package/lib/opLifecycle/{batchManager.js → batchManager.mjs} +1 -1
  189. package/lib/opLifecycle/batchManager.mjs.map +1 -0
  190. package/lib/opLifecycle/{definitions.d.ts → definitions.d.mts} +3 -3
  191. package/lib/opLifecycle/definitions.d.mts.map +1 -0
  192. package/lib/opLifecycle/{definitions.js → definitions.mjs} +1 -1
  193. package/lib/opLifecycle/definitions.mjs.map +1 -0
  194. package/lib/opLifecycle/index.d.mts +13 -0
  195. package/lib/opLifecycle/index.d.mts.map +1 -0
  196. package/lib/opLifecycle/index.mjs +12 -0
  197. package/lib/opLifecycle/index.mjs.map +1 -0
  198. package/lib/opLifecycle/{opCompressor.d.ts → opCompressor.d.mts} +2 -2
  199. package/lib/opLifecycle/opCompressor.d.mts.map +1 -0
  200. package/lib/opLifecycle/{opCompressor.js → opCompressor.mjs} +3 -3
  201. package/lib/opLifecycle/opCompressor.mjs.map +1 -0
  202. package/lib/opLifecycle/{opDecompressor.d.ts → opDecompressor.d.mts} +2 -2
  203. package/lib/opLifecycle/opDecompressor.d.mts.map +1 -0
  204. package/lib/opLifecycle/{opDecompressor.js → opDecompressor.mjs} +2 -2
  205. package/lib/opLifecycle/opDecompressor.mjs.map +1 -0
  206. package/lib/opLifecycle/{opGroupingManager.d.ts → opGroupingManager.d.mts} +2 -2
  207. package/lib/opLifecycle/opGroupingManager.d.mts.map +1 -0
  208. package/lib/opLifecycle/{opGroupingManager.js → opGroupingManager.mjs} +1 -1
  209. package/lib/opLifecycle/opGroupingManager.mjs.map +1 -0
  210. package/lib/opLifecycle/{opSplitter.d.ts → opSplitter.d.mts} +2 -2
  211. package/lib/opLifecycle/opSplitter.d.mts.map +1 -0
  212. package/lib/opLifecycle/{opSplitter.js → opSplitter.mjs} +3 -3
  213. package/lib/opLifecycle/opSplitter.mjs.map +1 -0
  214. package/lib/opLifecycle/{outbox.d.ts → outbox.d.mts} +11 -11
  215. package/lib/opLifecycle/outbox.d.mts.map +1 -0
  216. package/lib/opLifecycle/{outbox.js → outbox.mjs} +6 -3
  217. package/lib/opLifecycle/outbox.mjs.map +1 -0
  218. package/lib/opLifecycle/{remoteMessageProcessor.d.ts → remoteMessageProcessor.d.mts} +5 -5
  219. package/lib/opLifecycle/remoteMessageProcessor.d.mts.map +1 -0
  220. package/lib/opLifecycle/{remoteMessageProcessor.js → remoteMessageProcessor.mjs} +2 -2
  221. package/lib/opLifecycle/remoteMessageProcessor.mjs.map +1 -0
  222. package/lib/{opProperties.d.ts → opProperties.d.mts} +1 -1
  223. package/lib/opProperties.d.mts.map +1 -0
  224. package/lib/{opProperties.js → opProperties.mjs} +1 -1
  225. package/lib/opProperties.mjs.map +1 -0
  226. package/lib/{packageVersion.d.ts → packageVersion.d.mts} +2 -2
  227. package/lib/packageVersion.d.mts.map +1 -0
  228. package/lib/{packageVersion.js → packageVersion.mjs} +2 -2
  229. package/lib/packageVersion.mjs.map +1 -0
  230. package/lib/{pendingStateManager.d.ts → pendingStateManager.d.mts} +2 -2
  231. package/lib/pendingStateManager.d.mts.map +1 -0
  232. package/lib/{pendingStateManager.js → pendingStateManager.mjs} +2 -2
  233. package/lib/pendingStateManager.mjs.map +1 -0
  234. package/lib/{scheduleManager.d.ts → scheduleManager.d.mts} +1 -5
  235. package/lib/scheduleManager.d.mts.map +1 -0
  236. package/lib/{scheduleManager.js → scheduleManager.mjs} +3 -3
  237. package/lib/scheduleManager.mjs.map +1 -0
  238. package/lib/{storageServiceWithAttachBlobs.d.ts → storageServiceWithAttachBlobs.d.mts} +1 -1
  239. package/lib/storageServiceWithAttachBlobs.d.mts.map +1 -0
  240. package/lib/{storageServiceWithAttachBlobs.js → storageServiceWithAttachBlobs.mjs} +1 -1
  241. package/lib/storageServiceWithAttachBlobs.mjs.map +1 -0
  242. package/lib/summary/{index.d.ts → index.d.mts} +13 -13
  243. package/lib/summary/index.d.mts.map +1 -0
  244. package/lib/summary/{index.js → index.mjs} +12 -12
  245. package/lib/summary/index.mjs.map +1 -0
  246. package/lib/summary/{orderedClientElection.d.ts → orderedClientElection.d.mts} +1 -5
  247. package/lib/summary/orderedClientElection.d.mts.map +1 -0
  248. package/lib/summary/{orderedClientElection.js → orderedClientElection.mjs} +2 -2
  249. package/lib/summary/orderedClientElection.mjs.map +1 -0
  250. package/lib/summary/{runWhileConnectedCoordinator.d.ts → runWhileConnectedCoordinator.d.mts} +3 -3
  251. package/lib/summary/runWhileConnectedCoordinator.d.mts.map +1 -0
  252. package/lib/summary/{runWhileConnectedCoordinator.js → runWhileConnectedCoordinator.mjs} +1 -1
  253. package/lib/summary/runWhileConnectedCoordinator.mjs.map +1 -0
  254. package/lib/summary/{runningSummarizer.d.ts → runningSummarizer.d.mts} +10 -5
  255. package/lib/summary/runningSummarizer.d.mts.map +1 -0
  256. package/lib/summary/{runningSummarizer.js → runningSummarizer.mjs} +50 -21
  257. package/lib/summary/runningSummarizer.mjs.map +1 -0
  258. package/lib/summary/{summarizer.d.ts → summarizer.d.mts} +6 -6
  259. package/lib/summary/summarizer.d.mts.map +1 -0
  260. package/lib/summary/{summarizer.js → summarizer.mjs} +5 -5
  261. package/lib/summary/summarizer.mjs.map +1 -0
  262. package/lib/summary/{summarizerClientElection.d.ts → summarizerClientElection.d.mts} +3 -3
  263. package/lib/summary/summarizerClientElection.d.mts.map +1 -0
  264. package/lib/summary/{summarizerClientElection.js → summarizerClientElection.mjs} +1 -1
  265. package/lib/summary/summarizerClientElection.mjs.map +1 -0
  266. package/lib/summary/{summarizerHeuristics.d.ts → summarizerHeuristics.d.mts} +4 -4
  267. package/lib/summary/summarizerHeuristics.d.mts.map +1 -0
  268. package/lib/summary/{summarizerHeuristics.js → summarizerHeuristics.mjs} +1 -1
  269. package/lib/summary/summarizerHeuristics.mjs.map +1 -0
  270. package/lib/summary/summarizerNode/{index.d.ts → index.d.mts} +4 -4
  271. package/lib/summary/summarizerNode/index.d.mts.map +1 -0
  272. package/lib/summary/summarizerNode/{index.js → index.mjs} +3 -3
  273. package/lib/summary/summarizerNode/index.mjs.map +1 -0
  274. package/lib/summary/summarizerNode/{summarizerNode.d.ts → summarizerNode.d.mts} +2 -2
  275. package/lib/summary/summarizerNode/summarizerNode.d.mts.map +1 -0
  276. package/lib/summary/summarizerNode/{summarizerNode.js → summarizerNode.mjs} +2 -2
  277. package/lib/summary/summarizerNode/summarizerNode.mjs.map +1 -0
  278. package/lib/summary/summarizerNode/{summarizerNodeUtils.d.ts → summarizerNodeUtils.d.mts} +1 -1
  279. package/lib/summary/summarizerNode/summarizerNodeUtils.d.mts.map +1 -0
  280. package/lib/summary/summarizerNode/{summarizerNodeUtils.js → summarizerNodeUtils.mjs} +1 -1
  281. package/lib/summary/summarizerNode/summarizerNodeUtils.mjs.map +1 -0
  282. package/lib/summary/summarizerNode/{summarizerNodeWithGc.d.ts → summarizerNodeWithGc.d.mts} +3 -3
  283. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.mts.map +1 -0
  284. package/lib/summary/summarizerNode/{summarizerNodeWithGc.js → summarizerNodeWithGc.mjs} +4 -4
  285. package/lib/summary/summarizerNode/summarizerNodeWithGc.mjs.map +1 -0
  286. package/lib/summary/{summarizerTypes.d.ts → summarizerTypes.d.mts} +7 -5
  287. package/lib/summary/summarizerTypes.d.mts.map +1 -0
  288. package/lib/summary/{summarizerTypes.js → summarizerTypes.mjs} +1 -1
  289. package/lib/summary/summarizerTypes.mjs.map +1 -0
  290. package/lib/summary/{summaryCollection.d.ts → summaryCollection.d.mts} +8 -8
  291. package/lib/summary/summaryCollection.d.mts.map +1 -0
  292. package/lib/summary/{summaryCollection.js → summaryCollection.mjs} +2 -2
  293. package/lib/summary/summaryCollection.mjs.map +1 -0
  294. package/lib/summary/{summaryFormat.d.ts → summaryFormat.d.mts} +2 -2
  295. package/lib/summary/summaryFormat.d.mts.map +1 -0
  296. package/lib/summary/{summaryFormat.js → summaryFormat.mjs} +1 -1
  297. package/lib/summary/summaryFormat.mjs.map +1 -0
  298. package/lib/summary/{summaryGenerator.d.ts → summaryGenerator.d.mts} +3 -3
  299. package/lib/summary/summaryGenerator.d.mts.map +1 -0
  300. package/lib/summary/{summaryGenerator.js → summaryGenerator.mjs} +1 -1
  301. package/lib/summary/summaryGenerator.mjs.map +1 -0
  302. package/lib/summary/{summaryManager.d.ts → summaryManager.d.mts} +5 -5
  303. package/lib/summary/summaryManager.d.mts.map +1 -0
  304. package/lib/summary/{summaryManager.js → summaryManager.mjs} +2 -2
  305. package/lib/summary/summaryManager.mjs.map +1 -0
  306. package/lib/{throttler.d.ts → throttler.d.mts} +1 -1
  307. package/lib/throttler.d.mts.map +1 -0
  308. package/lib/{throttler.js → throttler.mjs} +1 -1
  309. package/lib/throttler.mjs.map +1 -0
  310. package/package.json +145 -39
  311. package/src/blobManager.ts +15 -4
  312. package/src/containerRuntime.ts +15 -4
  313. package/src/dataStoreContext.ts +11 -4
  314. package/src/dataStores.ts +61 -7
  315. package/src/gc/garbageCollection.ts +18 -4
  316. package/src/gc/gcConfigs.ts +28 -20
  317. package/src/gc/gcDefinitions.ts +30 -6
  318. package/src/gc/gcTelemetry.ts +19 -9
  319. package/src/gc/index.ts +3 -0
  320. package/src/messageTypes.ts +1 -1
  321. package/src/opLifecycle/definitions.ts +1 -1
  322. package/src/opLifecycle/outbox.ts +5 -2
  323. package/src/packageVersion.ts +1 -1
  324. package/src/summary/runWhileConnectedCoordinator.ts +1 -1
  325. package/src/summary/runningSummarizer.ts +58 -25
  326. package/src/summary/summarizer.ts +1 -1
  327. package/src/summary/summarizerTypes.ts +3 -1
  328. package/src/summary/summaryCollection.ts +7 -7
  329. package/tsconfig.json +6 -4
  330. package/lib/batchTracker.d.ts.map +0 -1
  331. package/lib/batchTracker.js.map +0 -1
  332. package/lib/blobManager.d.ts.map +0 -1
  333. package/lib/blobManager.js.map +0 -1
  334. package/lib/connectionTelemetry.d.ts.map +0 -1
  335. package/lib/connectionTelemetry.js.map +0 -1
  336. package/lib/containerHandleContext.d.ts.map +0 -1
  337. package/lib/containerHandleContext.js.map +0 -1
  338. package/lib/containerRuntime.d.ts.map +0 -1
  339. package/lib/containerRuntime.js.map +0 -1
  340. package/lib/dataStore.d.ts.map +0 -1
  341. package/lib/dataStore.js.map +0 -1
  342. package/lib/dataStoreContext.d.ts.map +0 -1
  343. package/lib/dataStoreContext.js.map +0 -1
  344. package/lib/dataStoreContexts.d.ts.map +0 -1
  345. package/lib/dataStoreContexts.js.map +0 -1
  346. package/lib/dataStoreRegistry.d.ts.map +0 -1
  347. package/lib/dataStoreRegistry.js.map +0 -1
  348. package/lib/dataStores.d.ts.map +0 -1
  349. package/lib/dataStores.js.map +0 -1
  350. package/lib/deltaManagerProxyBase.d.ts.map +0 -1
  351. package/lib/deltaManagerProxyBase.js.map +0 -1
  352. package/lib/deltaManagerSummarizerProxy.d.ts.map +0 -1
  353. package/lib/deltaManagerSummarizerProxy.js.map +0 -1
  354. package/lib/deltaScheduler.d.ts.map +0 -1
  355. package/lib/deltaScheduler.js.map +0 -1
  356. package/lib/error.d.ts.map +0 -1
  357. package/lib/error.js.map +0 -1
  358. package/lib/gc/garbageCollection.d.ts.map +0 -1
  359. package/lib/gc/garbageCollection.js.map +0 -1
  360. package/lib/gc/gcConfigs.d.ts.map +0 -1
  361. package/lib/gc/gcConfigs.js.map +0 -1
  362. package/lib/gc/gcDefinitions.d.ts.map +0 -1
  363. package/lib/gc/gcDefinitions.js.map +0 -1
  364. package/lib/gc/gcHelpers.js.map +0 -1
  365. package/lib/gc/gcReferenceGraphAlgorithm.d.ts.map +0 -1
  366. package/lib/gc/gcReferenceGraphAlgorithm.js.map +0 -1
  367. package/lib/gc/gcSummaryDefinitions.d.ts.map +0 -1
  368. package/lib/gc/gcSummaryDefinitions.js.map +0 -1
  369. package/lib/gc/gcSummaryStateTracker.d.ts.map +0 -1
  370. package/lib/gc/gcSummaryStateTracker.js.map +0 -1
  371. package/lib/gc/gcTelemetry.d.ts.map +0 -1
  372. package/lib/gc/gcTelemetry.js.map +0 -1
  373. package/lib/gc/gcUnreferencedStateTracker.d.ts.map +0 -1
  374. package/lib/gc/gcUnreferencedStateTracker.js.map +0 -1
  375. package/lib/gc/index.d.ts.map +0 -1
  376. package/lib/gc/index.js.map +0 -1
  377. package/lib/index.d.ts.map +0 -1
  378. package/lib/index.js.map +0 -1
  379. package/lib/messageTypes.d.ts.map +0 -1
  380. package/lib/messageTypes.js.map +0 -1
  381. package/lib/metadata.d.ts.map +0 -1
  382. package/lib/metadata.js.map +0 -1
  383. package/lib/opLifecycle/batchManager.d.ts.map +0 -1
  384. package/lib/opLifecycle/batchManager.js.map +0 -1
  385. package/lib/opLifecycle/definitions.d.ts.map +0 -1
  386. package/lib/opLifecycle/definitions.js.map +0 -1
  387. package/lib/opLifecycle/index.d.ts +0 -13
  388. package/lib/opLifecycle/index.d.ts.map +0 -1
  389. package/lib/opLifecycle/index.js +0 -12
  390. package/lib/opLifecycle/index.js.map +0 -1
  391. package/lib/opLifecycle/opCompressor.d.ts.map +0 -1
  392. package/lib/opLifecycle/opCompressor.js.map +0 -1
  393. package/lib/opLifecycle/opDecompressor.d.ts.map +0 -1
  394. package/lib/opLifecycle/opDecompressor.js.map +0 -1
  395. package/lib/opLifecycle/opGroupingManager.d.ts.map +0 -1
  396. package/lib/opLifecycle/opGroupingManager.js.map +0 -1
  397. package/lib/opLifecycle/opSplitter.d.ts.map +0 -1
  398. package/lib/opLifecycle/opSplitter.js.map +0 -1
  399. package/lib/opLifecycle/outbox.d.ts.map +0 -1
  400. package/lib/opLifecycle/outbox.js.map +0 -1
  401. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +0 -1
  402. package/lib/opLifecycle/remoteMessageProcessor.js.map +0 -1
  403. package/lib/opProperties.d.ts.map +0 -1
  404. package/lib/opProperties.js.map +0 -1
  405. package/lib/packageVersion.d.ts.map +0 -1
  406. package/lib/packageVersion.js.map +0 -1
  407. package/lib/pendingStateManager.d.ts.map +0 -1
  408. package/lib/pendingStateManager.js.map +0 -1
  409. package/lib/scheduleManager.d.ts.map +0 -1
  410. package/lib/scheduleManager.js.map +0 -1
  411. package/lib/storageServiceWithAttachBlobs.d.ts.map +0 -1
  412. package/lib/storageServiceWithAttachBlobs.js.map +0 -1
  413. package/lib/summary/index.d.ts.map +0 -1
  414. package/lib/summary/index.js.map +0 -1
  415. package/lib/summary/orderedClientElection.d.ts.map +0 -1
  416. package/lib/summary/orderedClientElection.js.map +0 -1
  417. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +0 -1
  418. package/lib/summary/runWhileConnectedCoordinator.js.map +0 -1
  419. package/lib/summary/runningSummarizer.d.ts.map +0 -1
  420. package/lib/summary/runningSummarizer.js.map +0 -1
  421. package/lib/summary/summarizer.d.ts.map +0 -1
  422. package/lib/summary/summarizer.js.map +0 -1
  423. package/lib/summary/summarizerClientElection.d.ts.map +0 -1
  424. package/lib/summary/summarizerClientElection.js.map +0 -1
  425. package/lib/summary/summarizerHeuristics.d.ts.map +0 -1
  426. package/lib/summary/summarizerHeuristics.js.map +0 -1
  427. package/lib/summary/summarizerNode/index.d.ts.map +0 -1
  428. package/lib/summary/summarizerNode/index.js.map +0 -1
  429. package/lib/summary/summarizerNode/summarizerNode.d.ts.map +0 -1
  430. package/lib/summary/summarizerNode/summarizerNode.js.map +0 -1
  431. package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +0 -1
  432. package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +0 -1
  433. package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +0 -1
  434. package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +0 -1
  435. package/lib/summary/summarizerTypes.d.ts.map +0 -1
  436. package/lib/summary/summarizerTypes.js.map +0 -1
  437. package/lib/summary/summaryCollection.d.ts.map +0 -1
  438. package/lib/summary/summaryCollection.js.map +0 -1
  439. package/lib/summary/summaryFormat.d.ts.map +0 -1
  440. package/lib/summary/summaryFormat.js.map +0 -1
  441. package/lib/summary/summaryGenerator.d.ts.map +0 -1
  442. package/lib/summary/summaryGenerator.js.map +0 -1
  443. package/lib/summary/summaryManager.d.ts.map +0 -1
  444. package/lib/summary/summaryManager.js.map +0 -1
  445. package/lib/throttler.d.ts.map +0 -1
  446. package/lib/throttler.js.map +0 -1
  447. package/tsconfig.esnext.json +0 -7
@@ -31,6 +31,7 @@ import {
31
31
  gcDisableThrowOnTombstoneLoadOptionName,
32
32
  defaultSweepGracePeriodMs,
33
33
  gcGenerationOptionName,
34
+ IGCMetadata_Deprecated,
34
35
  } from "./gcDefinitions";
35
36
  import { getGCVersion, shouldAllowGcSweep } from "./gcHelpers";
36
37
 
@@ -54,7 +55,7 @@ export function generateGCConfigs(
54
55
  ): IGarbageCollectorConfigs {
55
56
  let gcEnabled: boolean;
56
57
  let sessionExpiryTimeoutMs: number | undefined;
57
- let sweepTimeoutMs: number | undefined;
58
+ let tombstoneTimeoutMs: number | undefined;
58
59
  let persistedGcFeatureMatrix: GCFeatureMatrix | undefined;
59
60
  let gcVersionInBaseSnapshot: GCVersion | undefined;
60
61
 
@@ -63,21 +64,25 @@ export function generateGCConfigs(
63
64
  * 1. Whether running GC mark phase is allowed or not.
64
65
  * 2. Whether running GC sweep phase is allowed or not.
65
66
  * 3. Whether GC session expiry is enabled or not.
66
- * For existing containers, we get this information from the createParams.metadata blob of its summary.
67
+ * For existing containers, we get this information from the metadata blob of its summary.
67
68
  */
68
69
  if (createParams.existing) {
69
- gcVersionInBaseSnapshot = getGCVersion(createParams.metadata);
70
- // Existing documents which did not have createParams.metadata blob or had GC disabled have version as 0. For all
70
+ const metadata = createParams.metadata;
71
+ gcVersionInBaseSnapshot = getGCVersion(metadata);
72
+ // Existing documents which did not have metadata blob or had GC disabled have version as 0. For all
71
73
  // other existing documents, GC is enabled.
72
74
  gcEnabled = gcVersionInBaseSnapshot > 0;
73
- sessionExpiryTimeoutMs = createParams.metadata?.sessionExpiryTimeoutMs;
74
- sweepTimeoutMs =
75
- createParams.metadata?.sweepTimeoutMs ?? computeSweepTimeout(sessionExpiryTimeoutMs); // Backfill old documents that didn't persist this
76
- persistedGcFeatureMatrix = createParams.metadata?.gcFeatureMatrix;
75
+ sessionExpiryTimeoutMs = metadata?.sessionExpiryTimeoutMs;
76
+ const legacyPersistedSweepTimeoutMs = (metadata as IGCMetadata_Deprecated)?.sweepTimeoutMs;
77
+ tombstoneTimeoutMs =
78
+ metadata?.tombstoneTimeoutMs ??
79
+ legacyPersistedSweepTimeoutMs ?? // Backfill old documents that have sweepTimeoutMs instead of tombstoneTimeoutMs
80
+ computeTombstoneTimeout(sessionExpiryTimeoutMs); // Backfill old documents that didn't persist either value
81
+ persistedGcFeatureMatrix = metadata?.gcFeatureMatrix;
77
82
  } else {
78
83
  // This Test Override only applies for new containers
79
- const testOverrideSweepTimeoutMs = mc.config.getNumber(
80
- "Fluid.GarbageCollection.TestOverride.SweepTimeoutMs",
84
+ const testOverrideTombstoneTimeoutMs = mc.config.getNumber(
85
+ "Fluid.GarbageCollection.TestOverride.TombstoneTimeoutMs",
81
86
  );
82
87
 
83
88
  // For new documents, GC is enabled by default. It can be explicitly disabled by setting the gcAllowed
@@ -89,7 +94,8 @@ export function generateGCConfigs(
89
94
  sessionExpiryTimeoutMs =
90
95
  createParams.gcOptions.sessionExpiryTimeoutMs ?? defaultSessionExpiryDurationMs;
91
96
  }
92
- sweepTimeoutMs = testOverrideSweepTimeoutMs ?? computeSweepTimeout(sessionExpiryTimeoutMs);
97
+ tombstoneTimeoutMs =
98
+ testOverrideTombstoneTimeoutMs ?? computeTombstoneTimeout(sessionExpiryTimeoutMs);
93
99
 
94
100
  const gcGeneration = createParams.gcOptions[gcGenerationOptionName];
95
101
  if (gcGeneration !== undefined) {
@@ -131,7 +137,7 @@ export function generateGCConfigs(
131
137
  * Whether sweep should run or not. This refers to whether Tombstones should fail on load and whether
132
138
  * sweep-ready nodes should be deleted.
133
139
  *
134
- * Assuming overall GC is enabled and sweepTimeout is provided, the following conditions have to be met to run sweep:
140
+ * Assuming overall GC is enabled and Tombstone timeout is present, the following conditions have to be met to run sweep:
135
141
  *
136
142
  * 1. Sweep should be enabled for this container.
137
143
  * 2. Sweep should be enabled for this session.
@@ -139,7 +145,7 @@ export function generateGCConfigs(
139
145
  * These conditions can be overridden via the RunSweep feature flag.
140
146
  */
141
147
  const shouldRunSweep =
142
- !shouldRunGC || sweepTimeoutMs === undefined
148
+ !shouldRunGC || tombstoneTimeoutMs === undefined
143
149
  ? false
144
150
  : mc.config.getBoolean(runSweepKey) ??
145
151
  (sweepAllowed && createParams.gcOptions.enableGCSweep === true);
@@ -150,9 +156,9 @@ export function generateGCConfigs(
150
156
  createParams.gcOptions.inactiveTimeoutMs ??
151
157
  defaultInactiveTimeoutMs;
152
158
 
153
- // Inactive timeout must be greater than sweep timeout since a node goes from active -> inactive -> sweep ready.
154
- if (sweepTimeoutMs !== undefined && inactiveTimeoutMs > sweepTimeoutMs) {
155
- throw new UsageError("inactive timeout should not be greater than the sweep timeout");
159
+ // Inactive timeout must be greater than tombstone timeout since a node goes from active -> inactive -> sweep ready.
160
+ if (tombstoneTimeoutMs !== undefined && inactiveTimeoutMs > tombstoneTimeoutMs) {
161
+ throw new UsageError("inactive timeout should not be greater than the tombstone timeout");
156
162
  }
157
163
 
158
164
  // Whether we are running in test mode. In this mode, unreferenced nodes are immediately deleted.
@@ -190,7 +196,7 @@ export function generateGCConfigs(
190
196
  testMode,
191
197
  tombstoneMode,
192
198
  sessionExpiryTimeoutMs,
193
- sweepTimeoutMs,
199
+ tombstoneTimeoutMs,
194
200
  sweepGracePeriodMs,
195
201
  inactiveTimeoutMs,
196
202
  persistedGcFeatureMatrix,
@@ -203,14 +209,16 @@ export function generateGCConfigs(
203
209
  }
204
210
 
205
211
  /**
206
- * Sweep timeout is the time after which unreferenced content can be swept.
207
- * Sweep timeout = session expiry timeout + snapshot cache expiry timeout + one day buffer.
212
+ * Tombstone timeout is the time after which unreferenced content is guaranteed not to be revived (re-referenced).
213
+ * Tombstone timeout = session expiry timeout + snapshot cache expiry timeout + one day buffer.
208
214
  *
209
215
  * The snapshot cache expiry timeout cannot be known precisely but the upper bound is 5 days.
210
216
  * The buffer is added to account for any clock skew or other edge cases.
211
217
  * We use server timestamps throughout so the skew should be minimal but make it 1 day to be safe.
218
+ *
219
+ * If there is no Session Expiry timeout, GC can never guarantee an object won't be revived, so return undefined.
212
220
  */
213
- function computeSweepTimeout(sessionExpiryTimeoutMs: number | undefined): number | undefined {
221
+ function computeTombstoneTimeout(sessionExpiryTimeoutMs: number | undefined): number | undefined {
214
222
  const bufferMs = oneDayMs;
215
223
  return sessionExpiryTimeoutMs && sessionExpiryTimeoutMs + maxSnapshotCacheExpiryMs + bufferMs;
216
224
  }
@@ -74,13 +74,15 @@ export const gcVersionUpgradeToV4Key = "Fluid.GarbageCollection.GCVersionUpgrade
74
74
  export const disableDatastoreSweepKey = "Fluid.GarbageCollection.DisableDataStoreSweep";
75
75
  /** Config key to disable GC sweep for attachment blobs. */
76
76
  export const disableAttachmentBlobSweepKey = "Fluid.GarbageCollection.DisableAttachmentBlobSweep";
77
+ /** Config key to revert new paradigm of detecting outbound routes in ContainerRuntime layer (use true) */
78
+ export const detectOutboundRoutesViaDDSKey = "Fluid.GarbageCollection.DetectOutboundRoutesViaDDS";
77
79
 
78
80
  // One day in milliseconds.
79
81
  export const oneDayMs = 1 * 24 * 60 * 60 * 1000;
80
82
 
81
83
  /**
82
- * The maximum snapshot cache expiry in the driver. This is used to calculate the sweep timeout.
83
- * Sweep timeout = session expiry timeout + snapshot cache expiry timeout + a buffer.
84
+ * The maximum snapshot cache expiry in the driver. This is used to calculate the tombstone timeout.
85
+ * Tombstone timeout = session expiry timeout + snapshot cache expiry timeout + a buffer.
84
86
  * The snapshot cache expiry timeout cannot be known precisely but the upper bound is 5 days, i.e., any snapshot
85
87
  * in cache will be invalidated before 5 days.
86
88
  */
@@ -114,6 +116,21 @@ export type GCFeatureMatrix =
114
116
  };
115
117
 
116
118
  /**
119
+ * Deprecated properties formerly included in @see IGCMetadata.
120
+ * These may be found in old snapshots, so we need to support them for backwards compatibility.
121
+ */
122
+ export interface IGCMetadata_Deprecated {
123
+ /**
124
+ * How long to wait after an object is unreferenced before deleting it via GC Sweep
125
+ *
126
+ * @deprecated Replaced by @see IGCMetadata.tombstoneTimeoutMs
127
+ */
128
+ readonly sweepTimeoutMs?: number;
129
+ }
130
+
131
+ /**
132
+ * GC-specific metadata to be written into the summary.
133
+ *
117
134
  * @alpha
118
135
  */
119
136
  export interface IGCMetadata {
@@ -148,8 +165,15 @@ export interface IGCMetadata {
148
165
  readonly sweepEnabled?: boolean;
149
166
  /** If this is present, the session for this container will expire after this time and the container will close */
150
167
  readonly sessionExpiryTimeoutMs?: number;
151
- /** How long to wait after an object is unreferenced before deleting it via GC Sweep */
152
- readonly sweepTimeoutMs?: number;
168
+ /**
169
+ * How long to wait after an object is unreferenced before it becomes a Tombstone.
170
+ *
171
+ * After this point, there's a grace period before the object is deleted.
172
+ * @see IGCRuntimeOptions.sweepGracePeriodMs
173
+ *
174
+ * So the full sweep timeout in a session is tombstoneTimeoutMs + sweepGracePeriodMs.
175
+ */
176
+ readonly tombstoneTimeoutMs?: number;
153
177
  }
154
178
 
155
179
  /**
@@ -445,8 +469,8 @@ export interface IGarbageCollectorConfigs {
445
469
  readonly runFullGC: boolean | undefined;
446
470
  /** The time in ms to expire a session for a client for gc. */
447
471
  readonly sessionExpiryTimeoutMs: number | undefined;
448
- /** The time after which an unreferenced node is ready to be swept. */
449
- readonly sweepTimeoutMs: number | undefined;
472
+ /** The time after which an unreferenced node can be Tombstoned - i.e. GC knows it can't be referenced again (revived). */
473
+ readonly tombstoneTimeoutMs: number | undefined;
450
474
  /**
451
475
  * The delay between tombstone and sweep. Not persisted, so concurrent sessions may use different values.
452
476
  * Sweep is implemented in an eventually-consistent way so this is acceptable.
@@ -66,13 +66,20 @@ interface INodeUsageProps extends ICommonProps {
66
66
  }
67
67
 
68
68
  /**
69
- * Encapsulates the logic that tracks the various telemetry logged by the Garbage Collector. There are 4 types of
70
- * telemetry logged:
69
+ * Encapsulates the logic that tracks the various telemetry logged by the Garbage Collector.
70
+ *
71
+ * These events are not logged as errors, just generic events, since there can be false positives:
72
+ *
71
73
  * 1. inactiveObject telemetry - When an inactive node is used - A node that has been unreferenced for inactiveTimeoutMs.
72
- * 2. sweepReadyObject telemetry - When a sweep ready node is used - A node that has been unreferenced for sweepTimeoutMs.
73
- * 3. Tombstone telemetry - When a tombstoned node is used - A node that that has been marked as tombstone.
74
- * 4. Sweep / deleted telemetry - When a node is detected as sweep ready in the sweep phase.
75
- * 5. Unknown outbound reference telemetry - When a node is referenced but GC is not explicitly notified of it.
74
+ * 2. tombstoneReadyObject telemetry - When a tombstone-ready node is used - A node that has been unreferenced for tombstoneTimeoutMs.
75
+ * 3. sweepReadyObject telemetry - When a sweep-ready node is used - A node that has been unreferenced for tombstoneTimeoutMs + sweepGracePeriodMs.
76
+ *
77
+ * These events are logged as errors since they are based on the core GC logic:
78
+ *
79
+ * 1. Tombstone telemetry - When a tombstoned node is used - A node that has been marked as tombstone.
80
+ * 2. Unknown outbound reference telemetry - When a node is referenced but GC was not notified of it when the new reference appeared.
81
+ *
82
+ * Note: The telemetry for a Deleted node being used is logged elsewhere in this package.
76
83
  */
77
84
  export class GCTelemetryTracker {
78
85
  // Keeps track of unreferenced events that are logged for a node. This is used to limit the log generation to one
@@ -147,11 +154,11 @@ export class GCTelemetryTracker {
147
154
  case UnreferencedState.Inactive:
148
155
  return this.configs.inactiveTimeoutMs;
149
156
  case UnreferencedState.TombstoneReady:
150
- return this.configs.sweepTimeoutMs;
157
+ return this.configs.tombstoneTimeoutMs;
151
158
  case UnreferencedState.SweepReady:
152
159
  return (
153
- this.configs.sweepTimeoutMs &&
154
- this.configs.sweepTimeoutMs + this.configs.sweepGracePeriodMs
160
+ this.configs.tombstoneTimeoutMs &&
161
+ this.configs.tombstoneTimeoutMs + this.configs.sweepGracePeriodMs
155
162
  );
156
163
  default:
157
164
  return undefined;
@@ -389,6 +396,9 @@ export class GCTelemetryTracker {
389
396
  fromPkg: fromPkg?.join("/"),
390
397
  }),
391
398
  };
399
+
400
+ // These are logged as generic events and not errors because there can be false positives. The Tombstone
401
+ // and Delete errors are separately logged and are reliable.
392
402
  logger.sendTelemetryEvent(event);
393
403
  }
394
404
  }
package/src/gc/index.ts CHANGED
@@ -21,6 +21,7 @@ export {
21
21
  IGarbageCollectorConfigs,
22
22
  IGarbageCollectorCreateParams,
23
23
  IGCMetadata,
24
+ IGCMetadata_Deprecated,
24
25
  IGCResult,
25
26
  IGCRuntimeOptions,
26
27
  IMarkPhaseStats,
@@ -33,9 +34,11 @@ export {
33
34
  stableGCVersion,
34
35
  disableAttachmentBlobSweepKey,
35
36
  disableDatastoreSweepKey,
37
+ detectOutboundRoutesViaDDSKey,
36
38
  UnreferencedState,
37
39
  throwOnTombstoneLoadOverrideKey,
38
40
  GarbageCollectionMessage,
41
+ ISweepMessage,
39
42
  } from "./gcDefinitions";
40
43
  export {
41
44
  cloneGCData,
@@ -15,7 +15,7 @@ import { GarbageCollectionMessage } from "./gc";
15
15
  import { IChunkedOp } from "./opLifecycle";
16
16
 
17
17
  /**
18
- * @internal
18
+ * @alpha
19
19
  */
20
20
  export enum ContainerMessageType {
21
21
  // An op to be delivered to store
@@ -5,7 +5,7 @@
5
5
 
6
6
  import { IBatchMessage } from "@fluidframework/container-definitions";
7
7
  import { ISequencedDocumentMessage, MessageType } from "@fluidframework/protocol-definitions";
8
- import { CompressionAlgorithms } from "..";
8
+ import { CompressionAlgorithms } from "../containerRuntime";
9
9
  import { ContainerMessageType } from "../messageTypes";
10
10
 
11
11
  /**
@@ -20,7 +20,7 @@ import {
20
20
  estimateSocketSize,
21
21
  sequenceNumbersMatch,
22
22
  } from "./batchManager";
23
- import { BatchMessage, IBatch } from "./definitions";
23
+ import { BatchMessage, IBatch, IBatchCheckpoint } from "./definitions";
24
24
  import { OpCompressor } from "./opCompressor";
25
25
  import { OpGroupingManager } from "./opGroupingManager";
26
26
  import { OpSplitter } from "./opSplitter";
@@ -462,8 +462,11 @@ export class Outbox {
462
462
  }
463
463
 
464
464
  public checkpoint() {
465
+ // This variable is declared with a specific type so that we have a standard import of the IBatchCheckpoint type.
466
+ // When the type is inferred, the generated .d.ts uses a dynamic import which doesn't resolve.
467
+ const mainBatch: IBatchCheckpoint = this.mainBatch.checkpoint();
465
468
  return {
466
- mainBatch: this.mainBatch.checkpoint(),
469
+ mainBatch,
467
470
  attachFlowBatch: this.attachFlowBatch.checkpoint(),
468
471
  blobAttachBatch: this.blobAttachBatch.checkpoint(),
469
472
  };
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/container-runtime";
9
- export const pkgVersion = "2.0.0-internal.8.0.1";
9
+ export const pkgVersion = "2.0.0-rc.1.0.1";
@@ -12,7 +12,7 @@ import {
12
12
 
13
13
  /**
14
14
  * Similar to AbortController, but using promise instead of events
15
- * @internal
15
+ * @alpha
16
16
  */
17
17
  export interface ICancellableSummarizerController extends ISummaryCancellationToken {
18
18
  stop(reason: SummarizerStopReason): void;
@@ -693,7 +693,9 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
693
693
  * Tries to summarize with retries where retry is based on the failure params.
694
694
  * For example, summarization may be retried for failures with "retryAfterSeconds" param.
695
695
  */
696
- private async trySummarizeWithRetries(reason: SummarizeReason) {
696
+ private async trySummarizeWithRetries(
697
+ reason: SummarizeReason,
698
+ ): Promise<ISummarizeResults | undefined> {
697
699
  // Helper to set summarize options, telemetry properties and call summarize.
698
700
  const attemptSummarize = (attemptNumber: number, finalAttempt: boolean) => {
699
701
  const summarizeOptions: ISummarizeOptions = {
@@ -732,24 +734,23 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
732
734
  let currentAttempt = 0;
733
735
  let retryAfterSeconds: number | undefined;
734
736
  let done = false;
735
- let result: "success" | "failure" | "canceled" = "success";
737
+ let status: "success" | "failure" | "canceled" = "success";
738
+ let results: ISummarizeResults | undefined;
736
739
  do {
737
740
  currentAttempt++;
738
741
  if (this.cancellationToken.cancelled) {
739
- result = "canceled";
742
+ status = "canceled";
740
743
  done = true;
741
744
  break;
742
745
  }
743
746
 
744
- const { summarizeProps, summarizeResult } = attemptSummarize(
745
- currentAttempt,
746
- false /* finalAttempt */,
747
- );
747
+ const attemptResult = attemptSummarize(currentAttempt, false /* finalAttempt */);
748
+ results = attemptResult.summarizeResult;
748
749
 
749
750
  // Ack / nack is the final step, so if it succeeds we're done.
750
- const ackNackResult = await summarizeResult.receivedSummaryAckOrNack;
751
+ const ackNackResult = await results.receivedSummaryAckOrNack;
751
752
  if (ackNackResult.success) {
752
- result = "success";
753
+ status = "success";
753
754
  done = true;
754
755
  break;
755
756
  }
@@ -758,7 +759,7 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
758
759
  // If submit summary failed, use the params from "summarySubmitted" result. Else, use the params
759
760
  // from "receivedSummaryAckOrNack" result.
760
761
  // Note: Check "summarySubmitted" result first because if it fails, ack nack would fail as well.
761
- const submitSummaryResult = await summarizeResult.summarySubmitted;
762
+ const submitSummaryResult = await results.summarySubmitted;
762
763
  if (!submitSummaryResult.success) {
763
764
  maxAttempts = this.maxAttemptsForSubmitFailures;
764
765
  retryAfterSeconds = submitSummaryResult.data?.retryAfterSeconds;
@@ -768,9 +769,9 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
768
769
  }
769
770
 
770
771
  // Emit "summarize" event for this failed attempt.
771
- result = "failure";
772
+ status = "failure";
772
773
  const eventProps: ISummarizeEventProps = {
773
- result,
774
+ result: status,
774
775
  currentAttempt,
775
776
  maxAttempts,
776
777
  error: ackNackResult.error,
@@ -791,16 +792,16 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
791
792
  summaryNackDelay: ackNackResult.data?.retryAfterSeconds !== undefined,
792
793
  stage: submitSummaryResult.data?.stage,
793
794
  dynamicRetries: true, // To differentiate this telemetry from regular retry logic
794
- ...summarizeProps,
795
+ ...attemptResult.summarizeProps,
795
796
  });
796
797
  await delay(retryAfterSeconds * 1000);
797
798
  }
798
799
  } while (!done);
799
800
 
800
801
  // If summarize attempt did not fail, emit "summarize" event and return. A failed attempt may be retried below.
801
- if (result !== "failure") {
802
- this.emit("summarize", { result, currentAttempt, maxAttempts });
803
- return;
802
+ if (status !== "failure") {
803
+ this.emit("summarize", { result: status, currentAttempt, maxAttempts });
804
+ return results;
804
805
  }
805
806
 
806
807
  // If summarization wasn't successful above and the failure contains "retryAfterSeconds", perform one last
@@ -809,20 +810,44 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
809
810
  const { summarizeResult } = attemptSummarize(++currentAttempt, true /* finalAttempt */);
810
811
  // Ack / nack is the final step, so if it succeeds we're done.
811
812
  const ackNackResult = await summarizeResult.receivedSummaryAckOrNack;
812
- result = ackNackResult.success ? "success" : "failure";
813
+ status = ackNackResult.success ? "success" : "failure";
813
814
  const eventProps: ISummarizeEventProps = {
814
- result,
815
+ result: status,
815
816
  currentAttempt,
816
817
  maxAttempts,
817
818
  error: ackNackResult.success ? undefined : ackNackResult.error,
818
819
  };
819
820
  this.emit("summarize", eventProps);
821
+ results = summarizeResult;
820
822
  }
821
823
 
822
824
  // If summarization is still unsuccessful, stop the summarizer.
823
- if (result === "failure") {
825
+ if (status === "failure") {
824
826
  this.stopSummarizerCallback("failToSummarize");
825
827
  }
828
+ return results;
829
+ }
830
+
831
+ /**
832
+ * Attempts to generate a summary on demand with retries in case of failures. The retry logic is the same
833
+ * as heuristics based summaries.
834
+ */
835
+ private async summarizeOnDemandWithRetries(
836
+ reason: SummarizeReason,
837
+ resultsBuilder: SummarizeResultBuilder,
838
+ ) {
839
+ const results = await this.trySummarizeWithRetries(reason);
840
+ if (results === undefined) {
841
+ resultsBuilder.fail("Summarization was canceled", undefined);
842
+ return resultsBuilder.build();
843
+ }
844
+ const submitResult = await results.summarySubmitted;
845
+ const summaryOpBroadcastedResult = await results.summaryOpBroadcasted;
846
+ const ackNackResult = await results.receivedSummaryAckOrNack;
847
+ resultsBuilder.summarySubmitted.resolve(submitResult);
848
+ resultsBuilder.summaryOpBroadcasted.resolve(summaryOpBroadcastedResult);
849
+ resultsBuilder.receivedSummaryAckOrNack.resolve(ackNackResult);
850
+ return resultsBuilder.build();
826
851
  }
827
852
 
828
853
  /** {@inheritdoc (ISummarizer:interface).summarizeOnDemand} */
@@ -842,12 +867,20 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
842
867
  }
843
868
 
844
869
  const { reason, ...summarizeOptions } = options;
845
- const result = this.trySummarizeOnce(
846
- { summarizeReason: `onDemand/${reason}` },
847
- summarizeOptions,
848
- resultsBuilder,
849
- );
850
- return result;
870
+ if (options.retryOnFailure === true) {
871
+ this.summarizeOnDemandWithRetries(`onDemand;${reason}`, resultsBuilder).catch(
872
+ (error) => {
873
+ resultsBuilder.fail("summarize failed", error);
874
+ },
875
+ );
876
+ } else {
877
+ this.trySummarizeOnce(
878
+ { summarizeReason: `onDemand/${reason}` },
879
+ summarizeOptions,
880
+ resultsBuilder,
881
+ );
882
+ }
883
+ return resultsBuilder.build();
851
884
  }
852
885
 
853
886
  /** {@inheritdoc (ISummarizer:interface).enqueueSummarize} */
@@ -65,7 +65,7 @@ export const createSummarizingWarning = (errorMessage: string, logged: boolean)
65
65
  * Summarizer is responsible for coordinating when to generate and send summaries.
66
66
  * It is the main entry point for summary work.
67
67
  * It is created only by summarizing container (i.e. one with clientType === "summarizer")
68
- * @internal
68
+ * @alpha
69
69
  */
70
70
  export class Summarizer extends TypedEventEmitter<ISummarizerEvents> implements ISummarizer {
71
71
  public get ISummarizer() {
@@ -149,6 +149,8 @@ export interface ISubmitSummaryOptions extends ISummarizeOptions {
149
149
  export interface IOnDemandSummarizeOptions extends ISummarizeOptions {
150
150
  /** Reason for generating summary. */
151
151
  readonly reason: string;
152
+ /** In case of a failure, will attempt to retry based on if the failure is retriable. */
153
+ readonly retryOnFailure?: boolean;
152
154
  }
153
155
 
154
156
  /**
@@ -418,7 +420,7 @@ export interface ISummarizerEvents extends IEvent {
418
420
  }
419
421
 
420
422
  /**
421
- * @internal
423
+ * @alpha
422
424
  */
423
425
  export interface ISummarizer extends IEventProvider<ISummarizerEvents> {
424
426
  /**
@@ -47,7 +47,7 @@ export interface ISummaryNackMessage extends ISequencedDocumentMessage {
47
47
  /**
48
48
  * A single summary which can be tracked as it goes through its life cycle.
49
49
  * The life cycle is: Local to Broadcast to Acked/Nacked.
50
- * @internal
50
+ * @alpha
51
51
  */
52
52
  export interface ISummary {
53
53
  readonly clientId: string;
@@ -58,7 +58,7 @@ export interface ISummary {
58
58
 
59
59
  /**
60
60
  * A single summary which has already been acked by the server.
61
- * @internal
61
+ * @alpha
62
62
  */
63
63
  export interface IAckedSummary {
64
64
  readonly summaryOp: ISummaryOpMessage;
@@ -145,7 +145,7 @@ class Summary implements ISummary {
145
145
 
146
146
  /**
147
147
  * Watches summaries created by a specific client.
148
- * @internal
148
+ * @alpha
149
149
  */
150
150
  export interface IClientSummaryWatcher extends IDisposable {
151
151
  watchSummary(clientSequenceNumber: number): ISummary;
@@ -214,7 +214,7 @@ class ClientSummaryWatcher implements IClientSummaryWatcher {
214
214
  }
215
215
  }
216
216
  /**
217
- * @internal
217
+ * @alpha
218
218
  */
219
219
  export type OpActionEventName =
220
220
  | MessageType.Summarize
@@ -223,12 +223,12 @@ export type OpActionEventName =
223
223
  | "default";
224
224
 
225
225
  /**
226
- * @internal
226
+ * @alpha
227
227
  */
228
228
  export type OpActionEventListener = (op: ISequencedDocumentMessage) => void;
229
229
 
230
230
  /**
231
- * @internal
231
+ * @alpha
232
232
  */
233
233
  export interface ISummaryCollectionOpEvents extends IEvent {
234
234
  (event: OpActionEventName, listener: OpActionEventListener);
@@ -238,7 +238,7 @@ export interface ISummaryCollectionOpEvents extends IEvent {
238
238
  * Data structure that looks at the op stream to track summaries as they
239
239
  * are broadcast, acked and nacked.
240
240
  * It provides functionality for watching specific summaries.
241
- * @internal
241
+ * @alpha
242
242
  */
243
243
  export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEvents> {
244
244
  // key: clientId
package/tsconfig.json CHANGED
@@ -1,10 +1,12 @@
1
1
  {
2
- "extends": "@fluidframework/build-common/ts-common-config.json",
2
+ "extends": [
3
+ "../../../common/build/build-common/tsconfig.base.json",
4
+ "../../../common/build/build-common/tsconfig.cjs.json",
5
+ ],
6
+ "include": ["src/**/*"],
7
+ "exclude": ["src/test/**/*"],
3
8
  "compilerOptions": {
4
- "composite": true,
5
9
  "rootDir": "./src",
6
10
  "outDir": "./dist",
7
11
  },
8
- "include": ["src/**/*"],
9
- "exclude": ["src/test/**/*"],
10
12
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"batchTracker.d.ts","sourceRoot":"","sources":["../src/batchTracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAqB,MAAM,iCAAiC,CAAC;AAIzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,qBAAa,YAAY;IAOvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IANnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,wBAAwB,CAAqB;IACrD,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,6BAA6B,CAAqB;gBAGxC,iBAAiB,EAAE,YAAY,EAChD,MAAM,EAAE,oBAAoB,EAC5B,oBAAoB,EAAE,MAAM,EAC5B,sBAAsB,EAAE,MAAM,EAC9B,gBAAgB,GAAE,MAAM,MAAgC;CA8CzD;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,sBACT,YAAY,UACvB,mBAAmB,yBACL,MAAM,2BACJ,MAAM,iBAC+D,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"batchTracker.js","sourceRoot":"","sources":["../src/batchTracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAuB,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAI3D,MAAM,OAAO,YAAY;IAMxB,YACkB,iBAA+B,EAChD,MAA4B,EAC5B,oBAA4B,EAC5B,sBAA8B,EAC9B,mBAAiC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAJvC,sBAAiB,GAAjB,iBAAiB,CAAc;QAJzC,sBAAiB,GAAW,CAAC,CAAC;QAUrC,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QAEnE,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,OAAkC,EAAE,EAAE;YAC9E,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC;YACvD,IAAI,CAAC,6BAA6B,GAAG,gBAAgB,EAAE,CAAC;YACxD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,CAAC,EAAE,CACxB,UAAU,EACV,CAAC,KAAsB,EAAE,OAAkC,EAAE,EAAE;YAC9D,MAAM,CACL,IAAI,CAAC,wBAAwB,KAAK,SAAS;gBAC1C,IAAI,CAAC,6BAA6B,KAAK,SAAS,EACjD,KAAK,CAAC,4CAA4C,CAClD,CAAC;YAEF,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC;YAC1E,IAAI,MAAM,IAAI,oBAAoB,EAAE;gBACnC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;oBAChC,SAAS,EAAE,cAAc;oBACzB,MAAM;oBACN,SAAS,EAAE,oBAAoB;oBAC/B,sBAAsB,EAAE,OAAO,CAAC,cAAc;oBAC9C,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,6BAA6B;oBACjE,UAAU,EAAE,KAAK,KAAK,SAAS;iBAC/B,CAAC,CAAC;aACH;YAED,IAAI,IAAI,CAAC,iBAAiB,GAAG,sBAAsB,KAAK,CAAC,EAAE;gBAC1D,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;oBAChC,SAAS,EAAE,QAAQ;oBACnB,MAAM;oBACN,YAAY,EAAE,sBAAsB;oBACpC,sBAAsB,EAAE,OAAO,CAAC,cAAc;oBAC9C,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,6BAA6B;iBACjE,CAAC,CAAC;aACH;YAED,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC;YAC1C,IAAI,CAAC,6BAA6B,GAAG,SAAS,CAAC;QAChD,CAAC,CACD,CAAC;IACH,CAAC;CACD;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,iBAA+B,EAC/B,MAA2B,EAC3B,uBAA+B,IAAI,EACnC,yBAAiC,IAAI,EACpC,EAAE,CAAC,IAAI,YAAY,CAAC,iBAAiB,EAAE,MAAM,EAAE,oBAAoB,EAAE,sBAAsB,CAAC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { EventEmitter } from \"events\";\nimport { ITelemetryLoggerExt, createChildLogger } from \"@fluidframework/telemetry-utils\";\nimport { assert } from \"@fluidframework/core-utils\";\nimport { performance } from \"@fluid-internal/client-utils\";\nimport { ISequencedDocumentMessage } from \"@fluidframework/protocol-definitions\";\nimport { ITelemetryBaseLogger } from \"@fluidframework/core-interfaces\";\n\nexport class BatchTracker {\n\tprivate readonly logger: ITelemetryLoggerExt;\n\tprivate startBatchSequenceNumber: number | undefined;\n\tprivate trackedBatchCount: number = 0;\n\tprivate batchProcessingStartTimeStamp: number | undefined;\n\n\tconstructor(\n\t\tprivate readonly batchEventEmitter: EventEmitter,\n\t\tlogger: ITelemetryBaseLogger,\n\t\tbatchLengthThreshold: number,\n\t\tbatchCountSamplingRate: number,\n\t\tdateTimeProvider: () => number = () => performance.now(),\n\t) {\n\t\tthis.logger = createChildLogger({ logger, namespace: \"Batching\" });\n\n\t\tthis.batchEventEmitter.on(\"batchBegin\", (message: ISequencedDocumentMessage) => {\n\t\t\tthis.startBatchSequenceNumber = message.sequenceNumber;\n\t\t\tthis.batchProcessingStartTimeStamp = dateTimeProvider();\n\t\t\tthis.trackedBatchCount++;\n\t\t});\n\n\t\tthis.batchEventEmitter.on(\n\t\t\t\"batchEnd\",\n\t\t\t(error: any | undefined, message: ISequencedDocumentMessage) => {\n\t\t\t\tassert(\n\t\t\t\t\tthis.startBatchSequenceNumber !== undefined &&\n\t\t\t\t\t\tthis.batchProcessingStartTimeStamp !== undefined,\n\t\t\t\t\t0x2ba /* \"batchBegin must fire before batchEnd\" */,\n\t\t\t\t);\n\n\t\t\t\tconst length = message.sequenceNumber - this.startBatchSequenceNumber + 1;\n\t\t\t\tif (length >= batchLengthThreshold) {\n\t\t\t\t\tthis.logger.sendPerformanceEvent({\n\t\t\t\t\t\teventName: \"LengthTooBig\",\n\t\t\t\t\t\tlength,\n\t\t\t\t\t\tthreshold: batchLengthThreshold,\n\t\t\t\t\t\tbatchEndSequenceNumber: message.sequenceNumber,\n\t\t\t\t\t\tduration: dateTimeProvider() - this.batchProcessingStartTimeStamp,\n\t\t\t\t\t\tbatchError: error !== undefined,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (this.trackedBatchCount % batchCountSamplingRate === 0) {\n\t\t\t\t\tthis.logger.sendPerformanceEvent({\n\t\t\t\t\t\teventName: \"Length\",\n\t\t\t\t\t\tlength,\n\t\t\t\t\t\tsamplingRate: batchCountSamplingRate,\n\t\t\t\t\t\tbatchEndSequenceNumber: message.sequenceNumber,\n\t\t\t\t\t\tduration: dateTimeProvider() - this.batchProcessingStartTimeStamp,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.startBatchSequenceNumber = undefined;\n\t\t\t\tthis.batchProcessingStartTimeStamp = undefined;\n\t\t\t},\n\t\t);\n\t}\n}\n\n/**\n * Track batch sizes in terms of op counts and processing times\n *\n * @param batchEventEmitter - event emitter which tracks the lifecycle of batch operations\n * @param logger - See {@link @fluidframework/core-interfaces#ITelemetryLoggerExt}\n * @param batchLengthThreshold - threshold for the length of a batch when to send an error event\n * @param batchCountSamplingRate - rate for batches for which to send an event with its characteristics\n */\nexport const BindBatchTracker = (\n\tbatchEventEmitter: EventEmitter,\n\tlogger: ITelemetryLoggerExt,\n\tbatchLengthThreshold: number = 1000,\n\tbatchCountSamplingRate: number = 1000,\n) => new BatchTracker(batchEventEmitter, logger, batchLengthThreshold, batchCountSamplingRate);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"blobManager.d.ts","sourceRoot":"","sources":["../src/blobManager.ts"],"names":[],"mappings":"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"}