@fluidframework/container-runtime 2.0.0-internal.3.0.1 → 2.0.0-internal.3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/.eslintrc.js +19 -19
  2. package/.mocharc.js +2 -2
  3. package/api-extractor.json +2 -2
  4. package/dist/batchTracker.d.ts.map +1 -1
  5. package/dist/batchTracker.js +2 -1
  6. package/dist/batchTracker.js.map +1 -1
  7. package/dist/blobManager.d.ts +9 -2
  8. package/dist/blobManager.d.ts.map +1 -1
  9. package/dist/blobManager.js +80 -33
  10. package/dist/blobManager.js.map +1 -1
  11. package/dist/connectionTelemetry.d.ts.map +1 -1
  12. package/dist/connectionTelemetry.js +11 -9
  13. package/dist/connectionTelemetry.js.map +1 -1
  14. package/dist/containerHandleContext.d.ts.map +1 -1
  15. package/dist/containerHandleContext.js +3 -1
  16. package/dist/containerHandleContext.js.map +1 -1
  17. package/dist/containerRuntime.d.ts +10 -0
  18. package/dist/containerRuntime.d.ts.map +1 -1
  19. package/dist/containerRuntime.js +140 -72
  20. package/dist/containerRuntime.js.map +1 -1
  21. package/dist/dataStore.d.ts.map +1 -1
  22. package/dist/dataStore.js +11 -9
  23. package/dist/dataStore.js.map +1 -1
  24. package/dist/dataStoreContext.d.ts +18 -1
  25. package/dist/dataStoreContext.d.ts.map +1 -1
  26. package/dist/dataStoreContext.js +66 -15
  27. package/dist/dataStoreContext.js.map +1 -1
  28. package/dist/dataStoreContexts.d.ts.map +1 -1
  29. package/dist/dataStoreContexts.js +7 -3
  30. package/dist/dataStoreContexts.js.map +1 -1
  31. package/dist/dataStoreRegistry.d.ts.map +1 -1
  32. package/dist/dataStoreRegistry.js +3 -1
  33. package/dist/dataStoreRegistry.js.map +1 -1
  34. package/dist/dataStores.d.ts +26 -1
  35. package/dist/dataStores.d.ts.map +1 -1
  36. package/dist/dataStores.js +103 -18
  37. package/dist/dataStores.js.map +1 -1
  38. package/dist/deltaScheduler.d.ts.map +1 -1
  39. package/dist/deltaScheduler.js +8 -3
  40. package/dist/deltaScheduler.js.map +1 -1
  41. package/dist/garbageCollection.d.ts +34 -14
  42. package/dist/garbageCollection.d.ts.map +1 -1
  43. package/dist/garbageCollection.js +188 -93
  44. package/dist/garbageCollection.js.map +1 -1
  45. package/dist/garbageCollectionConstants.d.ts +3 -0
  46. package/dist/garbageCollectionConstants.d.ts.map +1 -1
  47. package/dist/garbageCollectionConstants.js +6 -1
  48. package/dist/garbageCollectionConstants.js.map +1 -1
  49. package/dist/garbageCollectionHelpers.d.ts +26 -0
  50. package/dist/garbageCollectionHelpers.d.ts.map +1 -0
  51. package/dist/garbageCollectionHelpers.js +45 -0
  52. package/dist/garbageCollectionHelpers.js.map +1 -0
  53. package/dist/gcSweepReadyUsageDetection.d.ts +5 -5
  54. package/dist/gcSweepReadyUsageDetection.d.ts.map +1 -1
  55. package/dist/gcSweepReadyUsageDetection.js +14 -10
  56. package/dist/gcSweepReadyUsageDetection.js.map +1 -1
  57. package/dist/index.d.ts +2 -2
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js.map +1 -1
  60. package/dist/opLifecycle/batchManager.d.ts +5 -5
  61. package/dist/opLifecycle/batchManager.d.ts.map +1 -1
  62. package/dist/opLifecycle/batchManager.js +19 -12
  63. package/dist/opLifecycle/batchManager.js.map +1 -1
  64. package/dist/opLifecycle/definitions.d.ts.map +1 -1
  65. package/dist/opLifecycle/definitions.js.map +1 -1
  66. package/dist/opLifecycle/index.d.ts.map +1 -1
  67. package/dist/opLifecycle/index.js.map +1 -1
  68. package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
  69. package/dist/opLifecycle/opCompressor.js.map +1 -1
  70. package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
  71. package/dist/opLifecycle/opDecompressor.js +5 -2
  72. package/dist/opLifecycle/opDecompressor.js.map +1 -1
  73. package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
  74. package/dist/opLifecycle/opSplitter.js +4 -1
  75. package/dist/opLifecycle/opSplitter.js.map +1 -1
  76. package/dist/opLifecycle/outbox.d.ts.map +1 -1
  77. package/dist/opLifecycle/outbox.js +19 -17
  78. package/dist/opLifecycle/outbox.js.map +1 -1
  79. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  80. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  81. package/dist/opProperties.d.ts.map +1 -1
  82. package/dist/opProperties.js +1 -3
  83. package/dist/opProperties.js.map +1 -1
  84. package/dist/orderedClientElection.d.ts.map +1 -1
  85. package/dist/orderedClientElection.js +10 -4
  86. package/dist/orderedClientElection.js.map +1 -1
  87. package/dist/packageVersion.d.ts +1 -1
  88. package/dist/packageVersion.js +1 -1
  89. package/dist/packageVersion.js.map +1 -1
  90. package/dist/pendingStateManager.d.ts +7 -0
  91. package/dist/pendingStateManager.d.ts.map +1 -1
  92. package/dist/pendingStateManager.js +7 -4
  93. package/dist/pendingStateManager.js.map +1 -1
  94. package/dist/runWhileConnectedCoordinator.d.ts.map +1 -1
  95. package/dist/runWhileConnectedCoordinator.js.map +1 -1
  96. package/dist/runningSummarizer.d.ts.map +1 -1
  97. package/dist/runningSummarizer.js +34 -21
  98. package/dist/runningSummarizer.js.map +1 -1
  99. package/dist/scheduleManager.d.ts.map +1 -1
  100. package/dist/scheduleManager.js +3 -2
  101. package/dist/scheduleManager.js.map +1 -1
  102. package/dist/serializedSnapshotStorage.d.ts +2 -2
  103. package/dist/serializedSnapshotStorage.d.ts.map +1 -1
  104. package/dist/serializedSnapshotStorage.js +5 -3
  105. package/dist/serializedSnapshotStorage.js.map +1 -1
  106. package/dist/summarizer.d.ts +2 -2
  107. package/dist/summarizer.d.ts.map +1 -1
  108. package/dist/summarizer.js +37 -17
  109. package/dist/summarizer.js.map +1 -1
  110. package/dist/summarizerClientElection.d.ts.map +1 -1
  111. package/dist/summarizerClientElection.js.map +1 -1
  112. package/dist/summarizerHandle.d.ts.map +1 -1
  113. package/dist/summarizerHandle.js.map +1 -1
  114. package/dist/summarizerHeuristics.d.ts.map +1 -1
  115. package/dist/summarizerHeuristics.js +6 -9
  116. package/dist/summarizerHeuristics.js.map +1 -1
  117. package/dist/summarizerTypes.d.ts +21 -21
  118. package/dist/summarizerTypes.d.ts.map +1 -1
  119. package/dist/summarizerTypes.js.map +1 -1
  120. package/dist/summaryCollection.d.ts.map +1 -1
  121. package/dist/summaryCollection.js +18 -8
  122. package/dist/summaryCollection.js.map +1 -1
  123. package/dist/summaryFormat.d.ts +22 -0
  124. package/dist/summaryFormat.d.ts.map +1 -1
  125. package/dist/summaryFormat.js +18 -10
  126. package/dist/summaryFormat.js.map +1 -1
  127. package/dist/summaryGenerator.d.ts.map +1 -1
  128. package/dist/summaryGenerator.js +34 -15
  129. package/dist/summaryGenerator.js.map +1 -1
  130. package/dist/summaryManager.d.ts.map +1 -1
  131. package/dist/summaryManager.js +21 -9
  132. package/dist/summaryManager.js.map +1 -1
  133. package/dist/throttler.d.ts +2 -2
  134. package/dist/throttler.d.ts.map +1 -1
  135. package/dist/throttler.js +4 -4
  136. package/dist/throttler.js.map +1 -1
  137. package/garbageCollection.md +15 -2
  138. package/lib/batchTracker.d.ts.map +1 -1
  139. package/lib/batchTracker.js +2 -1
  140. package/lib/batchTracker.js.map +1 -1
  141. package/lib/blobManager.d.ts +9 -2
  142. package/lib/blobManager.d.ts.map +1 -1
  143. package/lib/blobManager.js +82 -35
  144. package/lib/blobManager.js.map +1 -1
  145. package/lib/connectionTelemetry.d.ts.map +1 -1
  146. package/lib/connectionTelemetry.js +11 -9
  147. package/lib/connectionTelemetry.js.map +1 -1
  148. package/lib/containerHandleContext.d.ts.map +1 -1
  149. package/lib/containerHandleContext.js +3 -1
  150. package/lib/containerHandleContext.js.map +1 -1
  151. package/lib/containerRuntime.d.ts +10 -0
  152. package/lib/containerRuntime.d.ts.map +1 -1
  153. package/lib/containerRuntime.js +146 -78
  154. package/lib/containerRuntime.js.map +1 -1
  155. package/lib/dataStore.d.ts.map +1 -1
  156. package/lib/dataStore.js +11 -9
  157. package/lib/dataStore.js.map +1 -1
  158. package/lib/dataStoreContext.d.ts +18 -1
  159. package/lib/dataStoreContext.d.ts.map +1 -1
  160. package/lib/dataStoreContext.js +68 -17
  161. package/lib/dataStoreContext.js.map +1 -1
  162. package/lib/dataStoreContexts.d.ts.map +1 -1
  163. package/lib/dataStoreContexts.js +7 -3
  164. package/lib/dataStoreContexts.js.map +1 -1
  165. package/lib/dataStoreRegistry.d.ts.map +1 -1
  166. package/lib/dataStoreRegistry.js +3 -1
  167. package/lib/dataStoreRegistry.js.map +1 -1
  168. package/lib/dataStores.d.ts +26 -1
  169. package/lib/dataStores.d.ts.map +1 -1
  170. package/lib/dataStores.js +109 -24
  171. package/lib/dataStores.js.map +1 -1
  172. package/lib/deltaScheduler.d.ts.map +1 -1
  173. package/lib/deltaScheduler.js +9 -4
  174. package/lib/deltaScheduler.js.map +1 -1
  175. package/lib/garbageCollection.d.ts +34 -14
  176. package/lib/garbageCollection.d.ts.map +1 -1
  177. package/lib/garbageCollection.js +190 -95
  178. package/lib/garbageCollection.js.map +1 -1
  179. package/lib/garbageCollectionConstants.d.ts +3 -0
  180. package/lib/garbageCollectionConstants.d.ts.map +1 -1
  181. package/lib/garbageCollectionConstants.js +5 -0
  182. package/lib/garbageCollectionConstants.js.map +1 -1
  183. package/lib/garbageCollectionHelpers.d.ts +26 -0
  184. package/lib/garbageCollectionHelpers.d.ts.map +1 -0
  185. package/lib/garbageCollectionHelpers.js +40 -0
  186. package/lib/garbageCollectionHelpers.js.map +1 -0
  187. package/lib/gcSweepReadyUsageDetection.d.ts +5 -5
  188. package/lib/gcSweepReadyUsageDetection.d.ts.map +1 -1
  189. package/lib/gcSweepReadyUsageDetection.js +14 -10
  190. package/lib/gcSweepReadyUsageDetection.js.map +1 -1
  191. package/lib/index.d.ts +2 -2
  192. package/lib/index.d.ts.map +1 -1
  193. package/lib/index.js +1 -1
  194. package/lib/index.js.map +1 -1
  195. package/lib/opLifecycle/batchManager.d.ts +5 -5
  196. package/lib/opLifecycle/batchManager.d.ts.map +1 -1
  197. package/lib/opLifecycle/batchManager.js +19 -12
  198. package/lib/opLifecycle/batchManager.js.map +1 -1
  199. package/lib/opLifecycle/definitions.d.ts.map +1 -1
  200. package/lib/opLifecycle/definitions.js.map +1 -1
  201. package/lib/opLifecycle/index.d.ts.map +1 -1
  202. package/lib/opLifecycle/index.js.map +1 -1
  203. package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
  204. package/lib/opLifecycle/opCompressor.js.map +1 -1
  205. package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
  206. package/lib/opLifecycle/opDecompressor.js +5 -2
  207. package/lib/opLifecycle/opDecompressor.js.map +1 -1
  208. package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
  209. package/lib/opLifecycle/opSplitter.js +5 -2
  210. package/lib/opLifecycle/opSplitter.js.map +1 -1
  211. package/lib/opLifecycle/outbox.d.ts.map +1 -1
  212. package/lib/opLifecycle/outbox.js +19 -17
  213. package/lib/opLifecycle/outbox.js.map +1 -1
  214. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  215. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  216. package/lib/opProperties.d.ts.map +1 -1
  217. package/lib/opProperties.js +1 -3
  218. package/lib/opProperties.js.map +1 -1
  219. package/lib/orderedClientElection.d.ts.map +1 -1
  220. package/lib/orderedClientElection.js +10 -4
  221. package/lib/orderedClientElection.js.map +1 -1
  222. package/lib/packageVersion.d.ts +1 -1
  223. package/lib/packageVersion.js +1 -1
  224. package/lib/packageVersion.js.map +1 -1
  225. package/lib/pendingStateManager.d.ts +7 -0
  226. package/lib/pendingStateManager.d.ts.map +1 -1
  227. package/lib/pendingStateManager.js +7 -4
  228. package/lib/pendingStateManager.js.map +1 -1
  229. package/lib/runWhileConnectedCoordinator.d.ts.map +1 -1
  230. package/lib/runWhileConnectedCoordinator.js.map +1 -1
  231. package/lib/runningSummarizer.d.ts.map +1 -1
  232. package/lib/runningSummarizer.js +35 -22
  233. package/lib/runningSummarizer.js.map +1 -1
  234. package/lib/scheduleManager.d.ts.map +1 -1
  235. package/lib/scheduleManager.js +3 -2
  236. package/lib/scheduleManager.js.map +1 -1
  237. package/lib/serializedSnapshotStorage.d.ts +2 -2
  238. package/lib/serializedSnapshotStorage.d.ts.map +1 -1
  239. package/lib/serializedSnapshotStorage.js +5 -3
  240. package/lib/serializedSnapshotStorage.js.map +1 -1
  241. package/lib/summarizer.d.ts +2 -2
  242. package/lib/summarizer.d.ts.map +1 -1
  243. package/lib/summarizer.js +37 -17
  244. package/lib/summarizer.js.map +1 -1
  245. package/lib/summarizerClientElection.d.ts.map +1 -1
  246. package/lib/summarizerClientElection.js.map +1 -1
  247. package/lib/summarizerHandle.d.ts.map +1 -1
  248. package/lib/summarizerHandle.js.map +1 -1
  249. package/lib/summarizerHeuristics.d.ts.map +1 -1
  250. package/lib/summarizerHeuristics.js +6 -9
  251. package/lib/summarizerHeuristics.js.map +1 -1
  252. package/lib/summarizerTypes.d.ts +21 -21
  253. package/lib/summarizerTypes.d.ts.map +1 -1
  254. package/lib/summarizerTypes.js.map +1 -1
  255. package/lib/summaryCollection.d.ts.map +1 -1
  256. package/lib/summaryCollection.js +18 -8
  257. package/lib/summaryCollection.js.map +1 -1
  258. package/lib/summaryFormat.d.ts +22 -0
  259. package/lib/summaryFormat.d.ts.map +1 -1
  260. package/lib/summaryFormat.js +20 -12
  261. package/lib/summaryFormat.js.map +1 -1
  262. package/lib/summaryGenerator.d.ts.map +1 -1
  263. package/lib/summaryGenerator.js +34 -15
  264. package/lib/summaryGenerator.js.map +1 -1
  265. package/lib/summaryManager.d.ts.map +1 -1
  266. package/lib/summaryManager.js +21 -9
  267. package/lib/summaryManager.js.map +1 -1
  268. package/lib/throttler.d.ts +2 -2
  269. package/lib/throttler.d.ts.map +1 -1
  270. package/lib/throttler.js +4 -4
  271. package/lib/throttler.js.map +1 -1
  272. package/package.json +121 -149
  273. package/prettier.config.cjs +1 -1
  274. package/src/batchTracker.ts +54 -49
  275. package/src/blobManager.ts +793 -672
  276. package/src/connectionTelemetry.ts +280 -249
  277. package/src/containerHandleContext.ts +27 -29
  278. package/src/containerRuntime.ts +3168 -2940
  279. package/src/dataStore.ts +172 -159
  280. package/src/dataStoreContext.ts +1098 -996
  281. package/src/dataStoreContexts.ts +178 -161
  282. package/src/dataStoreRegistry.ts +25 -20
  283. package/src/dataStores.ts +884 -728
  284. package/src/deltaScheduler.ts +158 -150
  285. package/src/garbageCollection.ts +1883 -1692
  286. package/src/garbageCollectionConstants.ts +6 -0
  287. package/src/garbageCollectionHelpers.ts +61 -0
  288. package/src/gcSweepReadyUsageDetection.ts +89 -83
  289. package/src/index.ts +67 -66
  290. package/src/opLifecycle/README.md +152 -0
  291. package/src/opLifecycle/batchManager.ts +145 -141
  292. package/src/opLifecycle/definitions.ts +29 -29
  293. package/src/opLifecycle/index.ts +5 -5
  294. package/src/opLifecycle/opCompressor.ts +54 -53
  295. package/src/opLifecycle/opDecompressor.ts +100 -81
  296. package/src/opLifecycle/opSplitter.ts +214 -188
  297. package/src/opLifecycle/outbox.ts +204 -194
  298. package/src/opLifecycle/remoteMessageProcessor.ts +62 -62
  299. package/src/opProperties.ts +11 -9
  300. package/src/orderedClientElection.ts +489 -457
  301. package/src/packageVersion.ts +1 -1
  302. package/src/pendingStateManager.ts +384 -338
  303. package/src/runWhileConnectedCoordinator.ts +78 -71
  304. package/src/runningSummarizer.ts +619 -581
  305. package/src/scheduleManager.ts +299 -269
  306. package/src/serializedSnapshotStorage.ts +126 -112
  307. package/src/summarizer.ts +417 -381
  308. package/src/summarizerClientElection.ts +107 -100
  309. package/src/summarizerHandle.ts +11 -9
  310. package/src/summarizerHeuristics.ts +183 -186
  311. package/src/summarizerTypes.ts +344 -330
  312. package/src/summaryCollection.ts +378 -349
  313. package/src/summaryFormat.ts +170 -126
  314. package/src/summaryGenerator.ts +465 -406
  315. package/src/summaryManager.ts +377 -348
  316. package/src/throttler.ts +131 -122
  317. package/tsconfig.esnext.json +6 -6
  318. package/tsconfig.json +9 -13
  319. package/dist/garbageCollectionTombstoneUtils.d.ts +0 -14
  320. package/dist/garbageCollectionTombstoneUtils.d.ts.map +0 -1
  321. package/dist/garbageCollectionTombstoneUtils.js +0 -23
  322. package/dist/garbageCollectionTombstoneUtils.js.map +0 -1
  323. package/lib/garbageCollectionTombstoneUtils.d.ts +0 -14
  324. package/lib/garbageCollectionTombstoneUtils.d.ts.map +0 -1
  325. package/lib/garbageCollectionTombstoneUtils.js +0 -19
  326. package/lib/garbageCollectionTombstoneUtils.js.map +0 -1
  327. package/src/garbageCollectionTombstoneUtils.ts +0 -28
@@ -1 +1 @@
1
- {"version":3,"file":"connectionTelemetry.js","sourceRoot":"","sources":["../src/connectionTelemetry.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryLogger } from \"@fluidframework/common-definitions\";\nimport { ChildLogger, TelemetryLogger } from \"@fluidframework/telemetry-utils\";\nimport { IDeltaManager } from \"@fluidframework/container-definitions\";\nimport {\n IDocumentMessage,\n ISequencedDocumentMessage,\n MessageType,\n} from \"@fluidframework/protocol-definitions\";\nimport { assert, performance } from \"@fluidframework/common-utils\";\n\n/**\n * We report various latency-related errors when waiting for op roundtrip takes longer than that amout of time.\n */\nexport const latencyThreshold = 5000;\n\n// Phases in OpPerfTelemetry:\n// 1.\tOp is added to DeltaManager (DM) buffer.\n// 2.\tOp is sent to service (op leaves outbound queue).\n// \t - Note: We do not know for sure when op is sent, we only track when it is added to outbound queue.\n// If outbound queue is paused, time queue is paused is counted as network time.\n// 3.\tOp received from service back (pushed to inbound queue).\n// 4.\tOp is processed.\ninterface IOpPerfTelemetryProperties {\n /** Measure time between (1) and (2) - Measure time outbound op is sitting in queue due to active batch */\n durationOutboundBatching: number; // was durationOutboundQueue in previous versions\n /** Measure time between (2) and (3) - Track how long it took for op to be acked by service */\n durationNetwork: number; // was durationInboundQueue\n /** Measure time between (3) and (4) - Time between DM's inbound \"push\" event until DM's \"op\" event */\n durationInboundToProcessing: number;\n /** Length of the DeltaManager's inbound queue at the time of the DM's inbound \"push\" event (3) */\n lengthInboundQueue: number;\n}\n\n/**\n * Timings collected at various moments during the op processing.\n */\n interface IOpPerfTimings {\n /** Starting time for (1) */\n submitOpEventTime: number;\n /** Starting time for (2) */\n outboundPushEventTime: number;\n /** Starting time for (3) */\n inboundPushEventTime: number;\n}\n\nclass OpPerfTelemetry {\n private pongCount: number = 0;\n private pingLatency: number | undefined;\n\n // Collab window tracking. This is timestamp of %1000 message.\n private sequenceNumberForMsnTracking: number | undefined;\n private msnTrackingTimestamp: number = 0;\n // To track round trip time for every %500 client message.\n private clientSequenceNumberForLatencyStatistics: number | undefined;\n\n private opProcessingTimes: Partial<IOpPerfTimings> = {};\n\n // Performance Data to be reported for ops round trips and processing.\n private opPerfData: Partial<IOpPerfTelemetryProperties> = {};\n\n private firstConnection = true;\n private connectionOpSeqNumber: number | undefined;\n private readonly bootTime = performance.now();\n private connectionStartTime = 0;\n private gap = 0;\n\n private readonly logger: ITelemetryLogger;\n\n public constructor(\n private clientId: string | undefined,\n private readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>,\n logger: ITelemetryLogger) {\n this.logger = ChildLogger.create(logger, \"OpPerf\");\n\n this.deltaManager.on(\"pong\", (latency) => this.recordPingTime(latency));\n this.deltaManager.on(\"submitOp\", (message) => this.beforeOpSubmit(message));\n\n this.deltaManager.on(\"op\", (message) => this.afterProcessingOp(message));\n\n this.deltaManager.on(\"connect\", (details, opsBehind) => {\n this.clientId = details.clientId;\n if (opsBehind !== undefined) {\n this.connectionOpSeqNumber = this.deltaManager.lastKnownSeqNumber;\n this.gap = opsBehind;\n this.connectionStartTime = performance.now();\n\n // We might be already up-today. If so, report it right away.\n if (this.gap <= 0) {\n this.reportGettingUpToDate();\n }\n }\n });\n this.deltaManager.on(\"disconnect\", () => {\n this.sequenceNumberForMsnTracking = undefined;\n this.clientSequenceNumberForLatencyStatistics = undefined;\n this.opProcessingTimes = {};\n this.opPerfData = {};\n this.connectionOpSeqNumber = undefined;\n this.firstConnection = false;\n this.pongCount = 0;\n });\n\n this.deltaManager.outbound.on(\"push\", (messages) => {\n for (const msg of messages) {\n if (msg.type === MessageType.Operation &&\n this.clientSequenceNumberForLatencyStatistics === msg.clientSequenceNumber) {\n assert(this.opProcessingTimes.outboundPushEventTime === undefined,\n 0x2c8 /* \"outboundPushEventTime should be undefined\" */);\n assert(this.opPerfData.durationNetwork === undefined,\n 0x2c9 /* \"durationNetwork should be undefined\" */);\n this.opProcessingTimes.outboundPushEventTime = Date.now();\n\n assert(this.opPerfData.durationOutboundBatching === undefined,\n 0x2ca /* \"durationOutboundBatching should be undefined\" */);\n\n assert(this.opProcessingTimes.submitOpEventTime !== undefined,\n 0x2cb /* \"submitOpEventTime should be undefined\" */);\n\n this.opPerfData.durationOutboundBatching = this.opProcessingTimes.outboundPushEventTime\n - this.opProcessingTimes.submitOpEventTime;\n }\n }\n });\n\n this.deltaManager.inbound.on(\"push\", (message: ISequencedDocumentMessage) => {\n if (this.clientId === message.clientId &&\n message.type === MessageType.Operation &&\n this.clientSequenceNumberForLatencyStatistics === message.clientSequenceNumber &&\n this.opProcessingTimes.outboundPushEventTime !== undefined) {\n this.opProcessingTimes.inboundPushEventTime = Date.now();\n this.opPerfData.durationNetwork = this.opProcessingTimes.inboundPushEventTime\n - this.opProcessingTimes.outboundPushEventTime;\n this.opProcessingTimes.outboundPushEventTime = undefined;\n this.opPerfData.lengthInboundQueue = this.deltaManager.inbound.length;\n }\n });\n\n this.deltaManager.inbound.on(\"idle\", (count: number, duration: number) => {\n // Do not want to log zero for sure.\n // We are more interested in aggregates, so logging only if we are processing some number of ops\n // Cut-off is arbitrary - can be increased or decreased based on amount of data collected and questions we\n // want to get answered\n // back-compat: Once 0.36 loader version saturates (count & duration args were added there),\n // we can remove typeof check.\n if (typeof count === \"number\" && count >= 100) {\n this.logger.sendPerformanceEvent({\n eventName: \"GetDeltas_OpProcessing\",\n count,\n duration,\n });\n }\n });\n }\n\n private reportGettingUpToDate() {\n this.connectionOpSeqNumber = undefined;\n this.logger.sendPerformanceEvent({\n eventName: \"ConnectionSpeed\",\n duration: performance.now() - this.connectionStartTime,\n ops: this.gap,\n // track time to connect only for first connection.\n timeToConnect: this.firstConnection ?\n TelemetryLogger.formatTick(this.connectionStartTime - this.bootTime) :\n undefined,\n firstConnection: this.firstConnection,\n });\n }\n\n private recordPingTime(latency: number) {\n this.pingLatency = latency;\n // logging one in every 1000 pongs, including the first time, if it is a \"write\" client.\n if (this.pongCount % 100 === 0 && this.deltaManager.active) {\n this.logger.sendPerformanceEvent({\n eventName: \"DeltaLatency\",\n duration: latency,\n });\n }\n this.pongCount++;\n }\n\n private beforeOpSubmit(message: IDocumentMessage) {\n // start with first client op and measure latency every 500 client ops\n if (this.clientSequenceNumberForLatencyStatistics === undefined &&\n message.clientSequenceNumber % 500 === 1) {\n assert(this.opProcessingTimes.outboundPushEventTime === undefined,\n 0x2cc /* \"OpTimeSittingInboundQueue should be undefined\" */);\n assert(this.opPerfData.durationNetwork === undefined,\n 0x2cd /* \"durationNetwork should be undefined\" */);\n this.opProcessingTimes.submitOpEventTime = Date.now();\n this.clientSequenceNumberForLatencyStatistics = message.clientSequenceNumber;\n }\n }\n\n private afterProcessingOp(message: ISequencedDocumentMessage) {\n const sequenceNumber = message.sequenceNumber;\n\n if (sequenceNumber === this.connectionOpSeqNumber) {\n this.reportGettingUpToDate();\n }\n\n // Record collab window max size after every 1000th op.\n if (this.sequenceNumberForMsnTracking === undefined && sequenceNumber % 1000 === 0) {\n this.sequenceNumberForMsnTracking = sequenceNumber;\n this.msnTrackingTimestamp = message.timestamp;\n }\n if (this.sequenceNumberForMsnTracking !== undefined &&\n message.minimumSequenceNumber >= this.sequenceNumberForMsnTracking) {\n assert(this.msnTrackingTimestamp !== undefined,\n 0x2ce /* \"msnTrackingTimestamp should not be undefined\" */);\n this.logger.sendPerformanceEvent({\n eventName: \"MsnStatistics\",\n sequenceNumber,\n msnDistance: sequenceNumber - this.sequenceNumberForMsnTracking,\n duration: message.timestamp - this.msnTrackingTimestamp,\n });\n this.sequenceNumberForMsnTracking = undefined;\n }\n\n if (this.clientId === message.clientId &&\n this.clientSequenceNumberForLatencyStatistics === message.clientSequenceNumber) {\n assert(this.opProcessingTimes.submitOpEventTime !== undefined,\n 0x120 /* \"Undefined latency statistics (op send time)\" */);\n const currentTime = Date.now();\n\n if (this.opProcessingTimes.inboundPushEventTime !== undefined) {\n this.opPerfData.durationInboundToProcessing = currentTime\n - this.opProcessingTimes.inboundPushEventTime;\n }\n\n const duration = currentTime - this.opProcessingTimes.submitOpEventTime;\n\n // One of the core expectations for Fluid service is to be fast.\n // When it's not the case, we want to learn about it and be able to investigate, so\n // raise awareness.\n // This also helps identify cases where it's due to client behavior (sending too many ops)\n // that results in overwhelming ordering service and thus starting to see long latencies.\n // The threshold could be adjusted, but ideally it stays workload-agnostic, as service\n // performance impacts all workloads relying on service.\n const category = duration > latencyThreshold ? \"error\" : \"performance\";\n\n this.logger.sendPerformanceEvent({\n eventName: \"OpRoundtripTime\",\n sequenceNumber,\n referenceSequenceNumber: message.referenceSequenceNumber,\n duration,\n category,\n pingLatency: this.pingLatency,\n msnDistance: this.deltaManager.lastSequenceNumber - this.deltaManager.minimumSequenceNumber,\n ...this.opPerfData,\n });\n this.clientSequenceNumberForLatencyStatistics = undefined;\n this.opPerfData = {};\n }\n }\n}\nexport interface IPerfSignalReport {\n /**\n * Identifier for the signal being submitted in order to\n * allow collection of data around the roundtrip of signal messages.\n */\n signalSequenceNumber: number;\n /**\n * Number of signals that were expected but not received.\n */\n signalsLost: number;\n\n /**\n * Timestamp before submitting the signal we will trace.\n */\n signalTimestamp: number;\n\n /**\n * Expected Signal Sequence to be received.\n */\n trackingSignalSequenceNumber: number | undefined;\n}\n\nexport function ReportOpPerfTelemetry(\n clientId: string | undefined,\n deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>,\n logger: ITelemetryLogger) {\n new OpPerfTelemetry(clientId, deltaManager, logger);\n}\n"]}
1
+ {"version":3,"file":"connectionTelemetry.js","sourceRoot":"","sources":["../src/connectionTelemetry.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryLogger } from \"@fluidframework/common-definitions\";\nimport { ChildLogger, TelemetryLogger } from \"@fluidframework/telemetry-utils\";\nimport { IDeltaManager } from \"@fluidframework/container-definitions\";\nimport {\n\tIDocumentMessage,\n\tISequencedDocumentMessage,\n\tMessageType,\n} from \"@fluidframework/protocol-definitions\";\nimport { assert, performance } from \"@fluidframework/common-utils\";\n\n/**\n * We report various latency-related errors when waiting for op roundtrip takes longer than that amout of time.\n */\nexport const latencyThreshold = 5000;\n\n// Phases in OpPerfTelemetry:\n// 1.\tOp is added to DeltaManager (DM) buffer.\n// 2.\tOp is sent to service (op leaves outbound queue).\n// \t - Note: We do not know for sure when op is sent, we only track when it is added to outbound queue.\n// If outbound queue is paused, time queue is paused is counted as network time.\n// 3.\tOp received from service back (pushed to inbound queue).\n// 4.\tOp is processed.\ninterface IOpPerfTelemetryProperties {\n\t/** Measure time between (1) and (2) - Measure time outbound op is sitting in queue due to active batch */\n\tdurationOutboundBatching: number; // was durationOutboundQueue in previous versions\n\t/** Measure time between (2) and (3) - Track how long it took for op to be acked by service */\n\tdurationNetwork: number; // was durationInboundQueue\n\t/** Measure time between (3) and (4) - Time between DM's inbound \"push\" event until DM's \"op\" event */\n\tdurationInboundToProcessing: number;\n\t/** Length of the DeltaManager's inbound queue at the time of the DM's inbound \"push\" event (3) */\n\tlengthInboundQueue: number;\n}\n\n/**\n * Timings collected at various moments during the op processing.\n */\ninterface IOpPerfTimings {\n\t/** Starting time for (1) */\n\tsubmitOpEventTime: number;\n\t/** Starting time for (2) */\n\toutboundPushEventTime: number;\n\t/** Starting time for (3) */\n\tinboundPushEventTime: number;\n}\n\nclass OpPerfTelemetry {\n\tprivate pongCount: number = 0;\n\tprivate pingLatency: number | undefined;\n\n\t// Collab window tracking. This is timestamp of %1000 message.\n\tprivate sequenceNumberForMsnTracking: number | undefined;\n\tprivate msnTrackingTimestamp: number = 0;\n\t// To track round trip time for every %500 client message.\n\tprivate clientSequenceNumberForLatencyStatistics: number | undefined;\n\n\tprivate opProcessingTimes: Partial<IOpPerfTimings> = {};\n\n\t// Performance Data to be reported for ops round trips and processing.\n\tprivate opPerfData: Partial<IOpPerfTelemetryProperties> = {};\n\n\tprivate firstConnection = true;\n\tprivate connectionOpSeqNumber: number | undefined;\n\tprivate readonly bootTime = performance.now();\n\tprivate connectionStartTime = 0;\n\tprivate gap = 0;\n\n\tprivate readonly logger: ITelemetryLogger;\n\n\tpublic constructor(\n\t\tprivate clientId: string | undefined,\n\t\tprivate readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>,\n\t\tlogger: ITelemetryLogger,\n\t) {\n\t\tthis.logger = ChildLogger.create(logger, \"OpPerf\");\n\n\t\tthis.deltaManager.on(\"pong\", (latency) => this.recordPingTime(latency));\n\t\tthis.deltaManager.on(\"submitOp\", (message) => this.beforeOpSubmit(message));\n\n\t\tthis.deltaManager.on(\"op\", (message) => this.afterProcessingOp(message));\n\n\t\tthis.deltaManager.on(\"connect\", (details, opsBehind) => {\n\t\t\tthis.clientId = details.clientId;\n\t\t\tif (opsBehind !== undefined) {\n\t\t\t\tthis.connectionOpSeqNumber = this.deltaManager.lastKnownSeqNumber;\n\t\t\t\tthis.gap = opsBehind;\n\t\t\t\tthis.connectionStartTime = performance.now();\n\n\t\t\t\t// We might be already up-today. If so, report it right away.\n\t\t\t\tif (this.gap <= 0) {\n\t\t\t\t\tthis.reportGettingUpToDate();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tthis.deltaManager.on(\"disconnect\", () => {\n\t\t\tthis.sequenceNumberForMsnTracking = undefined;\n\t\t\tthis.clientSequenceNumberForLatencyStatistics = undefined;\n\t\t\tthis.opProcessingTimes = {};\n\t\t\tthis.opPerfData = {};\n\t\t\tthis.connectionOpSeqNumber = undefined;\n\t\t\tthis.firstConnection = false;\n\t\t\tthis.pongCount = 0;\n\t\t});\n\n\t\tthis.deltaManager.outbound.on(\"push\", (messages) => {\n\t\t\tfor (const msg of messages) {\n\t\t\t\tif (\n\t\t\t\t\tmsg.type === MessageType.Operation &&\n\t\t\t\t\tthis.clientSequenceNumberForLatencyStatistics === msg.clientSequenceNumber\n\t\t\t\t) {\n\t\t\t\t\tassert(\n\t\t\t\t\t\tthis.opProcessingTimes.outboundPushEventTime === undefined,\n\t\t\t\t\t\t0x2c8 /* \"outboundPushEventTime should be undefined\" */,\n\t\t\t\t\t);\n\t\t\t\t\tassert(\n\t\t\t\t\t\tthis.opPerfData.durationNetwork === undefined,\n\t\t\t\t\t\t0x2c9 /* \"durationNetwork should be undefined\" */,\n\t\t\t\t\t);\n\t\t\t\t\tthis.opProcessingTimes.outboundPushEventTime = Date.now();\n\n\t\t\t\t\tassert(\n\t\t\t\t\t\tthis.opPerfData.durationOutboundBatching === undefined,\n\t\t\t\t\t\t0x2ca /* \"durationOutboundBatching should be undefined\" */,\n\t\t\t\t\t);\n\n\t\t\t\t\tassert(\n\t\t\t\t\t\tthis.opProcessingTimes.submitOpEventTime !== undefined,\n\t\t\t\t\t\t0x2cb /* \"submitOpEventTime should be undefined\" */,\n\t\t\t\t\t);\n\n\t\t\t\t\tthis.opPerfData.durationOutboundBatching =\n\t\t\t\t\t\tthis.opProcessingTimes.outboundPushEventTime -\n\t\t\t\t\t\tthis.opProcessingTimes.submitOpEventTime;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.deltaManager.inbound.on(\"push\", (message: ISequencedDocumentMessage) => {\n\t\t\tif (\n\t\t\t\tthis.clientId === message.clientId &&\n\t\t\t\tmessage.type === MessageType.Operation &&\n\t\t\t\tthis.clientSequenceNumberForLatencyStatistics === message.clientSequenceNumber &&\n\t\t\t\tthis.opProcessingTimes.outboundPushEventTime !== undefined\n\t\t\t) {\n\t\t\t\tthis.opProcessingTimes.inboundPushEventTime = Date.now();\n\t\t\t\tthis.opPerfData.durationNetwork =\n\t\t\t\t\tthis.opProcessingTimes.inboundPushEventTime -\n\t\t\t\t\tthis.opProcessingTimes.outboundPushEventTime;\n\t\t\t\tthis.opProcessingTimes.outboundPushEventTime = undefined;\n\t\t\t\tthis.opPerfData.lengthInboundQueue = this.deltaManager.inbound.length;\n\t\t\t}\n\t\t});\n\n\t\tthis.deltaManager.inbound.on(\"idle\", (count: number, duration: number) => {\n\t\t\t// Do not want to log zero for sure.\n\t\t\t// We are more interested in aggregates, so logging only if we are processing some number of ops\n\t\t\t// Cut-off is arbitrary - can be increased or decreased based on amount of data collected and questions we\n\t\t\t// want to get answered\n\t\t\t// back-compat: Once 0.36 loader version saturates (count & duration args were added there),\n\t\t\t// we can remove typeof check.\n\t\t\tif (typeof count === \"number\" && count >= 100) {\n\t\t\t\tthis.logger.sendPerformanceEvent({\n\t\t\t\t\teventName: \"GetDeltas_OpProcessing\",\n\t\t\t\t\tcount,\n\t\t\t\t\tduration,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate reportGettingUpToDate() {\n\t\tthis.connectionOpSeqNumber = undefined;\n\t\tthis.logger.sendPerformanceEvent({\n\t\t\teventName: \"ConnectionSpeed\",\n\t\t\tduration: performance.now() - this.connectionStartTime,\n\t\t\tops: this.gap,\n\t\t\t// track time to connect only for first connection.\n\t\t\ttimeToConnect: this.firstConnection\n\t\t\t\t? TelemetryLogger.formatTick(this.connectionStartTime - this.bootTime)\n\t\t\t\t: undefined,\n\t\t\tfirstConnection: this.firstConnection,\n\t\t});\n\t}\n\n\tprivate recordPingTime(latency: number) {\n\t\tthis.pingLatency = latency;\n\t\t// logging one in every 1000 pongs, including the first time, if it is a \"write\" client.\n\t\tif (this.pongCount % 100 === 0 && this.deltaManager.active) {\n\t\t\tthis.logger.sendPerformanceEvent({\n\t\t\t\teventName: \"DeltaLatency\",\n\t\t\t\tduration: latency,\n\t\t\t});\n\t\t}\n\t\tthis.pongCount++;\n\t}\n\n\tprivate beforeOpSubmit(message: IDocumentMessage) {\n\t\t// start with first client op and measure latency every 500 client ops\n\t\tif (\n\t\t\tthis.clientSequenceNumberForLatencyStatistics === undefined &&\n\t\t\tmessage.clientSequenceNumber % 500 === 1\n\t\t) {\n\t\t\tassert(\n\t\t\t\tthis.opProcessingTimes.outboundPushEventTime === undefined,\n\t\t\t\t0x2cc /* \"OpTimeSittingInboundQueue should be undefined\" */,\n\t\t\t);\n\t\t\tassert(\n\t\t\t\tthis.opPerfData.durationNetwork === undefined,\n\t\t\t\t0x2cd /* \"durationNetwork should be undefined\" */,\n\t\t\t);\n\t\t\tthis.opProcessingTimes.submitOpEventTime = Date.now();\n\t\t\tthis.clientSequenceNumberForLatencyStatistics = message.clientSequenceNumber;\n\t\t}\n\t}\n\n\tprivate afterProcessingOp(message: ISequencedDocumentMessage) {\n\t\tconst sequenceNumber = message.sequenceNumber;\n\n\t\tif (sequenceNumber === this.connectionOpSeqNumber) {\n\t\t\tthis.reportGettingUpToDate();\n\t\t}\n\n\t\t// Record collab window max size after every 1000th op.\n\t\tif (this.sequenceNumberForMsnTracking === undefined && sequenceNumber % 1000 === 0) {\n\t\t\tthis.sequenceNumberForMsnTracking = sequenceNumber;\n\t\t\tthis.msnTrackingTimestamp = message.timestamp;\n\t\t}\n\t\tif (\n\t\t\tthis.sequenceNumberForMsnTracking !== undefined &&\n\t\t\tmessage.minimumSequenceNumber >= this.sequenceNumberForMsnTracking\n\t\t) {\n\t\t\tassert(\n\t\t\t\tthis.msnTrackingTimestamp !== undefined,\n\t\t\t\t0x2ce /* \"msnTrackingTimestamp should not be undefined\" */,\n\t\t\t);\n\t\t\tthis.logger.sendPerformanceEvent({\n\t\t\t\teventName: \"MsnStatistics\",\n\t\t\t\tsequenceNumber,\n\t\t\t\tmsnDistance: sequenceNumber - this.sequenceNumberForMsnTracking,\n\t\t\t\tduration: message.timestamp - this.msnTrackingTimestamp,\n\t\t\t});\n\t\t\tthis.sequenceNumberForMsnTracking = undefined;\n\t\t}\n\n\t\tif (\n\t\t\tthis.clientId === message.clientId &&\n\t\t\tthis.clientSequenceNumberForLatencyStatistics === message.clientSequenceNumber\n\t\t) {\n\t\t\tassert(\n\t\t\t\tthis.opProcessingTimes.submitOpEventTime !== undefined,\n\t\t\t\t0x120 /* \"Undefined latency statistics (op send time)\" */,\n\t\t\t);\n\t\t\tconst currentTime = Date.now();\n\n\t\t\tif (this.opProcessingTimes.inboundPushEventTime !== undefined) {\n\t\t\t\tthis.opPerfData.durationInboundToProcessing =\n\t\t\t\t\tcurrentTime - this.opProcessingTimes.inboundPushEventTime;\n\t\t\t}\n\n\t\t\tconst duration = currentTime - this.opProcessingTimes.submitOpEventTime;\n\n\t\t\t// One of the core expectations for Fluid service is to be fast.\n\t\t\t// When it's not the case, we want to learn about it and be able to investigate, so\n\t\t\t// raise awareness.\n\t\t\t// This also helps identify cases where it's due to client behavior (sending too many ops)\n\t\t\t// that results in overwhelming ordering service and thus starting to see long latencies.\n\t\t\t// The threshold could be adjusted, but ideally it stays workload-agnostic, as service\n\t\t\t// performance impacts all workloads relying on service.\n\t\t\tconst category = duration > latencyThreshold ? \"error\" : \"performance\";\n\n\t\t\tthis.logger.sendPerformanceEvent({\n\t\t\t\teventName: \"OpRoundtripTime\",\n\t\t\t\tsequenceNumber,\n\t\t\t\treferenceSequenceNumber: message.referenceSequenceNumber,\n\t\t\t\tduration,\n\t\t\t\tcategory,\n\t\t\t\tpingLatency: this.pingLatency,\n\t\t\t\tmsnDistance:\n\t\t\t\t\tthis.deltaManager.lastSequenceNumber - this.deltaManager.minimumSequenceNumber,\n\t\t\t\t...this.opPerfData,\n\t\t\t});\n\t\t\tthis.clientSequenceNumberForLatencyStatistics = undefined;\n\t\t\tthis.opPerfData = {};\n\t\t}\n\t}\n}\nexport interface IPerfSignalReport {\n\t/**\n\t * Identifier for the signal being submitted in order to\n\t * allow collection of data around the roundtrip of signal messages.\n\t */\n\tsignalSequenceNumber: number;\n\t/**\n\t * Number of signals that were expected but not received.\n\t */\n\tsignalsLost: number;\n\n\t/**\n\t * Timestamp before submitting the signal we will trace.\n\t */\n\tsignalTimestamp: number;\n\n\t/**\n\t * Expected Signal Sequence to be received.\n\t */\n\ttrackingSignalSequenceNumber: number | undefined;\n}\n\nexport function ReportOpPerfTelemetry(\n\tclientId: string | undefined,\n\tdeltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>,\n\tlogger: ITelemetryLogger,\n) {\n\tnew OpPerfTelemetry(clientId, deltaManager, logger);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"containerHandleContext.d.ts","sourceRoot":"","sources":["../src/containerHandleContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACZ,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBAAa,2BAA4B,YAAW,mBAAmB;aAW/C,IAAI,EAAE,MAAM;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO;aACR,YAAY,CAAC;IAZjC,IAAW,mBAAmB,SAAmB;IACjD,SAAgB,YAAY,EAAE,MAAM,CAAC;IAErC;;;;;OAKG;gBAEiB,IAAI,EAAE,MAAM,EACX,OAAO,EAAE,gBAAgB,EAC1B,YAAY,CAAC,iCAAqB;IAK/C,WAAW,IAAI,IAAI;IAI1B,IAAW,UAAU,YAEpB;IAEY,aAAa,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;CAGpE"}
1
+ {"version":3,"file":"containerHandleContext.d.ts","sourceRoot":"","sources":["../src/containerHandleContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBAAa,2BAA4B,YAAW,mBAAmB;aAarD,IAAI,EAAE,MAAM;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO;aACR,YAAY,CAAC;IAd9B,IAAW,mBAAmB,SAE7B;IACD,SAAgB,YAAY,EAAE,MAAM,CAAC;IAErC;;;;;OAKG;gBAEc,IAAI,EAAE,MAAM,EACX,OAAO,EAAE,gBAAgB,EAC1B,YAAY,CAAC,iCAAqB;IAK5C,WAAW,IAAI,IAAI;IAI1B,IAAW,UAAU,YAEpB;IAEY,aAAa,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;CAGjE"}
@@ -17,7 +17,9 @@ export class ContainerFluidHandleContext {
17
17
  this.routeContext = routeContext;
18
18
  this.absolutePath = generateHandleContextPath(path, this.routeContext);
19
19
  }
20
- get IFluidHandleContext() { return this; }
20
+ get IFluidHandleContext() {
21
+ return this;
22
+ }
21
23
  attachGraph() {
22
24
  throw new Error("can't attach container runtime form within container!");
23
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"containerHandleContext.js","sourceRoot":"","sources":["../src/containerHandleContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAG1E,MAAM,OAAO,2BAA2B;IAIpC;;;;;OAKG;IACH,YACoB,IAAY,EACX,OAAyB,EAC1B,YAAkC;QAFlC,SAAI,GAAJ,IAAI,CAAQ;QACX,YAAO,GAAP,OAAO,CAAkB;QAC1B,iBAAY,GAAZ,YAAY,CAAsB;QAElD,IAAI,CAAC,YAAY,GAAG,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3E,CAAC;IAfD,IAAW,mBAAmB,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAiB1C,WAAW;QACd,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC7E,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,WAAW,CAAC,QAAQ,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,OAAiB;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;CACJ","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n IFluidHandleContext,\n IRequest,\n IResponse,\n} from \"@fluidframework/core-interfaces\";\nimport { AttachState } from \"@fluidframework/container-definitions\";\nimport { generateHandleContextPath } from \"@fluidframework/runtime-utils\";\nimport { ContainerRuntime } from \"./containerRuntime\";\n\nexport class ContainerFluidHandleContext implements IFluidHandleContext {\n public get IFluidHandleContext() { return this; }\n public readonly absolutePath: string;\n\n /**\n * Creates a new ContainerFluidHandleContext.\n * @param path - The path to this handle relative to the routeContext.\n * @param runtime - The IRuntime object this context represents.\n * @param routeContext - The parent IFluidHandleContext that has a route to this handle.\n */\n constructor(\n public readonly path: string,\n private readonly runtime: ContainerRuntime,\n public readonly routeContext?: IFluidHandleContext,\n ) {\n this.absolutePath = generateHandleContextPath(path, this.routeContext);\n }\n\n public attachGraph(): void {\n throw new Error(\"can't attach container runtime form within container!\");\n }\n\n public get isAttached() {\n return this.runtime.attachState !== AttachState.Detached;\n }\n\n public async resolveHandle(request: IRequest): Promise<IResponse> {\n return this.runtime.resolveHandle(request);\n }\n}\n"]}
1
+ {"version":3,"file":"containerHandleContext.js","sourceRoot":"","sources":["../src/containerHandleContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAG1E,MAAM,OAAO,2BAA2B;IAMvC;;;;;OAKG;IACH,YACiB,IAAY,EACX,OAAyB,EAC1B,YAAkC;QAFlC,SAAI,GAAJ,IAAI,CAAQ;QACX,YAAO,GAAP,OAAO,CAAkB;QAC1B,iBAAY,GAAZ,YAAY,CAAsB;QAElD,IAAI,CAAC,YAAY,GAAG,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACxE,CAAC;IAjBD,IAAW,mBAAmB;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IAiBM,WAAW;QACjB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC1E,CAAC;IAED,IAAW,UAAU;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,WAAW,CAAC,QAAQ,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,OAAiB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IFluidHandleContext, IRequest, IResponse } from \"@fluidframework/core-interfaces\";\nimport { AttachState } from \"@fluidframework/container-definitions\";\nimport { generateHandleContextPath } from \"@fluidframework/runtime-utils\";\nimport { ContainerRuntime } from \"./containerRuntime\";\n\nexport class ContainerFluidHandleContext implements IFluidHandleContext {\n\tpublic get IFluidHandleContext() {\n\t\treturn this;\n\t}\n\tpublic readonly absolutePath: string;\n\n\t/**\n\t * Creates a new ContainerFluidHandleContext.\n\t * @param path - The path to this handle relative to the routeContext.\n\t * @param runtime - The IRuntime object this context represents.\n\t * @param routeContext - The parent IFluidHandleContext that has a route to this handle.\n\t */\n\tconstructor(\n\t\tpublic readonly path: string,\n\t\tprivate readonly runtime: ContainerRuntime,\n\t\tpublic readonly routeContext?: IFluidHandleContext,\n\t) {\n\t\tthis.absolutePath = generateHandleContextPath(path, this.routeContext);\n\t}\n\n\tpublic attachGraph(): void {\n\t\tthrow new Error(\"can't attach container runtime form within container!\");\n\t}\n\n\tpublic get isAttached() {\n\t\treturn this.runtime.attachState !== AttachState.Detached;\n\t}\n\n\tpublic async resolveHandle(request: IRequest): Promise<IResponse> {\n\t\treturn this.runtime.resolveHandle(request);\n\t}\n}\n"]}
@@ -454,6 +454,10 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
454
454
  * a summary is generated.
455
455
  */
456
456
  private nextSummaryNumber;
457
+ /**
458
+ * If false, loading or using a Tombstoned object should merely log, not fail
459
+ */
460
+ readonly gcTombstoneEnforcementAllowed: boolean;
457
461
  /**
458
462
  * @internal
459
463
  */
@@ -581,6 +585,12 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
581
585
  * @param unusedRoutes - Data store and attachment blob routes that are unused in this Container.
582
586
  */
583
587
  updateUnusedRoutes(unusedRoutes: string[]): void;
588
+ /**
589
+ * This is called to delete objects from the runtime
590
+ * @param unusedRoutes - object routes and sub routes that can be deleted
591
+ * @returns - routes of objects deleted from the runtime
592
+ */
593
+ deleteUnusedNodes(unusedRoutes: string[]): string[];
584
594
  /**
585
595
  * This is called to update objects that are tombstones.
586
596
  * @param tombstonedRoutes - Data store and attachment blob routes that are tombstones in this Container.
@@ -1 +1 @@
1
- {"version":3,"file":"containerRuntime.d.ts","sourceRoot":"","sources":["../src/containerRuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"containerRuntime.d.ts","sourceRoot":"","sources":["../src/containerRuntime.ts"],"names":[],"mappings":"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"}