@fluidframework/container-runtime 1.3.0 → 2.0.0-dev.1.4.5.105745

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 (222) hide show
  1. package/.eslintrc.js +8 -22
  2. package/.mocharc.js +12 -0
  3. package/dist/batchManager.d.ts +37 -0
  4. package/dist/batchManager.d.ts.map +1 -0
  5. package/dist/batchManager.js +73 -0
  6. package/dist/batchManager.js.map +1 -0
  7. package/dist/batchTracker.d.ts +1 -2
  8. package/dist/batchTracker.d.ts.map +1 -1
  9. package/dist/batchTracker.js +2 -3
  10. package/dist/batchTracker.js.map +1 -1
  11. package/dist/blobManager.d.ts +87 -25
  12. package/dist/blobManager.d.ts.map +1 -1
  13. package/dist/blobManager.js +317 -99
  14. package/dist/blobManager.js.map +1 -1
  15. package/dist/containerRuntime.d.ts +110 -125
  16. package/dist/containerRuntime.d.ts.map +1 -1
  17. package/dist/containerRuntime.js +360 -549
  18. package/dist/containerRuntime.js.map +1 -1
  19. package/dist/dataStore.js +29 -24
  20. package/dist/dataStore.js.map +1 -1
  21. package/dist/dataStoreContext.d.ts +20 -14
  22. package/dist/dataStoreContext.d.ts.map +1 -1
  23. package/dist/dataStoreContext.js +49 -58
  24. package/dist/dataStoreContext.js.map +1 -1
  25. package/dist/dataStores.d.ts +12 -5
  26. package/dist/dataStores.d.ts.map +1 -1
  27. package/dist/dataStores.js +21 -20
  28. package/dist/dataStores.js.map +1 -1
  29. package/dist/deltaScheduler.d.ts +6 -4
  30. package/dist/deltaScheduler.d.ts.map +1 -1
  31. package/dist/deltaScheduler.js +6 -4
  32. package/dist/deltaScheduler.js.map +1 -1
  33. package/dist/garbageCollection.d.ts +74 -14
  34. package/dist/garbageCollection.d.ts.map +1 -1
  35. package/dist/garbageCollection.js +248 -169
  36. package/dist/garbageCollection.js.map +1 -1
  37. package/dist/gcSweepReadyUsageDetection.d.ts +53 -0
  38. package/dist/gcSweepReadyUsageDetection.d.ts.map +1 -0
  39. package/dist/gcSweepReadyUsageDetection.js +135 -0
  40. package/dist/gcSweepReadyUsageDetection.js.map +1 -0
  41. package/dist/index.d.ts +2 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +3 -2
  44. package/dist/index.js.map +1 -1
  45. package/dist/opProperties.d.ts +7 -0
  46. package/dist/opProperties.d.ts.map +1 -0
  47. package/dist/opProperties.js +20 -0
  48. package/dist/opProperties.js.map +1 -0
  49. package/dist/orderedClientElection.d.ts +28 -10
  50. package/dist/orderedClientElection.d.ts.map +1 -1
  51. package/dist/orderedClientElection.js +14 -4
  52. package/dist/orderedClientElection.js.map +1 -1
  53. package/dist/packageVersion.d.ts +1 -1
  54. package/dist/packageVersion.d.ts.map +1 -1
  55. package/dist/packageVersion.js +1 -1
  56. package/dist/packageVersion.js.map +1 -1
  57. package/dist/pendingStateManager.d.ts +0 -11
  58. package/dist/pendingStateManager.d.ts.map +1 -1
  59. package/dist/pendingStateManager.js +24 -46
  60. package/dist/pendingStateManager.js.map +1 -1
  61. package/dist/runningSummarizer.d.ts +14 -4
  62. package/dist/runningSummarizer.d.ts.map +1 -1
  63. package/dist/runningSummarizer.js +69 -27
  64. package/dist/runningSummarizer.js.map +1 -1
  65. package/dist/scheduleManager.d.ts +31 -0
  66. package/dist/scheduleManager.d.ts.map +1 -0
  67. package/dist/scheduleManager.js +243 -0
  68. package/dist/scheduleManager.js.map +1 -0
  69. package/dist/summarizer.d.ts +0 -2
  70. package/dist/summarizer.d.ts.map +1 -1
  71. package/dist/summarizer.js +1 -12
  72. package/dist/summarizer.js.map +1 -1
  73. package/dist/summarizerHeuristics.d.ts +26 -4
  74. package/dist/summarizerHeuristics.d.ts.map +1 -1
  75. package/dist/summarizerHeuristics.js +98 -18
  76. package/dist/summarizerHeuristics.js.map +1 -1
  77. package/dist/summarizerTypes.d.ts +45 -18
  78. package/dist/summarizerTypes.d.ts.map +1 -1
  79. package/dist/summarizerTypes.js +1 -1
  80. package/dist/summarizerTypes.js.map +1 -1
  81. package/dist/summaryCollection.d.ts +1 -0
  82. package/dist/summaryCollection.d.ts.map +1 -1
  83. package/dist/summaryCollection.js +31 -15
  84. package/dist/summaryCollection.js.map +1 -1
  85. package/dist/summaryFormat.d.ts +0 -5
  86. package/dist/summaryFormat.d.ts.map +1 -1
  87. package/dist/summaryFormat.js.map +1 -1
  88. package/dist/summaryGenerator.d.ts +1 -0
  89. package/dist/summaryGenerator.d.ts.map +1 -1
  90. package/dist/summaryGenerator.js +11 -9
  91. package/dist/summaryGenerator.js.map +1 -1
  92. package/dist/summaryManager.d.ts +2 -2
  93. package/dist/summaryManager.d.ts.map +1 -1
  94. package/dist/summaryManager.js +22 -7
  95. package/dist/summaryManager.js.map +1 -1
  96. package/lib/batchManager.d.ts +37 -0
  97. package/lib/batchManager.d.ts.map +1 -0
  98. package/lib/batchManager.js +69 -0
  99. package/lib/batchManager.js.map +1 -0
  100. package/lib/batchTracker.d.ts +1 -2
  101. package/lib/batchTracker.d.ts.map +1 -1
  102. package/lib/batchTracker.js +2 -3
  103. package/lib/batchTracker.js.map +1 -1
  104. package/lib/blobManager.d.ts +87 -25
  105. package/lib/blobManager.d.ts.map +1 -1
  106. package/lib/blobManager.js +319 -101
  107. package/lib/blobManager.js.map +1 -1
  108. package/lib/containerRuntime.d.ts +110 -125
  109. package/lib/containerRuntime.d.ts.map +1 -1
  110. package/lib/containerRuntime.js +366 -554
  111. package/lib/containerRuntime.js.map +1 -1
  112. package/lib/dataStore.js +29 -24
  113. package/lib/dataStore.js.map +1 -1
  114. package/lib/dataStoreContext.d.ts +20 -14
  115. package/lib/dataStoreContext.d.ts.map +1 -1
  116. package/lib/dataStoreContext.js +46 -55
  117. package/lib/dataStoreContext.js.map +1 -1
  118. package/lib/dataStores.d.ts +12 -5
  119. package/lib/dataStores.d.ts.map +1 -1
  120. package/lib/dataStores.js +21 -20
  121. package/lib/dataStores.js.map +1 -1
  122. package/lib/deltaScheduler.d.ts +6 -4
  123. package/lib/deltaScheduler.d.ts.map +1 -1
  124. package/lib/deltaScheduler.js +6 -4
  125. package/lib/deltaScheduler.js.map +1 -1
  126. package/lib/garbageCollection.d.ts +74 -14
  127. package/lib/garbageCollection.d.ts.map +1 -1
  128. package/lib/garbageCollection.js +237 -159
  129. package/lib/garbageCollection.js.map +1 -1
  130. package/lib/gcSweepReadyUsageDetection.d.ts +53 -0
  131. package/lib/gcSweepReadyUsageDetection.d.ts.map +1 -0
  132. package/lib/gcSweepReadyUsageDetection.js +130 -0
  133. package/lib/gcSweepReadyUsageDetection.js.map +1 -0
  134. package/lib/index.d.ts +2 -1
  135. package/lib/index.d.ts.map +1 -1
  136. package/lib/index.js +2 -1
  137. package/lib/index.js.map +1 -1
  138. package/lib/opProperties.d.ts +7 -0
  139. package/lib/opProperties.d.ts.map +1 -0
  140. package/lib/opProperties.js +16 -0
  141. package/lib/opProperties.js.map +1 -0
  142. package/lib/orderedClientElection.d.ts +28 -10
  143. package/lib/orderedClientElection.d.ts.map +1 -1
  144. package/lib/orderedClientElection.js +14 -4
  145. package/lib/orderedClientElection.js.map +1 -1
  146. package/lib/packageVersion.d.ts +1 -1
  147. package/lib/packageVersion.d.ts.map +1 -1
  148. package/lib/packageVersion.js +1 -1
  149. package/lib/packageVersion.js.map +1 -1
  150. package/lib/pendingStateManager.d.ts +0 -11
  151. package/lib/pendingStateManager.d.ts.map +1 -1
  152. package/lib/pendingStateManager.js +24 -46
  153. package/lib/pendingStateManager.js.map +1 -1
  154. package/lib/runningSummarizer.d.ts +14 -4
  155. package/lib/runningSummarizer.d.ts.map +1 -1
  156. package/lib/runningSummarizer.js +69 -27
  157. package/lib/runningSummarizer.js.map +1 -1
  158. package/lib/scheduleManager.d.ts +31 -0
  159. package/lib/scheduleManager.d.ts.map +1 -0
  160. package/lib/scheduleManager.js +239 -0
  161. package/lib/scheduleManager.js.map +1 -0
  162. package/lib/summarizer.d.ts +0 -2
  163. package/lib/summarizer.d.ts.map +1 -1
  164. package/lib/summarizer.js +1 -12
  165. package/lib/summarizer.js.map +1 -1
  166. package/lib/summarizerHeuristics.d.ts +26 -4
  167. package/lib/summarizerHeuristics.d.ts.map +1 -1
  168. package/lib/summarizerHeuristics.js +98 -18
  169. package/lib/summarizerHeuristics.js.map +1 -1
  170. package/lib/summarizerTypes.d.ts +45 -18
  171. package/lib/summarizerTypes.d.ts.map +1 -1
  172. package/lib/summarizerTypes.js +1 -1
  173. package/lib/summarizerTypes.js.map +1 -1
  174. package/lib/summaryCollection.d.ts +1 -0
  175. package/lib/summaryCollection.d.ts.map +1 -1
  176. package/lib/summaryCollection.js +31 -15
  177. package/lib/summaryCollection.js.map +1 -1
  178. package/lib/summaryFormat.d.ts +0 -5
  179. package/lib/summaryFormat.d.ts.map +1 -1
  180. package/lib/summaryFormat.js.map +1 -1
  181. package/lib/summaryGenerator.d.ts +1 -0
  182. package/lib/summaryGenerator.d.ts.map +1 -1
  183. package/lib/summaryGenerator.js +11 -9
  184. package/lib/summaryGenerator.js.map +1 -1
  185. package/lib/summaryManager.d.ts +2 -2
  186. package/lib/summaryManager.d.ts.map +1 -1
  187. package/lib/summaryManager.js +22 -7
  188. package/lib/summaryManager.js.map +1 -1
  189. package/package.json +68 -25
  190. package/src/batchManager.ts +91 -0
  191. package/src/batchTracker.ts +2 -3
  192. package/src/blobManager.ts +385 -118
  193. package/src/containerRuntime.ts +523 -732
  194. package/src/dataStore.ts +49 -37
  195. package/src/dataStoreContext.ts +44 -56
  196. package/src/dataStores.ts +34 -30
  197. package/src/deltaScheduler.ts +6 -4
  198. package/src/garbageCollection.ts +296 -205
  199. package/src/gcSweepReadyUsageDetection.ts +147 -0
  200. package/src/index.ts +1 -2
  201. package/src/opProperties.ts +19 -0
  202. package/src/orderedClientElection.ts +31 -10
  203. package/src/packageVersion.ts +1 -1
  204. package/src/pendingStateManager.ts +27 -59
  205. package/src/runningSummarizer.ts +76 -23
  206. package/src/scheduleManager.ts +314 -0
  207. package/src/summarizer.ts +1 -18
  208. package/src/summarizerHeuristics.ts +136 -19
  209. package/src/summarizerTypes.ts +53 -18
  210. package/src/summaryCollection.ts +33 -18
  211. package/src/summaryFormat.ts +0 -6
  212. package/src/summaryGenerator.ts +40 -22
  213. package/src/summaryManager.ts +22 -7
  214. package/dist/opTelemetry.d.ts +0 -22
  215. package/dist/opTelemetry.d.ts.map +0 -1
  216. package/dist/opTelemetry.js +0 -59
  217. package/dist/opTelemetry.js.map +0 -1
  218. package/lib/opTelemetry.d.ts +0 -22
  219. package/lib/opTelemetry.d.ts.map +0 -1
  220. package/lib/opTelemetry.js +0 -55
  221. package/lib/opTelemetry.js.map +0 -1
  222. package/src/opTelemetry.ts +0 -71
@@ -4,9 +4,9 @@
4
4
  */
5
5
  import { IFluidHandle, IFluidHandleContext } from "@fluidframework/core-interfaces";
6
6
  import { IDocumentStorageService } from "@fluidframework/driver-definitions";
7
- import { ISnapshotTree } from "@fluidframework/protocol-definitions";
8
- import { ITelemetryLogger } from "@fluidframework/common-definitions";
9
- import { IContainerRuntime } from "@fluidframework/container-runtime-definitions";
7
+ import { ISequencedDocumentMessage, ISnapshotTree } from "@fluidframework/protocol-definitions";
8
+ import { TypedEventEmitter } from "@fluidframework/common-utils";
9
+ import { IContainerRuntime, IContainerRuntimeEvents } from "@fluidframework/container-runtime-definitions";
10
10
  import { IGarbageCollectionData, ISummaryTreeWithStats, ITelemetryContext } from "@fluidframework/runtime-definitions";
11
11
  /**
12
12
  * This class represents blob (long string)
@@ -34,47 +34,108 @@ export interface IBlobManagerLoadInfo {
34
34
  ids?: string[];
35
35
  redirectTable?: [string, string][];
36
36
  }
37
+ export declare type IBlobManagerRuntime = Pick<IContainerRuntime, "attachState" | "connected" | "logger"> & TypedEventEmitter<IContainerRuntimeEvents>;
38
+ export interface IPendingBlobs {
39
+ [id: string]: {
40
+ blob: string;
41
+ };
42
+ }
37
43
  export declare class BlobManager {
38
44
  private readonly routeContext;
39
45
  private readonly getStorage;
40
- private readonly attachBlobCallback;
46
+ /**
47
+ * Submit a BlobAttach op. When a blob is uploaded, there is a short grace period before which
48
+ * the blob is deleted. The BlobAttach op notifies the server that blob is in use. The server
49
+ * will then not delete the blob as long as it is listed as referenced in future summaries.
50
+ * The summarizing client will know to include the storage ID in the summary when it sees the op.
51
+ *
52
+ * The op may also include a local ID to inform all clients of the relation to the storage
53
+ * ID, without knowledge of which they cannot request the blob from storage. This is also
54
+ * included in the redirect table in the summary.
55
+ */
56
+ private readonly sendBlobAttachOp;
41
57
  private readonly gcNodeUpdated;
42
58
  private readonly runtime;
43
- private readonly logger;
44
59
  static readonly basePath = "_blobs";
45
60
  private static readonly redirectTableBlobName;
46
- private readonly blobIds;
47
- private readonly pendingBlobIds;
48
- private readonly detachedBlobIds;
49
- private redirectTable;
50
- constructor(routeContext: IFluidHandleContext, snapshot: IBlobManagerLoadInfo, getStorage: () => IDocumentStorageService, attachBlobCallback: (blobId: string) => void, gcNodeUpdated: (blobPath: string) => void, runtime: IContainerRuntime, logger: ITelemetryLogger);
51
- private hasBlob;
61
+ private readonly logger;
62
+ /**
63
+ * Map of local (offline/detached) IDs to storage IDs. Contains identity entries
64
+ * (id → id) for storage IDs, so all requested IDs should be a key in this map.
65
+ * Blobs created while the container is detached are stored in IDetachedBlobStorage
66
+ * which gives local IDs; the storage IDs are filled in at attach time.
67
+ */
68
+ private readonly redirectTable;
69
+ /**
70
+ * Blobs which have not been uploaded or for which we have not yet seen a BlobAttach op round-trip.
71
+ * Until we see the op round-trip, there is a possibility we may need to re-upload the blob, so
72
+ * we must save it. This is true for both the online and offline flow.
73
+ */
74
+ private readonly pendingBlobs;
75
+ /**
76
+ * Track ops in flight for online flow. Used to avoid searching pendingBlobs since BlobAttach ops
77
+ * don't include local ID in online flow.
78
+ */
79
+ private readonly opsInFlight;
80
+ private readonly retryThrottler;
81
+ constructor(routeContext: IFluidHandleContext, snapshot: IBlobManagerLoadInfo, getStorage: () => IDocumentStorageService,
82
+ /**
83
+ * Submit a BlobAttach op. When a blob is uploaded, there is a short grace period before which
84
+ * the blob is deleted. The BlobAttach op notifies the server that blob is in use. The server
85
+ * will then not delete the blob as long as it is listed as referenced in future summaries.
86
+ * The summarizing client will know to include the storage ID in the summary when it sees the op.
87
+ *
88
+ * The op may also include a local ID to inform all clients of the relation to the storage
89
+ * ID, without knowledge of which they cannot request the blob from storage. This is also
90
+ * included in the redirect table in the summary.
91
+ */
92
+ sendBlobAttachOp: (storageId?: string, localId?: string) => void, gcNodeUpdated: (blobPath: string) => void, runtime: IBlobManagerRuntime, stashedBlobs?: IPendingBlobs);
93
+ private get pendingOfflineUploads();
94
+ get hasPendingOfflineUploads(): boolean;
95
+ /**
96
+ * Upload blobs added while offline. This must be completed before connecting and resubmitting ops.
97
+ */
98
+ onConnected(): Promise<void>;
99
+ /**
100
+ * Transition online blobs waiting for BlobAttach op round-trip since we will not see the op until we are connected
101
+ * again
102
+ */
103
+ private onDisconnected;
52
104
  /**
53
105
  * For a blobId, returns its path in GC's graph. The node path is of the format `/<BlobManager.basePath>/<blobId>`
54
106
  * This path must match the path of the blob handle returned by the createBlob API because blobs are marked
55
107
  * referenced by storing these handles in a referenced DDS.
56
108
  */
