From 79a638bcf930a9cca39a4610a5ee99f0a3cd58fd Mon Sep 17 00:00:00 2001 From: squahtx Date: Tue, 7 Dec 2021 16:49:28 +0000 Subject: deploy: 158d73ebdd61eef33831ae5f6990acf07244fc55 --- .../background_update_controller_callbacks.html | 302 --------------------- 1 file changed, 302 deletions(-) delete mode 100644 latest/modules/background_update_controller_callbacks.html (limited to 'latest/modules/background_update_controller_callbacks.html') diff --git a/latest/modules/background_update_controller_callbacks.html b/latest/modules/background_update_controller_callbacks.html deleted file mode 100644 index 8b8b36d119..0000000000 --- a/latest/modules/background_update_controller_callbacks.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - - - Background update controller callbacks - Synapse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-
- -
- -
- -

Background update controller callbacks

-

Background update controller callbacks allow module developers to control (e.g. rate-limit) -how database background updates are run. A database background update is an operation -Synapse runs on its database in the background after it starts. It's usually used to run -database operations that would take too long if they were run at the same time as schema -updates (which are run on startup) and delay Synapse's startup too much: populating a -table with a big amount of data, adding an index on a big table, deleting superfluous data, -etc.

-

Background update controller callbacks can be registered using the module API's -register_background_update_controller_callbacks method. Only the first module (in order -of appearance in Synapse's configuration file) calling this method can register background -update controller callbacks, subsequent calls are ignored.

-

The available background update controller callbacks are:

-

on_update

-

First introduced in Synapse v1.49.0

-
def on_update(update_name: str, database_name: str, one_shot: bool) -> AsyncContextManager[int]
-
-

Called when about to do an iteration of a background update. The module is given the name -of the update, the name of the database, and a flag to indicate whether the background -update will happen in one go and may take a long time (e.g. creating indices). If this last -argument is set to False, the update will be run in batches.

-

The module must return an async context manager. It will be entered before Synapse runs a -background update; this should return the desired duration of the iteration, in -milliseconds.

-

The context manager will be exited when the iteration completes. Note that the duration -returned by the context manager is a target, and an iteration may take substantially longer -or shorter. If the one_shot flag is set to True, the duration returned is ignored.

-

Note: Unlike most module callbacks in Synapse, this one is synchronous. This is -because asynchronous operations are expected to be run by the async context manager.

-

This callback is required when registering any other background update controller callback.

-

default_batch_size

-

First introduced in Synapse v1.49.0

-
async def default_batch_size(update_name: str, database_name: str) -> int
-
-

Called before the first iteration of a background update, with the name of the update and -of the database. The module must return the number of elements to process in this first -iteration.

-

If this callback is not defined, Synapse will use a default value of 100.

-

min_batch_size

-

First introduced in Synapse v1.49.0

-
async def min_batch_size(update_name: str, database_name: str) -> int
-
-

Called before running a new batch for a background update, with the name of the update and -of the database. The module must return an integer representing the minimum number of -elements to process in this iteration. This number must be at least 1, and is used to -ensure that progress is always made.

-

If this callback is not defined, Synapse will use a default value of 100.

- -
- - -
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file -- cgit 1.5.1