Skip to main content

IContainerRuntimeOptions Interface

Options for container runtime.

This API is provided for existing users, but is not recommended for new users.

To use, import via @fluidframework/container-runtime/legacy.

For more information about our API support guarantees, see here.

Signature

export interface IContainerRuntimeOptions

Properties

Property Alerts Modifiers Type Description
chunkSizeInBytes Alpha optional, readonly number

If the op payload needs to be chunked in order to work around the maximum size of the batch, this value represents how large the individual chunks will be. This is only supported when compression is enabled. If after compression, the batch content size exceeds this value, it will be chunked into smaller ops of this exact size.

This value is a trade-off between having many small chunks vs fewer larger chunks and by default, the runtime is configured to use 200 * 1024 = 204800 bytes. This default value ensures that no compressed payload's content is able to exceed maxBatchSizeInBytes regardless of the overhead of an individual op.

Any value of chunkSizeInBytes exceeding maxBatchSizeInBytes will disable this feature, therefore if a compressed batch's content size exceeds maxBatchSizeInBytes after compression, the container will close with an instance of GenericError with the BatchTooLarge message.

compressionOptions Alpha optional, readonly ICompressionRuntimeOptions Enables the runtime to compress ops. See ICompressionRuntimeOptions.
enableGroupedBatching Alpha optional, readonly boolean

If enabled, the runtime will group messages within a batch into a single message to be sent to the service. The grouping an ungrouping of such messages is handled by the "OpGroupingManager".

By default, the feature is enabled.

enableRuntimeIdCompressor Alpha optional, readonly IdCompressorMode Enable the IdCompressor in the runtime. Not ready for use.
explicitSchemaControl Alpha optional, readonly boolean When this property is set to true, it requires runtime to control is document schema properly through ops The benefit of this mode is that clients who do not understand schema will fail in predictable way, with predictable message, and will not attempt to limp along, which could cause data corruptions and crashes in random places. When this property is not set (or set to false), runtime operates in legacy mode, where new features (modifying document schema) are engaged as they become available, without giving legacy clients any chance to fail predictably.
flushMode Alpha optional, readonly FlushMode Sets the flush mode for the runtime. In Immediate flush mode the runtime will immediately send all operations to the driver layer, while in TurnBased the operations will be buffered and then sent them as a single batch at the end of the turn. By default, flush mode is TurnBased.
gcOptions Alpha optional, readonly IGCRuntimeOptions
loadSequenceNumberVerification Alpha optional, readonly "close" | "log" | "bypass" Affects the behavior while loading the runtime when the data verification check which compares the DeltaManager sequence number (obtained from protocol in summary) to the runtime sequence number (obtained from runtime metadata in summary) finds a mismatch. 1. "close" (default) will close the container with an assertion. 2. "log" will log an error event to telemetry, but still continue to load. 3. "bypass" will skip the check entirely. This is not recommended.
maxBatchSizeInBytes Alpha optional, readonly number

If specified, when in FlushMode.TurnBased, if the size of the ops between JS turns exceeds this value, an error will be thrown and the container will close.

If unspecified, the limit is 700Kb.

'Infinity' will disable any limit.

This config should be driven by the connection with the service and will be moved in the future.

summaryOptions Alpha optional, readonly ISummaryRuntimeOptions

Property Details

chunkSizeInBytes

If the op payload needs to be chunked in order to work around the maximum size of the batch, this value represents how large the individual chunks will be. This is only supported when compression is enabled. If after compression, the batch content size exceeds this value, it will be chunked into smaller ops of this exact size.

This value is a trade-off between having many small chunks vs fewer larger chunks and by default, the runtime is configured to use 200 * 1024 = 204800 bytes. This default value ensures that no compressed payload's content is able to exceed maxBatchSizeInBytes regardless of the overhead of an individual op.

Any value of chunkSizeInBytes exceeding maxBatchSizeInBytes will disable this feature, therefore if a compressed batch's content size exceeds maxBatchSizeInBytes after compression, the container will close with an instance of GenericError with the BatchTooLarge message.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/container-runtime/alpha.

For more information about our API support guarantees, see here.

Signature

readonly chunkSizeInBytes?: number;

Type: number

compressionOptions

Enables the runtime to compress ops. See ICompressionRuntimeOptions.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/container-runtime/alpha.

For more information about our API support guarantees, see here.

Signature

readonly compressionOptions?: ICompressionRuntimeOptions;

Type: ICompressionRuntimeOptions

enableGroupedBatching

If enabled, the runtime will group messages within a batch into a single message to be sent to the service. The grouping an ungrouping of such messages is handled by the "OpGroupingManager".

By default, the feature is enabled.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/container-runtime/alpha.

For more information about our API support guarantees, see here.

Signature

readonly enableGroupedBatching?: boolean;

Type: boolean

enableRuntimeIdCompressor

Enable the IdCompressor in the runtime. Not ready for use.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/container-runtime/alpha.

For more information about our API support guarantees, see here.

Signature

readonly enableRuntimeIdCompressor?: IdCompressorMode;

Type: IdCompressorMode

explicitSchemaControl

When this property is set to true, it requires runtime to control is document schema properly through ops The benefit of this mode is that clients who do not understand schema will fail in predictable way, with predictable message, and will not attempt to limp along, which could cause data corruptions and crashes in random places. When this property is not set (or set to false), runtime operates in legacy mode, where new features (modifying document schema) are engaged as they become available, without giving legacy clients any chance to fail predictably.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/container-runtime/alpha.

For more information about our API support guarantees, see here.

Signature

readonly explicitSchemaControl?: boolean;

Type: boolean

flushMode

Sets the flush mode for the runtime. In Immediate flush mode the runtime will immediately send all operations to the driver layer, while in TurnBased the operations will be buffered and then sent them as a single batch at the end of the turn. By default, flush mode is TurnBased.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/container-runtime/alpha.

For more information about our API support guarantees, see here.

Signature

readonly flushMode?: FlushMode;

Type: FlushMode

gcOptions

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/container-runtime/alpha.

For more information about our API support guarantees, see here.

Signature

readonly gcOptions?: IGCRuntimeOptions;

Type: IGCRuntimeOptions

loadSequenceNumberVerification

Affects the behavior while loading the runtime when the data verification check which compares the DeltaManager sequence number (obtained from protocol in summary) to the runtime sequence number (obtained from runtime metadata in summary) finds a mismatch. 1. "close" (default) will close the container with an assertion. 2. "log" will log an error event to telemetry, but still continue to load. 3. "bypass" will skip the check entirely. This is not recommended.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/container-runtime/alpha.

For more information about our API support guarantees, see here.

Signature

readonly loadSequenceNumberVerification?: "close" | "log" | "bypass";

Type: "close" | "log" | "bypass"

maxBatchSizeInBytes

If specified, when in FlushMode.TurnBased, if the size of the ops between JS turns exceeds this value, an error will be thrown and the container will close.

If unspecified, the limit is 700Kb.

'Infinity' will disable any limit.

This config should be driven by the connection with the service and will be moved in the future.

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/container-runtime/alpha.

For more information about our API support guarantees, see here.

Signature

readonly maxBatchSizeInBytes?: number;

Type: number

summaryOptions

This API is provided as an alpha preview and may change without notice.

To use, import via @fluidframework/container-runtime/alpha.

For more information about our API support guarantees, see here.

Signature

readonly summaryOptions?: ISummaryRuntimeOptions;

Type: ISummaryRuntimeOptions