57
109
  private getBlobGCNodePath;
58
- getBlob(blobId: string): Promise<IFluidHandle<ArrayBufferLike>>;
110
+ /**
111
+ * Set of actual storage IDs (i.e., IDs that can be requested from storage). This will be empty if the container is
112
+ * detached or there are no (non-pending) attachment blobs in the document
113
+ */
114
+ private get storageIds();
115
+ getBlob(blobId: string): Promise<ArrayBufferLike>;
116
+ private getBlobHandle;
117
+ private createBlobDetached;
59
118
  createBlob(blob: ArrayBufferLike): Promise<IFluidHandle<ArrayBufferLike>>;
60
- processBlobAttachOp(blobId: string, local: boolean): void;
119
+ private uploadBlob;
120
+ private onUploadResolve;
121
+ private onUploadReject;
122
+ private transitionToOffline;
123
+ /**
124
+ * Resubmit a BlobAttach op. Used to add storage IDs to ops that were
125
+ * submitted to runtime while disconnected.
126
+ * @param metadata - op metadata containing storage and/or local IDs
127
+ */
128
+ reSubmit(metadata: Record<string, unknown> | undefined): void;
129
+ processBlobAttachOp(message: ISequencedDocumentMessage, local: boolean): void;
61
130
  /**
62
131
  * Reads blobs needed to load BlobManager from storage.
132
+ * @param blobsTree - Tree containing IDs of previously attached blobs. We
133
+ * look for the IDs in the blob entries of the tree since the both the r11s
134
+ * and SPO drivers replace the attachment types returned in snapshot() with blobs.
63
135
  */
