@fluidframework/container-runtime 2.63.0-359461 → 2.63.0-359962

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.
@@ -5,5 +5,5 @@
5
5
  * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
6
6
  */
7
7
  export declare const pkgName = "@fluidframework/container-runtime";
8
- export declare const pkgVersion = "2.63.0-359461";
8
+ export declare const pkgVersion = "2.63.0-359962";
9
9
  //# sourceMappingURL=packageVersion.d.ts.map
@@ -8,5 +8,5 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.pkgVersion = exports.pkgName = void 0;
10
10
  exports.pkgName = "@fluidframework/container-runtime";
11
- exports.pkgVersion = "2.63.0-359461";
11
+ exports.pkgVersion = "2.63.0-359962";
12
12
  //# sourceMappingURL=packageVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,mCAAmC,CAAC;AAC9C,QAAA,UAAU,GAAG,eAAe,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/container-runtime\";\nexport const pkgVersion = \"2.63.0-359461\";\n"]}
1
+ {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,mCAAmC,CAAC;AAC9C,QAAA,UAAU,GAAG,eAAe,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/container-runtime\";\nexport const pkgVersion = \"2.63.0-359962\";\n"]}
@@ -26,7 +26,7 @@ export declare class BlobHandle extends FluidHandleBase<ArrayBufferLike> impleme
26
26
  get isAttached(): boolean;
27
27
  private _events;
28
28
  get events(): Listenable<ILocalFluidHandleEvents>;
29
- private _state;
29
+ private _payloadState;
30
30
  get payloadState(): PayloadState;
31
31
  /**
32
32
  * The error property starts undefined, signalling that there has been no error yet.
@@ -42,14 +42,37 @@ export declare class BlobHandle extends FluidHandleBase<ArrayBufferLike> impleme
42
42
  }
43
43
  export type IBlobManagerRuntime = Pick<IContainerRuntime, "attachState" | "baseLogger" | "disposed"> & IEventProvider<IContainerRuntimeEvents>;
44
44
  export type ICreateBlobResponseWithTTL = ICreateBlobResponse & Partial<Record<"minTTLInSeconds", number>>;
45
+ /**
46
+ * A blob tracked by BlobManager that is only available on the local client. It is not currently
47
+ * attempting an upload.
48
+ */
49
+ interface LocalOnlyBlob {
50
+ state: "localOnly";
51
+ blob: ArrayBufferLike;
52
+ }
53
+ /**
54
+ * A blob tracked by BlobManager that has been uploaded to storage. If the TTL has not expired, it
55
+ * should still be available in storage. It is not currently attempting to send a BlobAttach op.
56
+ */
57
+ interface UploadedBlob {
58
+ state: "uploaded";
59
+ blob: ArrayBufferLike;
60
+ storageId: string;
61
+ uploadTime: number;
62
+ minTTLInSeconds: number | undefined;
63
+ }
64
+ /**
65
+ * Serializable form of the LocalBlobRecord that can be used to save and restore pending state.
66
+ * Omits attached blobs since they are fully uploaded and don't need to be saved and restored.
67
+ * Omits uploading and attaching states since upon restore we will need to restart those processes.
68
+ */
69
+ type SerializableLocalBlobRecord = (Omit<LocalOnlyBlob, "blob"> & {
70
+ blob: string;
71
+ }) | (Omit<UploadedBlob, "blob"> & {
72
+ blob: string;
73
+ });
45
74
  export interface IPendingBlobs {
46
- [localId: string]: {
47
- blob: string;
48
- storageId?: string;
49
- uploadTime?: number;
50
- minTTLInSeconds?: number;
51
- acked?: boolean;
52
- };
75
+ [localId: string]: SerializableLocalBlobRecord;
53
76
  }
54
77
  export declare const blobManagerBasePath = "_blobs";
