@fluidframework/container-runtime 2.0.0-dev.7.4.0.217884 → 2.0.0-dev.7.4.0.221926
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 +18 -0
- package/api-extractor.json +0 -3
- package/api-report/container-runtime.api.md +22 -18
- package/dist/blobManager.d.ts +3 -3
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js.map +1 -1
- package/dist/container-runtime-alpha.d.ts +42 -21
- package/dist/container-runtime-beta.d.ts +40 -2
- package/dist/container-runtime-public.d.ts +40 -2
- package/dist/container-runtime-untrimmed.d.ts +51 -38
- package/dist/containerRuntime.d.ts +9 -7
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +42 -22
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStores.d.ts +10 -15
- package/dist/dataStores.d.ts.map +1 -1
- package/dist/dataStores.js +63 -36
- package/dist/dataStores.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts +29 -10
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +149 -67
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts.map +1 -1
- package/dist/gc/gcConfigs.js +34 -37
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +88 -35
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js +25 -15
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcHelpers.d.ts +18 -25
- package/dist/gc/gcHelpers.d.ts.map +1 -1
- package/dist/gc/gcHelpers.js +29 -45
- package/dist/gc/gcHelpers.js.map +1 -1
- package/dist/gc/gcTelemetry.d.ts.map +1 -1
- package/dist/gc/gcTelemetry.js +14 -3
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.d.ts +11 -5
- package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.js +43 -19
- package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/dist/gc/index.d.ts +1 -1
- package/dist/gc/index.d.ts.map +1 -1
- package/dist/gc/index.js +4 -4
- package/dist/gc/index.js.map +1 -1
- package/dist/index.d.ts +13 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -5
- package/dist/index.js.map +1 -1
- package/dist/messageTypes.d.ts +13 -5
- package/dist/messageTypes.d.ts.map +1 -1
- package/dist/messageTypes.js +5 -0
- package/dist/messageTypes.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/dist/pendingStateManager.d.ts +1 -0
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +1 -0
- package/dist/pendingStateManager.js.map +1 -1
- package/lib/blobManager.d.ts +3 -3
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js.map +1 -1
- package/lib/container-runtime-alpha.d.ts +42 -21
- package/lib/container-runtime-beta.d.ts +40 -2
- package/lib/container-runtime-public.d.ts +40 -2
- package/lib/container-runtime-untrimmed.d.ts +51 -38
- package/lib/containerRuntime.d.ts +9 -7
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +44 -24
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStores.d.ts +10 -15
- package/lib/dataStores.d.ts.map +1 -1
- package/lib/dataStores.js +65 -38
- package/lib/dataStores.js.map +1 -1
- package/lib/gc/garbageCollection.d.ts +29 -10
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +151 -69
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcConfigs.d.ts.map +1 -1
- package/lib/gc/gcConfigs.js +37 -40
- package/lib/gc/gcConfigs.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +88 -35
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js +24 -14
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcHelpers.d.ts +18 -25
- package/lib/gc/gcHelpers.d.ts.map +1 -1
- package/lib/gc/gcHelpers.js +27 -43
- package/lib/gc/gcHelpers.js.map +1 -1
- package/lib/gc/gcTelemetry.d.ts.map +1 -1
- package/lib/gc/gcTelemetry.js +14 -3
- package/lib/gc/gcTelemetry.js.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.d.ts +11 -5
- package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.js +43 -19
- package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/lib/gc/index.d.ts +1 -1
- package/lib/gc/index.d.ts.map +1 -1
- package/lib/gc/index.js +1 -1
- package/lib/gc/index.js.map +1 -1
- package/lib/index.d.ts +13 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +15 -1
- package/lib/index.js.map +1 -1
- package/lib/messageTypes.d.ts +13 -5
- package/lib/messageTypes.d.ts.map +1 -1
- package/lib/messageTypes.js +5 -0
- package/lib/messageTypes.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/lib/pendingStateManager.d.ts +1 -0
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js +1 -0
- package/lib/pendingStateManager.js.map +1 -1
- package/package.json +18 -15
- package/src/blobManager.ts +4 -4
- package/src/containerRuntime.ts +56 -30
- package/src/dataStores.ts +118 -59
- package/src/gc/garbageCollection.md +14 -15
- package/src/gc/garbageCollection.ts +182 -75
- package/src/gc/gcConfigs.ts +50 -52
- package/src/gc/gcDefinitions.ts +103 -41
- package/src/gc/gcHelpers.ts +31 -52
- package/src/gc/gcTelemetry.ts +16 -4
- package/src/gc/gcUnreferencedStateTracker.ts +61 -22
- package/src/gc/index.ts +4 -3
- package/src/index.ts +17 -1
- package/src/messageTypes.ts +16 -2
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +1 -0
- package/dist/id-compressor/appendOnlySortedMap.d.ts +0 -124
- package/dist/id-compressor/appendOnlySortedMap.d.ts.map +0 -1
- package/dist/id-compressor/appendOnlySortedMap.js +0 -318
- package/dist/id-compressor/appendOnlySortedMap.js.map +0 -1
- package/dist/id-compressor/finalSpace.d.ts +0 -29
- package/dist/id-compressor/finalSpace.d.ts.map +0 -1
- package/dist/id-compressor/finalSpace.js +0 -62
- package/dist/id-compressor/finalSpace.js.map +0 -1
- package/dist/id-compressor/idCompressor.d.ts +0 -54
- package/dist/id-compressor/idCompressor.d.ts.map +0 -1
- package/dist/id-compressor/idCompressor.js +0 -495
- package/dist/id-compressor/idCompressor.js.map +0 -1
- package/dist/id-compressor/identifiers.d.ts +0 -32
- package/dist/id-compressor/identifiers.d.ts.map +0 -1
- package/dist/id-compressor/identifiers.js +0 -15
- package/dist/id-compressor/identifiers.js.map +0 -1
- package/dist/id-compressor/index.d.ts +0 -13
- package/dist/id-compressor/index.d.ts.map +0 -1
- package/dist/id-compressor/index.js +0 -32
- package/dist/id-compressor/index.js.map +0 -1
- package/dist/id-compressor/persistanceUtilities.d.ts +0 -22
- package/dist/id-compressor/persistanceUtilities.d.ts.map +0 -1
- package/dist/id-compressor/persistanceUtilities.js +0 -43
- package/dist/id-compressor/persistanceUtilities.js.map +0 -1
- package/dist/id-compressor/sessionSpaceNormalizer.d.ts +0 -46
- package/dist/id-compressor/sessionSpaceNormalizer.d.ts.map +0 -1
- package/dist/id-compressor/sessionSpaceNormalizer.js +0 -80
- package/dist/id-compressor/sessionSpaceNormalizer.js.map +0 -1
- package/dist/id-compressor/sessions.d.ts +0 -115
- package/dist/id-compressor/sessions.d.ts.map +0 -1
- package/dist/id-compressor/sessions.js +0 -305
- package/dist/id-compressor/sessions.js.map +0 -1
- package/dist/id-compressor/utilities.d.ts +0 -52
- package/dist/id-compressor/utilities.d.ts.map +0 -1
- package/dist/id-compressor/utilities.js +0 -169
- package/dist/id-compressor/utilities.js.map +0 -1
- package/lib/id-compressor/appendOnlySortedMap.d.ts +0 -124
- package/lib/id-compressor/appendOnlySortedMap.d.ts.map +0 -1
- package/lib/id-compressor/appendOnlySortedMap.js +0 -314
- package/lib/id-compressor/appendOnlySortedMap.js.map +0 -1
- package/lib/id-compressor/finalSpace.d.ts +0 -29
- package/lib/id-compressor/finalSpace.d.ts.map +0 -1
- package/lib/id-compressor/finalSpace.js +0 -58
- package/lib/id-compressor/finalSpace.js.map +0 -1
- package/lib/id-compressor/idCompressor.d.ts +0 -54
- package/lib/id-compressor/idCompressor.d.ts.map +0 -1
- package/lib/id-compressor/idCompressor.js +0 -491
- package/lib/id-compressor/idCompressor.js.map +0 -1
- package/lib/id-compressor/identifiers.d.ts +0 -32
- package/lib/id-compressor/identifiers.d.ts.map +0 -1
- package/lib/id-compressor/identifiers.js +0 -11
- package/lib/id-compressor/identifiers.js.map +0 -1
- package/lib/id-compressor/index.d.ts +0 -13
- package/lib/id-compressor/index.d.ts.map +0 -1
- package/lib/id-compressor/index.js +0 -13
- package/lib/id-compressor/index.js.map +0 -1
- package/lib/id-compressor/persistanceUtilities.d.ts +0 -22
- package/lib/id-compressor/persistanceUtilities.d.ts.map +0 -1
- package/lib/id-compressor/persistanceUtilities.js +0 -34
- package/lib/id-compressor/persistanceUtilities.js.map +0 -1
- package/lib/id-compressor/sessionSpaceNormalizer.d.ts +0 -46
- package/lib/id-compressor/sessionSpaceNormalizer.d.ts.map +0 -1
- package/lib/id-compressor/sessionSpaceNormalizer.js +0 -76
- package/lib/id-compressor/sessionSpaceNormalizer.js.map +0 -1
- package/lib/id-compressor/sessions.d.ts +0 -115
- package/lib/id-compressor/sessions.d.ts.map +0 -1
- package/lib/id-compressor/sessions.js +0 -290
- package/lib/id-compressor/sessions.js.map +0 -1
- package/lib/id-compressor/utilities.d.ts +0 -52
- package/lib/id-compressor/utilities.d.ts.map +0 -1
- package/lib/id-compressor/utilities.js +0 -151
- package/lib/id-compressor/utilities.js.map +0 -1
- package/src/id-compressor/README.md +0 -69
- package/src/id-compressor/appendOnlySortedMap.ts +0 -366
- package/src/id-compressor/finalSpace.ts +0 -67
- package/src/id-compressor/idCompressor.ts +0 -630
- package/src/id-compressor/identifiers.ts +0 -42
- package/src/id-compressor/index.ts +0 -26
- package/src/id-compressor/persistanceUtilities.ts +0 -58
- package/src/id-compressor/sessionSpaceNormalizer.ts +0 -83
- package/src/id-compressor/sessions.ts +0 -405
- package/src/id-compressor/utilities.ts +0 -190
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { assertIsStableId } from '@fluidframework/id-compressor';
|
|
1
2
|
import { AttachState } from '@fluidframework/container-definitions';
|
|
2
3
|
import { ContainerWarning } from '@fluidframework/container-definitions';
|
|
3
4
|
import { FluidDataStoreRegistryEntry } from '@fluidframework/runtime-definitions';
|
|
4
5
|
import { FluidObject } from '@fluidframework/core-interfaces';
|
|
5
6
|
import { FlushMode } from '@fluidframework/runtime-definitions';
|
|
7
|
+
import { generateStableId } from '@fluidframework/id-compressor';
|
|
6
8
|
import { IAudience } from '@fluidframework/container-definitions';
|
|
7
9
|
import { IClientDetails } from '@fluidframework/protocol-definitions';
|
|
8
10
|
import { IContainerContext } from '@fluidframework/container-definitions';
|
|
@@ -23,8 +25,8 @@ import { IFluidHandleContext } from '@fluidframework/core-interfaces';
|
|
|
23
25
|
import { IFluidRouter } from '@fluidframework/core-interfaces';
|
|
24
26
|
import { IGarbageCollectionData } from '@fluidframework/runtime-definitions';
|
|
25
27
|
import { IGetPendingLocalStateProps } from '@fluidframework/container-definitions';
|
|
26
|
-
import { IIdCompressor } from '@fluidframework/
|
|
27
|
-
import { IIdCompressorCore } from '@fluidframework/
|
|
28
|
+
import type { IIdCompressor } from '@fluidframework/id-compressor';
|
|
29
|
+
import type { IIdCompressorCore } from '@fluidframework/id-compressor';
|
|
28
30
|
import { ILoader } from '@fluidframework/container-definitions';
|
|
29
31
|
import { ILoaderOptions } from '@fluidframework/container-definitions';
|
|
30
32
|
import { IProvideFluidHandleContext } from '@fluidframework/core-interfaces';
|
|
@@ -34,6 +36,7 @@ import { IResponse } from '@fluidframework/core-interfaces';
|
|
|
34
36
|
import { IRuntime } from '@fluidframework/container-definitions';
|
|
35
37
|
import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
|
|
36
38
|
import { ISignalMessage } from '@fluidframework/protocol-definitions';
|
|
39
|
+
import { isStableId } from '@fluidframework/id-compressor';
|
|
37
40
|
import { ISummaryAck } from '@fluidframework/protocol-definitions';
|
|
38
41
|
import { ISummaryContent } from '@fluidframework/protocol-definitions';
|
|
39
42
|
import { ISummaryNack } from '@fluidframework/protocol-definitions';
|
|
@@ -44,7 +47,6 @@ import { ITelemetryContext } from '@fluidframework/runtime-definitions';
|
|
|
44
47
|
import { ITelemetryLoggerExt } from '@fluidframework/telemetry-utils';
|
|
45
48
|
import { MessageType } from '@fluidframework/protocol-definitions';
|
|
46
49
|
import { NamedFluidDataStoreRegistryEntries } from '@fluidframework/runtime-definitions';
|
|
47
|
-
import { StableId } from '@fluidframework/runtime-definitions';
|
|
48
50
|
import { TypedEventEmitter } from '@fluid-internal/client-utils';
|
|
49
51
|
|
|
50
52
|
/* Excluded from this release type: agentSchedulerId */
|
|
@@ -429,27 +431,27 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
429
431
|
* @param usedRoutes - The routes that are used in all nodes in this Container.
|
|
430
432
|
* @see IGarbageCollectionRuntime.updateUsedRoutes
|
|
431
433
|
*/
|
|
432
|
-
updateUsedRoutes(usedRoutes: string[]): void;
|
|
434
|
+
updateUsedRoutes(usedRoutes: readonly string[]): void;
|
|
433
435
|
/**
|
|
434
436
|
* This is called to update objects whose routes are unused.
|
|
435
437
|
* @param unusedRoutes - Data store and attachment blob routes that are unused in this Container.
|
|
436
438
|
*/
|
|
437
|
-
updateUnusedRoutes(unusedRoutes: string[]): void;
|
|
439
|
+
updateUnusedRoutes(unusedRoutes: readonly string[]): void;
|
|
438
440
|
/**
|
|
439
441
|
* @deprecated Replaced by deleteSweepReadyNodes.
|
|
440
442
|
*/
|
|
441
|
-
deleteUnusedNodes(unusedRoutes: string[]): string[];
|
|
443
|
+
deleteUnusedNodes(unusedRoutes: readonly string[]): string[];
|
|
442
444
|
/**
|
|
443
445
|
* After GC has run and identified nodes that are sweep ready, this is called to delete the sweep ready nodes.
|
|
444
446
|
* @param sweepReadyRoutes - The routes of nodes that are sweep ready and should be deleted.
|
|
445
447
|
* @returns The routes of nodes that were deleted.
|
|
446
448
|
*/
|
|
447
|
-
deleteSweepReadyNodes(sweepReadyRoutes: string[]): string[];
|
|
449
|
+
deleteSweepReadyNodes(sweepReadyRoutes: readonly string[]): readonly string[];
|
|
448
450
|
/**
|
|
449
451
|
* This is called to update objects that are tombstones.
|
|
450
452
|
* @param tombstonedRoutes - Data store and attachment blob routes that are tombstones in this Container.
|
|
451
453
|
*/
|
|
452
|
-
updateTombstonedRoutes(tombstonedRoutes: string[]): void;
|
|
454
|
+
updateTombstonedRoutes(tombstonedRoutes: readonly string[]): void;
|
|
453
455
|
/**
|
|
454
456
|
* Returns a server generated referenced timestamp to be used to track unreferenced nodes by GC.
|
|
455
457
|
*/
|
|
@@ -504,7 +506,7 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
504
506
|
*/
|
|
505
507
|
submitSummary(options: ISubmitSummaryOptions): Promise<SubmitSummaryResult>;
|
|
506
508
|
/**
|
|
507
|
-
* This helper is called during summarization. If
|
|
509
|
+
* This helper is called during summarization. If the container is dirty, it will return a failed summarize result
|
|
508
510
|
* (IBaseSummarizeResult) unless this is the final summarize attempt and SkipFailingIncorrectSummary option is set.
|
|
509
511
|
* @param logger - The logger to be used for sending telemetry.
|
|
510
512
|
* @param referenceSequenceNumber - The reference sequence number of the summary attempt.
|
|
@@ -535,6 +537,7 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
535
537
|
/**
|
|
536
538
|
* Finds the right store and asks it to resubmit the message. This typically happens when we
|
|
537
539
|
* reconnect and there are pending messages.
|
|
540
|
+
* ! Note: successfully resubmitting an op that has been successfully sequenced is not possible due to checks in the ConnectionStateHandler (Loader layer)
|
|
538
541
|
* @param message - The original LocalContainerRuntimeMessage.
|
|
539
542
|
* @param localOpMetadata - The local metadata associated with the original message.
|
|
540
543
|
*/
|
|
@@ -602,23 +605,25 @@ export declare type EnqueueSummarizeResult = (ISummarizeResults & {
|
|
|
602
605
|
/* Excluded from this release type: FluidDataStoreRegistry */
|
|
603
606
|
|
|
604
607
|
/**
|
|
605
|
-
* @see IGCMetadata.gcFeatureMatrix
|
|
608
|
+
* @see IGCMetadata.gcFeatureMatrix and @see gcGenerationOptionName
|
|
606
609
|
* @alpha
|
|
607
610
|
*/
|
|
608
|
-
export declare
|
|
611
|
+
export declare type GCFeatureMatrix = {
|
|
609
612
|
/**
|
|
610
|
-
* The
|
|
611
|
-
* Gives a way for an app to disqualify old files from GC
|
|
613
|
+
* The GC Generation value in effect when this file was created.
|
|
614
|
+
* Gives a way for an app to disqualify old files from GC Sweep.
|
|
612
615
|
* Provided via Container Runtime Options.
|
|
613
616
|
*/
|
|
614
|
-
|
|
617
|
+
gcGeneration?: number;
|
|
618
|
+
/** Deprecated property from legacy type. Will not be set concurrently with gcGeneration */
|
|
619
|
+
tombstoneGeneration?: undefined;
|
|
620
|
+
} | {
|
|
615
621
|
/**
|
|
616
|
-
* The
|
|
617
|
-
*
|
|
618
|
-
* Provided via Container Runtime Options.
|
|
622
|
+
* The Tombstone Generation value in effect when this file was created.
|
|
623
|
+
* Legacy - new containers would get gcGeneration instead (if anything)
|
|
619
624
|
*/
|
|
620
|
-
|
|
621
|
-
}
|
|
625
|
+
tombstoneGeneration: number;
|
|
626
|
+
};
|
|
622
627
|
|
|
623
628
|
/**
|
|
624
629
|
* The types of GC nodes in the GC reference graph.
|
|
@@ -885,7 +890,7 @@ export declare interface IGCMetadata {
|
|
|
885
890
|
* - True means sweep phase is enabled.
|
|
886
891
|
* - False means sweep phase is disabled. If GC is disabled as per gcFeature, sweep is also disabled.
|
|
887
892
|
*
|
|
888
|
-
* @deprecated use GCFeatureMatrix.
|
|
893
|
+
* @deprecated use GCFeatureMatrix.gcGeneration instead. @see GCFeatureMatrix.gcGeneration
|
|
889
894
|
*/
|
|
890
895
|
readonly sweepEnabled?: boolean;
|
|
891
896
|
/** If this is present, the session for this container will expire after this time and the container will close */
|
|
@@ -904,7 +909,7 @@ export declare interface IGCRuntimeOptions {
|
|
|
904
909
|
* GC has mark phase and sweep phase. In mark phase, unreferenced objects are identified
|
|
905
910
|
* and marked as such in the summary. This option enables the mark phase.
|
|
906
911
|
* In sweep phase, unreferenced objects are eventually deleted from the container if they meet certain conditions.
|
|
907
|
-
* Sweep phase can be enabled using the "
|
|
912
|
+
* Sweep phase can be enabled using the "enableGCSweep" option.
|
|
908
913
|
*
|
|
909
914
|
* Note: This setting is persisted in the container's summary and cannot be changed.
|
|
910
915
|
*/
|
|
@@ -914,6 +919,16 @@ export declare interface IGCRuntimeOptions {
|
|
|
914
919
|
* Can be used to disable running GC on containers where it is allowed via the gcAllowed option.
|
|
915
920
|
*/
|
|
916
921
|
disableGC?: boolean;
|
|
922
|
+
/**
|
|
923
|
+
* Flag that if true, will enable the full Sweep Phase of garbage collection for this session,
|
|
924
|
+
* where Tombstoned objects are permanently deleted from the container.
|
|
925
|
+
*
|
|
926
|
+
* IMPORTANT: This only applies if this document is allowed to run Sweep Phase.
|
|
927
|
+
*
|
|
928
|
+
* Current default behavior is for Sweep Phase not to delete Tombstoned objects,
|
|
929
|
+
* but merely to prevent them from being loaded.
|
|
930
|
+
*/
|
|
931
|
+
enableGCSweep?: true;
|
|
917
932
|
/**
|
|
918
933
|
* Flag that will bypass optimizations and generate GC data for all nodes irrespective of whether a node
|
|
919
934
|
* changed or not.
|
|
@@ -925,6 +940,12 @@ export declare interface IGCRuntimeOptions {
|
|
|
925
940
|
* Note: This setting is persisted in the container's summary and cannot be changed.
|
|
926
941
|
*/
|
|
927
942
|
sessionExpiryTimeoutMs?: number;
|
|
943
|
+
/**
|
|
944
|
+
* Delay between when Tombstone should run and when the object should be deleted.
|
|
945
|
+
* This grace period gives a chance to intervene to recover if needed, before Sweep deletes the object.
|
|
946
|
+
* If not present, a default (non-zero) value will be used.
|
|
947
|
+
*/
|
|
948
|
+
sweepGracePeriodMs?: number;
|
|
928
949
|
/**
|
|
929
950
|
* Allows additional GC options to be passed.
|
|
930
951
|
*/
|
|
@@ -1,13 +1,53 @@
|
|
|
1
|
+
import { assertIsStableId } from '@fluidframework/id-compressor';
|
|
2
|
+
import { AttachState } from '@fluidframework/container-definitions';
|
|
3
|
+
import { ContainerWarning } from '@fluidframework/container-definitions';
|
|
4
|
+
import { FluidDataStoreRegistryEntry } from '@fluidframework/runtime-definitions';
|
|
5
|
+
import { FluidObject } from '@fluidframework/core-interfaces';
|
|
6
|
+
import { FlushMode } from '@fluidframework/runtime-definitions';
|
|
7
|
+
import { generateStableId } from '@fluidframework/id-compressor';
|
|
8
|
+
import { IAudience } from '@fluidframework/container-definitions';
|
|
1
9
|
import { IClientDetails } from '@fluidframework/protocol-definitions';
|
|
10
|
+
import { IContainerContext } from '@fluidframework/container-definitions';
|
|
11
|
+
import { IContainerRuntime } from '@fluidframework/container-runtime-definitions';
|
|
12
|
+
import { IContainerRuntimeEvents } from '@fluidframework/container-runtime-definitions';
|
|
13
|
+
import { ICriticalContainerError } from '@fluidframework/container-definitions';
|
|
14
|
+
import { IDataStore } from '@fluidframework/runtime-definitions';
|
|
15
|
+
import { IDeltaManager } from '@fluidframework/container-definitions';
|
|
16
|
+
import { IDisposable } from '@fluidframework/core-interfaces';
|
|
2
17
|
import { IDocumentMessage } from '@fluidframework/protocol-definitions';
|
|
18
|
+
import { IDocumentStorageService } from '@fluidframework/driver-definitions';
|
|
19
|
+
import { IEvent } from '@fluidframework/core-interfaces';
|
|
20
|
+
import { IEventProvider } from '@fluidframework/core-interfaces';
|
|
21
|
+
import { IFluidDataStoreContextDetached } from '@fluidframework/runtime-definitions';
|
|
22
|
+
import { IFluidDataStoreRegistry } from '@fluidframework/runtime-definitions';
|
|
23
|
+
import { IFluidHandle } from '@fluidframework/core-interfaces';
|
|
24
|
+
import { IFluidHandleContext } from '@fluidframework/core-interfaces';
|
|
25
|
+
import { IFluidRouter } from '@fluidframework/core-interfaces';
|
|
26
|
+
import { IGarbageCollectionData } from '@fluidframework/runtime-definitions';
|
|
27
|
+
import { IGetPendingLocalStateProps } from '@fluidframework/container-definitions';
|
|
28
|
+
import type { IIdCompressor } from '@fluidframework/id-compressor';
|
|
29
|
+
import type { IIdCompressorCore } from '@fluidframework/id-compressor';
|
|
30
|
+
import { ILoader } from '@fluidframework/container-definitions';
|
|
31
|
+
import { ILoaderOptions } from '@fluidframework/container-definitions';
|
|
32
|
+
import { IProvideFluidHandleContext } from '@fluidframework/core-interfaces';
|
|
3
33
|
import { IQuorumClients } from '@fluidframework/protocol-definitions';
|
|
34
|
+
import { IRequest } from '@fluidframework/core-interfaces';
|
|
35
|
+
import { IResponse } from '@fluidframework/core-interfaces';
|
|
36
|
+
import { IRuntime } from '@fluidframework/container-definitions';
|
|
4
37
|
import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
|
|
5
38
|
import { ISignalMessage } from '@fluidframework/protocol-definitions';
|
|
39
|
+
import { isStableId } from '@fluidframework/id-compressor';
|
|
6
40
|
import { ISummaryAck } from '@fluidframework/protocol-definitions';
|
|
7
41
|
import { ISummaryContent } from '@fluidframework/protocol-definitions';
|
|
8
42
|
import { ISummaryNack } from '@fluidframework/protocol-definitions';
|
|
43
|
+
import { ISummaryStats } from '@fluidframework/runtime-definitions';
|
|
9
44
|
import { ISummaryTree } from '@fluidframework/protocol-definitions';
|
|
45
|
+
import { ISummaryTreeWithStats } from '@fluidframework/runtime-definitions';
|
|
46
|
+
import { ITelemetryContext } from '@fluidframework/runtime-definitions';
|
|
47
|
+
import { ITelemetryLoggerExt } from '@fluidframework/telemetry-utils';
|
|
10
48
|
import { MessageType } from '@fluidframework/protocol-definitions';
|
|
49
|
+
import { NamedFluidDataStoreRegistryEntries } from '@fluidframework/runtime-definitions';
|
|
50
|
+
import { TypedEventEmitter } from '@fluid-internal/client-utils';
|
|
11
51
|
|
|
12
52
|
/* Excluded from this release type: agentSchedulerId */
|
|
13
53
|
|
|
@@ -235,8 +275,6 @@ import { MessageType } from '@fluidframework/protocol-definitions';
|
|
|
235
275
|
|
|
236
276
|
/* Excluded from this release type: RuntimeMessage */
|
|
237
277
|
|
|
238
|
-
/* Excluded from this release type: StableId */
|
|
239
|
-
|
|
240
278
|
/* Excluded from this release type: SubmitSummaryFailureData */
|
|
241
279
|
|
|
242
280
|
/* Excluded from this release type: SubmitSummaryResult */
|
|
@@ -1,13 +1,53 @@
|
|
|
1
|
+
import { assertIsStableId } from '@fluidframework/id-compressor';
|
|
2
|
+
import { AttachState } from '@fluidframework/container-definitions';
|
|
3
|
+
import { ContainerWarning } from '@fluidframework/container-definitions';
|
|
4
|
+
import { FluidDataStoreRegistryEntry } from '@fluidframework/runtime-definitions';
|
|
5
|
+
import { FluidObject } from '@fluidframework/core-interfaces';
|
|
6
|
+
import { FlushMode } from '@fluidframework/runtime-definitions';
|
|
7
|
+
import { generateStableId } from '@fluidframework/id-compressor';
|
|
8
|
+
import { IAudience } from '@fluidframework/container-definitions';
|
|
1
9
|
import { IClientDetails } from '@fluidframework/protocol-definitions';
|
|
10
|
+
import { IContainerContext } from '@fluidframework/container-definitions';
|
|
11
|
+
import { IContainerRuntime } from '@fluidframework/container-runtime-definitions';
|
|
12
|
+
import { IContainerRuntimeEvents } from '@fluidframework/container-runtime-definitions';
|
|
13
|
+
import { ICriticalContainerError } from '@fluidframework/container-definitions';
|
|
14
|
+
import { IDataStore } from '@fluidframework/runtime-definitions';
|
|
15
|
+
import { IDeltaManager } from '@fluidframework/container-definitions';
|
|
16
|
+
import { IDisposable } from '@fluidframework/core-interfaces';
|
|
2
17
|
import { IDocumentMessage } from '@fluidframework/protocol-definitions';
|
|
18
|
+
import { IDocumentStorageService } from '@fluidframework/driver-definitions';
|
|
19
|
+
import { IEvent } from '@fluidframework/core-interfaces';
|
|
20
|
+
import { IEventProvider } from '@fluidframework/core-interfaces';
|
|
21
|
+
import { IFluidDataStoreContextDetached } from '@fluidframework/runtime-definitions';
|
|
22
|
+
import { IFluidDataStoreRegistry } from '@fluidframework/runtime-definitions';
|
|
23
|
+
import { IFluidHandle } from '@fluidframework/core-interfaces';
|
|
24
|
+
import { IFluidHandleContext } from '@fluidframework/core-interfaces';
|
|
25
|
+
import { IFluidRouter } from '@fluidframework/core-interfaces';
|
|
26
|
+
import { IGarbageCollectionData } from '@fluidframework/runtime-definitions';
|
|
27
|
+
import { IGetPendingLocalStateProps } from '@fluidframework/container-definitions';
|
|
28
|
+
import type { IIdCompressor } from '@fluidframework/id-compressor';
|
|
29
|
+
import type { IIdCompressorCore } from '@fluidframework/id-compressor';
|
|
30
|
+
import { ILoader } from '@fluidframework/container-definitions';
|
|
31
|
+
import { ILoaderOptions } from '@fluidframework/container-definitions';
|
|
32
|
+
import { IProvideFluidHandleContext } from '@fluidframework/core-interfaces';
|
|
3
33
|
import { IQuorumClients } from '@fluidframework/protocol-definitions';
|
|
34
|
+
import { IRequest } from '@fluidframework/core-interfaces';
|
|
35
|
+
import { IResponse } from '@fluidframework/core-interfaces';
|
|
36
|
+
import { IRuntime } from '@fluidframework/container-definitions';
|
|
4
37
|
import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
|
|
5
38
|
import { ISignalMessage } from '@fluidframework/protocol-definitions';
|
|
39
|
+
import { isStableId } from '@fluidframework/id-compressor';
|
|
6
40
|
import { ISummaryAck } from '@fluidframework/protocol-definitions';
|
|
7
41
|
import { ISummaryContent } from '@fluidframework/protocol-definitions';
|
|
8
42
|
import { ISummaryNack } from '@fluidframework/protocol-definitions';
|
|
43
|
+
import { ISummaryStats } from '@fluidframework/runtime-definitions';
|
|
9
44
|
import { ISummaryTree } from '@fluidframework/protocol-definitions';
|
|
45
|
+
import { ISummaryTreeWithStats } from '@fluidframework/runtime-definitions';
|
|
46
|
+
import { ITelemetryContext } from '@fluidframework/runtime-definitions';
|
|
47
|
+
import { ITelemetryLoggerExt } from '@fluidframework/telemetry-utils';
|
|
10
48
|
import { MessageType } from '@fluidframework/protocol-definitions';
|
|
49
|
+
import { NamedFluidDataStoreRegistryEntries } from '@fluidframework/runtime-definitions';
|
|
50
|
+
import { TypedEventEmitter } from '@fluid-internal/client-utils';
|
|
11
51
|
|
|
12
52
|
/* Excluded from this release type: agentSchedulerId */
|
|
13
53
|
|
|
@@ -235,8 +275,6 @@ import { MessageType } from '@fluidframework/protocol-definitions';
|
|
|
235
275
|
|
|
236
276
|
/* Excluded from this release type: RuntimeMessage */
|
|
237
277
|
|
|
238
|
-
/* Excluded from this release type: StableId */
|
|
239
|
-
|
|
240
278
|
/* Excluded from this release type: SubmitSummaryFailureData */
|
|
241
279
|
|
|
242
280
|
/* Excluded from this release type: SubmitSummaryResult */
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { assertIsStableId } from '@fluidframework/id-compressor';
|
|
1
2
|
import { AttachState } from '@fluidframework/container-definitions';
|
|
2
3
|
import { ContainerWarning } from '@fluidframework/container-definitions';
|
|
3
4
|
import { FluidDataStoreRegistryEntry } from '@fluidframework/runtime-definitions';
|
|
4
5
|
import { FluidObject } from '@fluidframework/core-interfaces';
|
|
5
6
|
import { FlushMode } from '@fluidframework/runtime-definitions';
|
|
7
|
+
import { generateStableId } from '@fluidframework/id-compressor';
|
|
6
8
|
import { IAudience } from '@fluidframework/container-definitions';
|
|
7
9
|
import { IClientDetails } from '@fluidframework/protocol-definitions';
|
|
8
10
|
import { IContainerContext } from '@fluidframework/container-definitions';
|
|
@@ -23,8 +25,8 @@ import { IFluidHandleContext } from '@fluidframework/core-interfaces';
|
|
|
23
25
|
import { IFluidRouter } from '@fluidframework/core-interfaces';
|
|
24
26
|
import { IGarbageCollectionData } from '@fluidframework/runtime-definitions';
|
|
25
27
|
import { IGetPendingLocalStateProps } from '@fluidframework/container-definitions';
|
|
26
|
-
import { IIdCompressor } from '@fluidframework/
|
|
27
|
-
import { IIdCompressorCore } from '@fluidframework/
|
|
28
|
+
import type { IIdCompressor } from '@fluidframework/id-compressor';
|
|
29
|
+
import type { IIdCompressorCore } from '@fluidframework/id-compressor';
|
|
28
30
|
import { ILoader } from '@fluidframework/container-definitions';
|
|
29
31
|
import { ILoaderOptions } from '@fluidframework/container-definitions';
|
|
30
32
|
import { IProvideFluidHandleContext } from '@fluidframework/core-interfaces';
|
|
@@ -34,6 +36,7 @@ import { IResponse } from '@fluidframework/core-interfaces';
|
|
|
34
36
|
import { IRuntime } from '@fluidframework/container-definitions';
|
|
35
37
|
import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
|
|
36
38
|
import { ISignalMessage } from '@fluidframework/protocol-definitions';
|
|
39
|
+
import { isStableId } from '@fluidframework/id-compressor';
|
|
37
40
|
import { ISummaryAck } from '@fluidframework/protocol-definitions';
|
|
38
41
|
import { ISummaryContent } from '@fluidframework/protocol-definitions';
|
|
39
42
|
import { ISummaryNack } from '@fluidframework/protocol-definitions';
|
|
@@ -44,7 +47,6 @@ import { ITelemetryContext } from '@fluidframework/runtime-definitions';
|
|
|
44
47
|
import { ITelemetryLoggerExt } from '@fluidframework/telemetry-utils';
|
|
45
48
|
import { MessageType } from '@fluidframework/protocol-definitions';
|
|
46
49
|
import { NamedFluidDataStoreRegistryEntries } from '@fluidframework/runtime-definitions';
|
|
47
|
-
import { StableId } from '@fluidframework/runtime-definitions';
|
|
48
50
|
import { TypedEventEmitter } from '@fluid-internal/client-utils';
|
|
49
51
|
|
|
50
52
|
/**
|
|
@@ -66,11 +68,7 @@ export declare const AllowInactiveRequestHeaderKey = "allowInactive";
|
|
|
66
68
|
*/
|
|
67
69
|
export declare const AllowTombstoneRequestHeaderKey = "allowTombstone";
|
|
68
70
|
|
|
69
|
-
|
|
70
|
-
* Asserts that the given string is a stable ID.
|
|
71
|
-
* @internal
|
|
72
|
-
*/
|
|
73
|
-
export declare function assertIsStableId(stableId: string): StableId;
|
|
71
|
+
export { assertIsStableId }
|
|
74
72
|
|
|
75
73
|
/**
|
|
76
74
|
* How should an older client handle an unrecognized remote op type?
|
|
@@ -106,7 +104,12 @@ export declare enum ContainerMessageType {
|
|
|
106
104
|
* the last allocation op was sent.
|
|
107
105
|
* See the [IdCompressor README](./id-compressor/README.md) for more details.
|
|
108
106
|
*/
|
|
109
|
-
IdAllocation = "idAllocation"
|
|
107
|
+
IdAllocation = "idAllocation",
|
|
108
|
+
/**
|
|
109
|
+
* Garbage collection specific op. This is sent by the summarizer client when GC runs. It's used to synchronize GC
|
|
110
|
+
* state across all clients.
|
|
111
|
+
*/
|
|
112
|
+
GC = "GC"
|
|
110
113
|
}
|
|
111
114
|
|
|
112
115
|
/**
|
|
@@ -471,27 +474,27 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
471
474
|
* @param usedRoutes - The routes that are used in all nodes in this Container.
|
|
472
475
|
* @see IGarbageCollectionRuntime.updateUsedRoutes
|
|
473
476
|
*/
|
|
474
|
-
updateUsedRoutes(usedRoutes: string[]): void;
|
|
477
|
+
updateUsedRoutes(usedRoutes: readonly string[]): void;
|
|
475
478
|
/**
|
|
476
479
|
* This is called to update objects whose routes are unused.
|
|
477
480
|
* @param unusedRoutes - Data store and attachment blob routes that are unused in this Container.
|
|
478
481
|
*/
|
|
479
|
-
updateUnusedRoutes(unusedRoutes: string[]): void;
|
|
482
|
+
updateUnusedRoutes(unusedRoutes: readonly string[]): void;
|
|
480
483
|
/**
|
|
481
484
|
* @deprecated Replaced by deleteSweepReadyNodes.
|
|
482
485
|
*/
|
|
483
|
-
deleteUnusedNodes(unusedRoutes: string[]): string[];
|
|
486
|
+
deleteUnusedNodes(unusedRoutes: readonly string[]): string[];
|
|
484
487
|
/**
|
|
485
488
|
* After GC has run and identified nodes that are sweep ready, this is called to delete the sweep ready nodes.
|
|
486
489
|
* @param sweepReadyRoutes - The routes of nodes that are sweep ready and should be deleted.
|
|
487
490
|
* @returns The routes of nodes that were deleted.
|
|
488
491
|
*/
|
|
489
|
-
deleteSweepReadyNodes(sweepReadyRoutes: string[]): string[];
|
|
492
|
+
deleteSweepReadyNodes(sweepReadyRoutes: readonly string[]): readonly string[];
|
|
490
493
|
/**
|
|
491
494
|
* This is called to update objects that are tombstones.
|
|
492
495
|
* @param tombstonedRoutes - Data store and attachment blob routes that are tombstones in this Container.
|
|
493
496
|
*/
|
|
494
|
-
updateTombstonedRoutes(tombstonedRoutes: string[]): void;
|
|
497
|
+
updateTombstonedRoutes(tombstonedRoutes: readonly string[]): void;
|
|
495
498
|
/**
|
|
496
499
|
* Returns a server generated referenced timestamp to be used to track unreferenced nodes by GC.
|
|
497
500
|
*/
|
|
@@ -546,7 +549,7 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
546
549
|
*/
|
|
547
550
|
submitSummary(options: ISubmitSummaryOptions): Promise<SubmitSummaryResult>;
|
|
548
551
|
/**
|
|
549
|
-
* This helper is called during summarization. If
|
|
552
|
+
* This helper is called during summarization. If the container is dirty, it will return a failed summarize result
|
|
550
553
|
* (IBaseSummarizeResult) unless this is the final summarize attempt and SkipFailingIncorrectSummary option is set.
|
|
551
554
|
* @param logger - The logger to be used for sending telemetry.
|
|
552
555
|
* @param referenceSequenceNumber - The reference sequence number of the summary attempt.
|
|
@@ -577,6 +580,7 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
577
580
|
/**
|
|
578
581
|
* Finds the right store and asks it to resubmit the message. This typically happens when we
|
|
579
582
|
* reconnect and there are pending messages.
|
|
583
|
+
* ! Note: successfully resubmitting an op that has been successfully sequenced is not possible due to checks in the ConnectionStateHandler (Loader layer)
|
|
580
584
|
* @param message - The original LocalContainerRuntimeMessage.
|
|
581
585
|
* @param localOpMetadata - The local metadata associated with the original message.
|
|
582
586
|
*/
|
|
@@ -673,23 +677,25 @@ export declare class FluidDataStoreRegistry implements IFluidDataStoreRegistry {
|
|
|
673
677
|
}
|
|
674
678
|
|
|
675
679
|
/**
|
|
676
|
-
* @see IGCMetadata.gcFeatureMatrix
|
|
680
|
+
* @see IGCMetadata.gcFeatureMatrix and @see gcGenerationOptionName
|
|
677
681
|
* @alpha
|
|
678
682
|
*/
|
|
679
|
-
export declare
|
|
683
|
+
export declare type GCFeatureMatrix = {
|
|
680
684
|
/**
|
|
681
|
-
* The
|
|
682
|
-
* Gives a way for an app to disqualify old files from GC
|
|
685
|
+
* The GC Generation value in effect when this file was created.
|
|
686
|
+
* Gives a way for an app to disqualify old files from GC Sweep.
|
|
683
687
|
* Provided via Container Runtime Options.
|
|
684
688
|
*/
|
|
685
|
-
|
|
689
|
+
gcGeneration?: number;
|
|
690
|
+
/** Deprecated property from legacy type. Will not be set concurrently with gcGeneration */
|
|
691
|
+
tombstoneGeneration?: undefined;
|
|
692
|
+
} | {
|
|
686
693
|
/**
|
|
687
|
-
* The
|
|
688
|
-
*
|
|
689
|
-
* Provided via Container Runtime Options.
|
|
694
|
+
* The Tombstone Generation value in effect when this file was created.
|
|
695
|
+
* Legacy - new containers would get gcGeneration instead (if anything)
|
|
690
696
|
*/
|
|
691
|
-
|
|
692
|
-
}
|
|
697
|
+
tombstoneGeneration: number;
|
|
698
|
+
};
|
|
693
699
|
|
|
694
700
|
/**
|
|
695
701
|
* The types of GC nodes in the GC reference graph.
|
|
@@ -712,11 +718,7 @@ export declare type GCNodeType = (typeof GCNodeType)[keyof typeof GCNodeType];
|
|
|
712
718
|
*/
|
|
713
719
|
export declare type GCVersion = number;
|
|
714
720
|
|
|
715
|
-
|
|
716
|
-
* Generate a random stable ID
|
|
717
|
-
* @internal
|
|
718
|
-
*/
|
|
719
|
-
export declare function generateStableId(): StableId;
|
|
721
|
+
export { generateStableId }
|
|
720
722
|
|
|
721
723
|
/**
|
|
722
724
|
* A single summary which has already been acked by the server.
|
|
@@ -998,7 +1000,7 @@ export declare interface IGCMetadata {
|
|
|
998
1000
|
* - True means sweep phase is enabled.
|
|
999
1001
|
* - False means sweep phase is disabled. If GC is disabled as per gcFeature, sweep is also disabled.
|
|
1000
1002
|
*
|
|
1001
|
-
* @deprecated use GCFeatureMatrix.
|
|
1003
|
+
* @deprecated use GCFeatureMatrix.gcGeneration instead. @see GCFeatureMatrix.gcGeneration
|
|
1002
1004
|
*/
|
|
1003
1005
|
readonly sweepEnabled?: boolean;
|
|
1004
1006
|
/** If this is present, the session for this container will expire after this time and the container will close */
|
|
@@ -1017,7 +1019,7 @@ export declare interface IGCRuntimeOptions {
|
|
|
1017
1019
|
* GC has mark phase and sweep phase. In mark phase, unreferenced objects are identified
|
|
1018
1020
|
* and marked as such in the summary. This option enables the mark phase.
|
|
1019
1021
|
* In sweep phase, unreferenced objects are eventually deleted from the container if they meet certain conditions.
|
|
1020
|
-
* Sweep phase can be enabled using the "
|
|
1022
|
+
* Sweep phase can be enabled using the "enableGCSweep" option.
|
|
1021
1023
|
*
|
|
1022
1024
|
* Note: This setting is persisted in the container's summary and cannot be changed.
|
|
1023
1025
|
*/
|
|
@@ -1027,6 +1029,16 @@ export declare interface IGCRuntimeOptions {
|
|
|
1027
1029
|
* Can be used to disable running GC on containers where it is allowed via the gcAllowed option.
|
|
1028
1030
|
*/
|
|
1029
1031
|
disableGC?: boolean;
|
|
1032
|
+
/**
|
|
1033
|
+
* Flag that if true, will enable the full Sweep Phase of garbage collection for this session,
|
|
1034
|
+
* where Tombstoned objects are permanently deleted from the container.
|
|
1035
|
+
*
|
|
1036
|
+
* IMPORTANT: This only applies if this document is allowed to run Sweep Phase.
|
|
1037
|
+
*
|
|
1038
|
+
* Current default behavior is for Sweep Phase not to delete Tombstoned objects,
|
|
1039
|
+
* but merely to prevent them from being loaded.
|
|
1040
|
+
*/
|
|
1041
|
+
enableGCSweep?: true;
|
|
1030
1042
|
/**
|
|
1031
1043
|
* Flag that will bypass optimizations and generate GC data for all nodes irrespective of whether a node
|
|
1032
1044
|
* changed or not.
|
|
@@ -1038,6 +1050,12 @@ export declare interface IGCRuntimeOptions {
|
|
|
1038
1050
|
* Note: This setting is persisted in the container's summary and cannot be changed.
|
|
1039
1051
|
*/
|
|
1040
1052
|
sessionExpiryTimeoutMs?: number;
|
|
1053
|
+
/**
|
|
1054
|
+
* Delay between when Tombstone should run and when the object should be deleted.
|
|
1055
|
+
* This grace period gives a chance to intervene to recover if needed, before Sweep deletes the object.
|
|
1056
|
+
* If not present, a default (non-zero) value will be used.
|
|
1057
|
+
*/
|
|
1058
|
+
sweepGracePeriodMs?: number;
|
|
1041
1059
|
/**
|
|
1042
1060
|
* Allows additional GC options to be passed.
|
|
1043
1061
|
*/
|
|
@@ -1183,12 +1201,7 @@ export declare interface ISerializedElection {
|
|
|
1183
1201
|
*/
|
|
1184
1202
|
export declare function isRuntimeMessage(message: ISequencedDocumentMessage): boolean;
|
|
1185
1203
|
|
|
1186
|
-
|
|
1187
|
-
* Returns true iff the given string is a valid Version 4, variant 2 UUID
|
|
1188
|
-
* 'xxxxxxxx-xxxx-4xxx-vxxx-xxxxxxxxxxxx'
|
|
1189
|
-
* @internal
|
|
1190
|
-
*/
|
|
1191
|
-
export declare function isStableId(str: string): str is StableId;
|
|
1204
|
+
export { isStableId }
|
|
1192
1205
|
|
|
1193
1206
|
/**
|
|
1194
1207
|
* Results of submitSummary after submitting the summarize op.
|
|
@@ -9,7 +9,8 @@ import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
|
9
9
|
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
10
10
|
import { IDocumentStorageService } from "@fluidframework/driver-definitions";
|
|
11
11
|
import { IClientDetails, IDocumentMessage, IQuorumClients, ISequencedDocumentMessage, ISignalMessage, ISummaryTree, MessageType } from "@fluidframework/protocol-definitions";
|
|
12
|
-
import { FlushMode, IFluidDataStoreContextDetached, IFluidDataStoreRegistry, IGarbageCollectionData, NamedFluidDataStoreRegistryEntries, ISummaryTreeWithStats, IDataStore, ITelemetryContext
|
|
12
|
+
import { FlushMode, IFluidDataStoreContextDetached, IFluidDataStoreRegistry, IGarbageCollectionData, NamedFluidDataStoreRegistryEntries, ISummaryTreeWithStats, IDataStore, ITelemetryContext } from "@fluidframework/runtime-definitions";
|
|
13
|
+
import type { IIdCompressor, IIdCompressorCore, SerializedIdCompressorWithOngoingSession } from "@fluidframework/id-compressor";
|
|
13
14
|
import { IPendingLocalState } from "./pendingStateManager";
|
|
14
15
|
import { IBlobManagerLoadInfo, IPendingBlobs } from "./blobManager";
|
|
15
16
|
import { IContainerRuntimeMetadata, ISerializedElection, SubmitSummaryResult, ISubmitSummaryOptions, ISummarizerInternalsProvider, ISummarizerRuntime, IRefreshSummaryAckOptions, IOnDemandSummarizeOptions, ISummarizeResults, IEnqueueSummarizeOptions, EnqueueSummarizeResult, ISummarizerEvents, ISummarizer } from "./summary";
|
|
@@ -700,27 +701,27 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
700
701
|
* @param usedRoutes - The routes that are used in all nodes in this Container.
|
|
701
702
|
* @see IGarbageCollectionRuntime.updateUsedRoutes
|
|
702
703
|
*/
|
|
703
|
-
updateUsedRoutes(usedRoutes: string[]): void;
|
|
704
|
+
updateUsedRoutes(usedRoutes: readonly string[]): void;
|
|
704
705
|
/**
|
|
705
706
|
* This is called to update objects whose routes are unused.
|
|
706
707
|
* @param unusedRoutes - Data store and attachment blob routes that are unused in this Container.
|
|
707
708
|
*/
|
|
708
|
-
updateUnusedRoutes(unusedRoutes: string[]): void;
|
|
709
|
+
updateUnusedRoutes(unusedRoutes: readonly string[]): void;
|
|
709
710
|
/**
|
|
710
711
|
* @deprecated Replaced by deleteSweepReadyNodes.
|
|
711
712
|
*/
|
|
712
|
-
deleteUnusedNodes(unusedRoutes: string[]): string[];
|
|
713
|
+
deleteUnusedNodes(unusedRoutes: readonly string[]): string[];
|
|
713
714
|
/**
|
|
714
715
|
* After GC has run and identified nodes that are sweep ready, this is called to delete the sweep ready nodes.
|
|
715
716
|
* @param sweepReadyRoutes - The routes of nodes that are sweep ready and should be deleted.
|
|
716
717
|
* @returns The routes of nodes that were deleted.
|
|
717
718
|
*/
|
|
718
|
-
deleteSweepReadyNodes(sweepReadyRoutes: string[]): string[];
|
|
719
|
+
deleteSweepReadyNodes(sweepReadyRoutes: readonly string[]): readonly string[];
|
|
719
720
|
/**
|
|
720
721
|
* This is called to update objects that are tombstones.
|
|
721
722
|
* @param tombstonedRoutes - Data store and attachment blob routes that are tombstones in this Container.
|
|
722
723
|
*/
|
|
723
|
-
updateTombstonedRoutes(tombstonedRoutes: string[]): void;
|
|
724
|
+
updateTombstonedRoutes(tombstonedRoutes: readonly string[]): void;
|
|
724
725
|
/**
|
|
725
726
|
* Returns a server generated referenced timestamp to be used to track unreferenced nodes by GC.
|
|
726
727
|
*/
|
|
@@ -775,7 +776,7 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
775
776
|
*/
|
|
776
777
|
submitSummary(options: ISubmitSummaryOptions): Promise<SubmitSummaryResult>;
|
|
777
778
|
/**
|
|
778
|
-
* This helper is called during summarization. If
|
|
779
|
+
* This helper is called during summarization. If the container is dirty, it will return a failed summarize result
|
|
779
780
|
* (IBaseSummarizeResult) unless this is the final summarize attempt and SkipFailingIncorrectSummary option is set.
|
|
780
781
|
* @param logger - The logger to be used for sending telemetry.
|
|
781
782
|
* @param referenceSequenceNumber - The reference sequence number of the summary attempt.
|
|
@@ -806,6 +807,7 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
806
807
|
/**
|
|
807
808
|
* Finds the right store and asks it to resubmit the message. This typically happens when we
|
|
808
809
|
* reconnect and there are pending messages.
|
|
810
|
+
* ! Note: successfully resubmitting an op that has been successfully sequenced is not possible due to checks in the ConnectionStateHandler (Loader layer)
|
|
809
811
|
* @param message - The original LocalContainerRuntimeMessage.
|
|
810
812
|
* @param localOpMetadata - The local metadata associated with the original message.
|
|
811
813
|
*/
|