# Throttling configuration

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

Throttling is enabled by default for all [records](../datasource/datasource-records.md) and, from Liberator version 7.1.24, for all [generic objects](../datasource/datasource-generic-data.md).

To disable throttling globally or for specific objects and namespaces, see [Disabling throttling](liberator-throttling.md#disabling-throttling).

**📌 NOTE**\
Throttling merges updates together. For information on sending updates to clients in _batches_, see [Bursting](liberator-bursting.md).

## 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](#object-throttle-times) array, or in the [throttle-times](liberator-object-configuration-part-1.md#throttle-times) array of [add-object](liberator-object-configuration-part-1.md#add-object).

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

**Type:** integer

**Default value:** `0` (the first value specified in the [object-throttle-times](#object-throttle-times) array, or in the [throttle-times](liberator-object-configuration-part-1.md#throttle-times) array of [add-object](liberator-object-configuration-part-1.md#add-object))

## object-throttle-off

Throttling is enabled by default for all [records](../datasource/datasource-records.md) and, from Liberator version 7.1.24, for all [generic objects](../datasource/datasource-generic-data.md). 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](#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](liberator-throttling.md#disabling-throttling).

**Syntax:** `object-throttle-off <boolean>`

**Type:** boolean

**Default value:** `FALSE` (throttling is enabled)

## object-throttle-time

Alias for [object-throttle-times](#object-throttle-times).

## object-throttle-times

`object-throttle-times` specifies a space-separated array of throttle times (seconds) that apply to all [records](../datasource/datasource-records.md) and [generic objects](../datasource/datasource-generic-data.md).

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](#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 the [throttle-times](liberator-object-configuration-part-1.md#throttle-times) option of [add-object](liberator-object-configuration-part-1.md#add-object).

**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](../datasource/datasource-records.md) and, from Liberator version 7.1.24, for all [generic objects](../datasource/datasource-generic-data.md).

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](#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](liberator-throttling.md#disabling-throttling).

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

**Type:** boolean

**Default value:** `FALSE` (throttling is enabled)

---

**See also:**

* [About Liberator’s throttling feature](liberator-throttling.md)
* Reference: [throttle-times](liberator-object-configuration-part-1.md#throttle-times) option of [add-object](liberator-object-configuration-part-1.md#add-object)
* [Bursting configuration](liberator-bursting-configuration.md)
* [Tuning configuration](liberator-tuning-configuration.md)