55
78
  export declare class BlobManager {
@@ -63,15 +86,19 @@ export declare class BlobManager {
63
86
  */
64
87
  private readonly redirectTable;
65
88
  /**
66
- * Blobs which we have not yet seen a BlobAttach op round-trip and not yet attached to a DDS.
89
+ * The localBlobCache has a dual role of caching locally-created blobs, as well as tracking their state as they
90
+ * are shared. Keys are localIds.
91
+ */
92
+ private readonly localBlobCache;
93
+ /**
94
+ * Blobs with an attached handle that have not finished blob-attaching are the set we need to provide from
95
+ * getPendingState(). This stores their local IDs, and then we can look them up against the localBlobCache.
67
96
  */
68
- private readonly pendingBlobs;
97
+ private readonly pendingBlobsWithAttachedHandles;
69
98
  /**
70
- * Track ops in flight for online flow. This is used for optimizations where if we receive an ack for a storage ID,
71
- * we can resolve all pending blobs with the same storage ID even though they may have different local IDs. That's
72
- * because we know that the server will not delete the blob corresponding to that storage ID.
99
+ * Local IDs for any pending blobs we loaded with and have not yet started the upload/attach flow for.
73
100
  */
74
- private readonly opsInFlight;
101
+ private readonly pendingOnlyLocalIds;
75
102
  private readonly sendBlobAttachOp;
76
103
  private readonly routeContext;
77
104
  private readonly storage;
@@ -98,11 +125,13 @@ export declare class BlobManager {
98
125
  readonly blobRequested: (blobPath: string) => void;
99
126
  readonly isBlobDeleted: (blobPath: string) => boolean;
100
127
  readonly runtime: IBlobManagerRuntime;
101
- stashedBlobs: IPendingBlobs | undefined;
128
+ pendingBlobs: IPendingBlobs | undefined;
102
129
  readonly localIdGenerator?: (() => string) | undefined;
103
130
  readonly createBlobPayloadPending: boolean;
104
131
  });
105
- private createAbortError;
132
+ /**
133
+ * Returns whether a blob with the given localId can be retrieved by the BlobManager via getBlob().
134
+ */
106
135
  hasBlob(localId: string): boolean;
107
136
  /**
108
137
  * Lookup the blob storage ID for a given local blob id.
@@ -122,26 +151,19 @@ export declare class BlobManager {
122
151
  * @returns A promise which resolves to the blob contents
123
152
  */
124
153
  getBlob(localId: string, payloadPending: boolean): Promise<ArrayBufferLike>;
125
- private getBlobHandle;
126
- private createBlobDetached;
154
+ private getNonPayloadPendingBlobHandle;
127
155
  createBlob(blob: ArrayBufferLike, signal?: AbortSignal): Promise<IFluidHandleInternalPayloadPending<ArrayBufferLike>>;
156
+ private createBlobDetached;
128
157
  private createBlobLegacy;
129
158
  private createBlobWithPayloadPending;
130
159
  /**
131
- * Upload a blob to the storage service.
132
- * @returns A promise that resolves when the upload is complete and a blob attach op has been sent (but not ack'd).
160
+ * Upload and attach the localBlobCache entry for the given localId.
133
161
  *
134
- * @privateRemarks This method must not reject, as there is no error handling for it in current tracking.
162
+ * Expects the localBlobCache entry for the given localId to be in either localOnly or uploaded state
163
+ * when called. Returns a promise that resolves when the blob completes uploading and attaching, or else
164
+ * rejects if an error is encountered or the signal is aborted.
135
165
  */
136
- private uploadBlob;
137
- /**
138
- * Set up a mapping in the redirect table from fromId to toId. Also, notify the runtime that a reference is added
139
- * which is required for GC.
140
- */
141
- private setRedirection;
142
- private deletePendingBlobMaybe;
143
- private deletePendingBlob;
144
- private onUploadResolve;
166
+ private readonly uploadAndAttach;
145
167
  /**
146
168
  * Resubmit a BlobAttach op. Used to add storage IDs to ops that were
147
169
  * submitted to runtime while disconnected.
@@ -157,15 +179,9 @@ export declare class BlobManager {
157
179
  * about this for now because the data is a simple list of blob ids.
158
180
  */
159
181
  getGCData(fullGC?: boolean): IGarbageCollectionData;
160
- /**
161
- * Delete attachment blobs that are sweep ready.
162
- * @param sweepReadyBlobRoutes - The routes of blobs that are sweep ready and should be deleted. These routes will
163
- * be based off of local ids.
164
- * @returns The routes of blobs that were deleted.
165
- */
166
- deleteSweepReadyNodes(sweepReadyBlobRoutes: readonly string[]): readonly string[];
167
182
  /**
168
183
  * Delete blobs with the given routes from the redirect table.
184
+ * @returns The routes of blobs that were deleted.
169
185
  *
170
186
  * @remarks
171
187
  * The routes are GC nodes paths of format -`/<blobManagerBasePath>/<localId>`.
@@ -180,7 +196,7 @@ export declare class BlobManager {
180
196
  * will ensure we don't create an attachment blob for them at the next summary. The service would then delete them
181
197
  * some time in the future.
182
198
  */
183
- private deleteBlobsFromRedirectTable;
199
+ deleteSweepReadyNodes(sweepReadyBlobRoutes: readonly string[]): readonly string[];
184
200
  /**
185
201
  * Verifies that the blob with given id is not deleted, i.e., it has not been garbage collected. If the blob is GC'd,
186
202
  * log an error and throw if necessary.
@@ -193,29 +209,19 @@ export declare class BlobManager {
193
209
  * @param detachedStorageTable - A map of pseudo storage IDs to real storage IDs.
194
210
  */
195
211
  readonly patchRedirectTable: (detachedStorageTable: Map<string, string>) => void;
212
+ /**
213
+ * Upload and attach any pending blobs that the BlobManager was loaded with that have not already
214
+ * been attached in the meantime.
215
+ * @returns A promise that resolves when all the uploads and attaches have completed, or rejects
216
+ * if any of them fail.
217
+ */
218
+ readonly sharePendingBlobs: () => Promise<void>;
196
219
  /**
197
220
  * To be used in getPendingLocalState flow. Get a serializable record of the blobs that are
198
221
  * pending upload and/or their BlobAttach op, which can be given to a new BlobManager to
199
222
  * resume work.
200
- *
201
- * @privateRemarks
202
- * For now, we don't track any pending blobs since the getPendingBlobs flow doesn't enable
203
- * restoring to a state where an accessible handle has been stored by the customer (and we'll
204
- * just drop any BlobAttach ops on the ground during reSubmit). However, once we add support
205
- * for payload-pending handles, this will return the blobs associated with those handles.
206
223
  */
207
224
  getPendingBlobs(): IPendingBlobs | undefined;
208
- /**
209
- * Part of container serialization when imminent closure is enabled (Currently when calling closeAndGetPendingLocalState).
210
- * This asynchronous function resolves all pending createBlob calls and waits for each blob
211
- * to be attached. It will also send BlobAttach ops for each pending blob that hasn't sent it
212
- * yet so that serialized container can resubmit them when rehydrated.
213
- *
214
- * @param stopBlobAttachingSignal - Optional signal to abort the blob attaching process.
215
- * @returns - A promise that resolves with the details of the attached blobs,
216
- * or undefined if no blobs were processed.
217
- */
218
- attachAndGetPendingBlobs(stopBlobAttachingSignal?: AbortSignal): Promise<IPendingBlobs | undefined>;
219
225
  }
220
226
  /**
221
227
  * For a localId, returns its path in GC's graph. The node path is of the format `/<blobManagerBasePath>/<localId>`.
@@ -227,4 +233,5 @@ export declare const getGCNodePathFromLocalId: (localId: string) => string;
227
233
  * Returns whether a given path is for attachment blobs that are in the format - "/blobManagerBasePath/...".
228
234
  */
229
235
  export declare const isBlobPath: (path: string) => path is `/_blobs/${string}`;
236
+ export {};
230
237
  //# sourceMappingURL=blobManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blobManager.d.ts","sourceRoot":"","sources":["../../src/blobManager/blobManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blobManager.d.ts","sourceRoot":"","sources":["../../src/blobManager/blobManager.ts"],"names":[],"mappings":"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"}