@fluidframework/container-runtime 2.0.0-dev.7.2.0.205722 → 2.0.0-dev.7.3.0.207781
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.
- package/CHANGELOG.md +4 -0
- package/api-report/container-runtime.api.md +2 -4
- package/dist/blobManager.d.ts +3 -4
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +17 -36
- package/dist/blobManager.js.map +1 -1
- package/dist/containerRuntime.d.ts +10 -4
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +22 -11
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStoreContext.d.ts +8 -1
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +46 -31
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStores.d.ts +0 -14
- package/dist/dataStores.d.ts.map +1 -1
- package/dist/dataStores.js +0 -43
- package/dist/dataStores.js.map +1 -1
- package/dist/deltaManagerProxyBase.d.ts +1 -1
- package/dist/deltaManagerProxyBase.d.ts.map +1 -1
- package/dist/deltaManagerProxyBase.js +2 -2
- package/dist/deltaManagerProxyBase.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts +6 -3
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +27 -17
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +7 -3
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcTelemetry.d.ts +11 -4
- package/dist/gc/gcTelemetry.d.ts.map +1 -1
- package/dist/gc/gcTelemetry.js +72 -39
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/lib/blobManager.d.ts +3 -4
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js +18 -37
- package/lib/blobManager.js.map +1 -1
- package/lib/containerRuntime.d.ts +10 -4
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +22 -11
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStoreContext.d.ts +8 -1
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +46 -31
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStores.d.ts +0 -14
- package/lib/dataStores.d.ts.map +1 -1
- package/lib/dataStores.js +1 -44
- package/lib/dataStores.js.map +1 -1
- package/lib/deltaManagerProxyBase.d.ts +1 -1
- package/lib/deltaManagerProxyBase.d.ts.map +1 -1
- package/lib/deltaManagerProxyBase.js +2 -2
- package/lib/deltaManagerProxyBase.js.map +1 -1
- package/lib/gc/garbageCollection.d.ts +6 -3
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +28 -18
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +7 -3
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcTelemetry.d.ts +11 -4
- package/lib/gc/gcTelemetry.d.ts.map +1 -1
- package/lib/gc/gcTelemetry.js +72 -39
- package/lib/gc/gcTelemetry.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/package.json +15 -15
- package/src/blobManager.ts +18 -46
- package/src/containerRuntime.ts +37 -15
- package/src/dataStoreContext.ts +23 -4
- package/src/dataStores.ts +1 -67
- package/src/deltaManagerProxyBase.ts +2 -2
- package/src/gc/garbageCollection.ts +39 -25
- package/src/gc/gcDefinitions.ts +8 -3
- package/src/gc/gcTelemetry.ts +102 -54
- package/src/packageVersion.ts +1 -1
package/dist/containerRuntime.js
CHANGED
|
@@ -120,6 +120,7 @@ exports.defaultRuntimeHeaderData = {
|
|
|
120
120
|
wait: true,
|
|
121
121
|
viaHandle: false,
|
|
122
122
|
allowTombstone: false,
|
|
123
|
+
allowInactive: false,
|
|
123
124
|
};
|
|
124
125
|
/**
|
|
125
126
|
* Available compression algorithms for op compression.
|
|
@@ -476,10 +477,6 @@ class ContainerRuntime extends client_utils_1.TypedEventEmitter {
|
|
|
476
477
|
get gcTombstoneEnforcementAllowed() {
|
|
477
478
|
return this.garbageCollector.tombstoneEnforcementAllowed;
|
|
478
479
|
}
|
|
479
|
-
/** If true, throw an error when a tombstone data store is retrieved */
|
|
480
|
-
get gcThrowOnTombstoneLoad() {
|
|
481
|
-
return this.garbageCollector.throwOnTombstoneLoad;
|
|
482
|
-
}
|
|
483
480
|
/** If true, throw an error when a tombstone data store is used. */
|
|
484
481
|
get gcThrowOnTombstoneUsage() {
|
|
485
482
|
return this.garbageCollector.throwOnTombstoneUsage;
|
|
@@ -946,6 +943,9 @@ class ContainerRuntime extends client_utils_1.TypedEventEmitter {
|
|
|
946
943
|
if (typeof request.headers?.[exports.AllowTombstoneRequestHeaderKey] === "boolean") {
|
|
947
944
|
headerData.allowTombstone = request.headers[exports.AllowTombstoneRequestHeaderKey];
|
|
948
945
|
}
|
|
946
|
+
if (typeof request.headers?.[exports.AllowInactiveRequestHeaderKey] === "boolean") {
|
|
947
|
+
headerData.allowInactive = request.headers[exports.AllowInactiveRequestHeaderKey];
|
|
948
|
+
}
|
|
949
949
|
// We allow Tombstone requests for sub-DataStore objects
|
|
950
950
|
if (requestForChild) {
|
|
951
951
|
headerData.allowTombstone = true;
|
|
@@ -953,12 +953,15 @@ class ContainerRuntime extends client_utils_1.TypedEventEmitter {
|
|
|
953
953
|
await this.dataStores.waitIfPendingAlias(id);
|
|
954
954
|
const internalId = this.internalId(id);
|
|
955
955
|
const dataStoreContext = await this.dataStores.getDataStore(internalId, headerData);
|
|
956
|
-
const dataStoreChannel = await dataStoreContext.realize();
|
|
957
956
|
// Remove query params, leading and trailing slashes from the url. This is done to make sure the format is
|
|
958
957
|
// the same as GC nodes id.
|
|
959
958
|
const urlWithoutQuery = (0, gc_1.trimLeadingAndTrailingSlashes)(request.url.split("?")[0]);
|
|
960
|
-
|
|
961
|
-
|
|
959
|
+
// Get the initial snapshot details which contain the data store package path.
|
|
960
|
+
const details = await dataStoreContext.getInitialSnapshotDetails();
|
|
961
|
+
// Note that this will throw if the data store is inactive or tombstoned and throwing on incorrect usage
|
|
962
|
+
// is configured.
|
|
963
|
+
this.garbageCollector.nodeUpdated(`/${urlWithoutQuery}`, "Loaded", undefined /* timestampMs */, details.pkg, request, headerData);
|
|
964
|
+
return dataStoreContext.realize();
|
|
962
965
|
}
|
|
963
966
|
/** Adds the container's metadata to the given summary tree. */
|
|
964
967
|
addMetadataToSummary(summaryTree) {
|
|
@@ -1462,6 +1465,7 @@ class ContainerRuntime extends client_utils_1.TypedEventEmitter {
|
|
|
1462
1465
|
if (channel.entryPoint === undefined) {
|
|
1463
1466
|
throw new telemetry_utils_1.UsageError("entryPoint must be defined on data store runtime for using getAliasedDataStoreEntryPoint");
|
|
1464
1467
|
}
|
|
1468
|
+
this.garbageCollector.nodeUpdated(`/${internalId}`, "Loaded", undefined /* timestampMs */, context.packagePath);
|
|
1465
1469
|
return channel.entryPoint;
|
|
1466
1470
|
}
|
|
1467
1471
|
createDetachedRootDataStore(pkg, rootDataStoreId) {
|
|
@@ -1548,15 +1552,22 @@ class ContainerRuntime extends client_utils_1.TypedEventEmitter {
|
|
|
1548
1552
|
* Submits the signal to be sent to other clients.
|
|
1549
1553
|
* @param type - Type of the signal.
|
|
1550
1554
|
* @param content - Content of the signal.
|
|
1555
|
+
* @param targetClientId - When specified, the signal is only sent to the provided client id.
|
|
1551
1556
|
*/
|
|
1552
|
-
submitSignal(type, content) {
|
|
1557
|
+
submitSignal(type, content, targetClientId) {
|
|
1553
1558
|
this.verifyNotClosed();
|
|
1554
1559
|
const envelope = this.createNewSignalEnvelope(undefined /* address */, type, content);
|
|
1555
|
-
return this.submitSignalFn(envelope);
|
|
1560
|
+
return this.submitSignalFn(envelope, targetClientId);
|
|
1556
1561
|
}
|
|
1557
|
-
|
|
1562
|
+
/**
|
|
1563
|
+
* Submits the signal to be sent to other clients.
|
|
1564
|
+
* @param type - Type of the signal.
|
|
1565
|
+
* @param content - Content of the signal.
|
|
1566
|
+
* @param targetClientId - When specified, the signal is only sent to the provided client id.
|
|
1567
|
+
*/
|
|
1568
|
+
submitDataStoreSignal(address, type, content, targetClientId) {
|
|
1558
1569
|
const envelope = this.createNewSignalEnvelope(address, type, content);
|
|
1559
|
-
return this.submitSignalFn(envelope);
|
|
1570
|
+
return this.submitSignalFn(envelope, targetClientId);
|
|
1560
1571
|
}
|
|
1561
1572
|
setAttachState(attachState) {
|
|
1562
1573
|
if (attachState === container_definitions_1.AttachState.Attaching) {
|