IContainerRuntimeOptions Interface
Options for container runtime.
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 |
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.
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.
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.
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.
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.
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.
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
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.
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.
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
To use, import via @fluidframework/container-runtime/alpha
.
For more information about our API support guarantees, see here.
Signature
readonly summaryOptions?: ISummaryRuntimeOptions;
Type: ISummaryRuntimeOptions