64
136
  static load(blobsTree: ISnapshotTree | undefined, tryFetchBlob: (id: string) => Promise<[string, string][]>): Promise<IBlobManagerLoadInfo>;
65
137
  /**
66
- * Load a set of previously attached blob IDs from a previous snapshot. Note
67
- * that BlobManager tracking and reporting attached blobs is a temporary
68
- * solution since storage expects attached blobs to be reported and any that
69
- * are not reported as attached may be GCed. In the future attached blob
70
- * IDs will be collected at summarization time, and runtime will not care
71
- * about the existence or specific formatting of this tree in returned
72
- * snapshots.
73
- *
74
- * @param blobsTree - Tree containing IDs of previously attached blobs. This
75
- * corresponds to snapshot() below. We look for the IDs in the blob entries
76
- * of the tree since the both the r11s and SPO drivers replace the
77
- * attachment types returned in snapshot() with blobs.
138
+ * Load a set of previously attached blob IDs and redirect table from a previous snapshot.
78
139
  */
79
140
  private load;
80
141
  /**
@@ -91,5 +152,6 @@ export declare class BlobManager {
91
152
  deleteUnusedRoutes(unusedRoutes: string[]): void;
92
153
  summarize(telemetryContext?: ITelemetryContext): ISummaryTreeWithStats;
93
154
  setRedirectTable(table: Map<string, string>): void;
155
+ getPendingBlobs(): IPendingBlobs;
94
156
  }
95
157
  //# sourceMappingURL=blobManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blobManager.d.ts","sourceRoot":"","sources":["../src/blobManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blobManager.d.ts","sourceRoot":"","sources":["../src/blobManager.ts"],"names":[],"mappings":"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"}