Throttling configuration

This page describes the global configuration items for Liberator’s client-update throttling. Throttling reduces the performance impact of high update rates by merging updates together.

Throttling is enabled by default for all records and, from Liberator version 7.1.24, for all generic objects.

To disable throttling globally or for specific objects and namespaces, see Disabling throttling.

Throttling merges updates together. For information on sending updates to clients in batches, see Bursting.

object-throttle-default-level

object-throttle-default-level specifies the throttle level that all users start at when they log in to Liberator. This is a zero-based index to the array of throttle times specified in the object-throttle-times array, or in the throttle-times array of add-object.

Syntax: object-throttle-default-level <parameter>

Type: integer

Default value: 0 (the first value specified in the object-throttle-times array, or in the throttle-times array of add-object)

object-throttle-off

Throttling is enabled by default for all records and, from Liberator version 7.1.24, for all generic objects. To disable throttling for all records and generic objects, set object-throttle-off to TRUE.

To disable throttling for generic objects only, see object-disable-generic-throttling.

Before disabling throttling globally, consider if any objects would benefit from some level of update throttling. For instructions on disabling throttling for specific objects and namespaces, see Disabling throttling.

Syntax: object-throttle-off <boolean>

Type: boolean

Default value: FALSE (throttling is enabled)

object-throttle-time

object-throttle-times

object-throttle-times specifies a space-separated array of throttle times (seconds) that apply to all records and generic objects.

For most scenarios, specifying one time is sufficient (the default is 1.0). When multiple times are specified, clients can select the most appropriate throttle time for their network conditions and use case. This is called 'levelling', and the initial level for clients is set by the global item object-throttle-default-level.

Updates from generic objects are throttled from Liberator 7.1.24. Generic objects do not support 'levelling', and throttled updates from generic objects only use the first value in the object-throttle-times array.

This configuration item is overridden by add-object::throttle-times, add-data-service::throttle-time (Liberator 8), and add-provided-data-service::throttle-time (DataSource 8).

Syntax: object-throttle-time time …​ [stopped|paused]

Type: array of floats and strings

Default value: 1.0

Values accepted: floating-point numbers, 0, 'stopped', and 'paused'

The array must be in ascending order of throttle times, and if you use stopped or paused, it must be the last entry in the array. Including stopped or paused allows clients to pause updates from objects.

object-disable-generic-throttling

Throttling is enabled by default for all records and, from Liberator version 7.1.24, for all generic objects.

To disable throttling for generic objects in all namespaces, set object-disable-generic-throttling to TRUE.

To disable throttling for generic objects and records in all namespaces, see object-throttle-off.

Before disabling generic-object throttling globally, consider if any objects would benefit from some level of update throttling. For instructions on disabling throttling for specific objects and namespaces, see Disabling throttling.

Syntax: object-disable-generic-throttling <boolean>

Type: boolean

Default value: FALSE (throttling is enabled)


See also: