Таблица задач системы
Таблица задач является одной из системных таблиц, добавленных в версии 1.16 RethinkDB. Она предоставляет информацию о задачах, выполняемых в кластере RethinkDB, включая запросы, сжатие диска и построение индексов, и позволяет убивать задачи запросов, удаляя их из таблицы.
Запрос к таблице задач
Примечание: как и другие системные таблицы, к таблице задач можно получить доступ только с помощью учетной записи пользователя admin.
Первичный ключ таблицы — поле id, а ключи всегда являются массивами. Первый элемент массива всегда является строкой, указывающей тип задачи (например, "query", "disk_compaction", и т.д.); второй элемент — UUID задачи. Тип задачи также указан в поле type.
// get a list all currently running jobs
r.db("rethinkdb").table("jobs").run(conn, callback);
// get a list of currently running queries
r.db("rethinkdb").table("jobs").filter({type: 'query'}).run(conn, callback);
// delete a specific query
r.db("rethinkdb").table("jobs").get(
["query", "72789a11-b2e1-4b45-a3ab-af996dcaf484"]
).delete().run(conn, callback);
Схема документа
Существует четыре типа задач. Схема документа согласована между ними, при этом данные, специфичные для задачи, отображаются в поле info.
{
"duration_sec": <number> or null,
"id": [ <type string>, <uuid> ],
"info": { <metadata },
"servers": [ "server1", "server2", ... ],
"type": <type string>
}
запрос
Эти записи представляют запросы, выпущенные конкретным клиентом.
info: {
"client_address": <IP address string>,
"client_port": <number>,
"query": <query string>,
"user": <string>
}
сжатие диска
Это непрерывная задача на каждом сервере, сжимающая хранилище RethinkDB в фоновом режиме. Поле duration_sec всегда будет null, и дополнительных метаданных нет.
info: { }
создание индекса
Эти задачи создают вторичные индексы в фоновом режиме. Поле progress — число от 0 до 1, указывающее, насколько продвинута задача создания индекса.
info: {
"db": <database name>,
"index": <index name>,
"progress": <number>,
"table": <table name>
}
дополнение
Задачи дополнения обновляют фрагменты, которые устарели, перенос данных между серверами. Как и выше, поле progress является числом от 0 до 1, указывающим, насколько продвинута задача дополнения.
info: {
"db": <database name>,
"destination server": <server being copied to>,
"source_server": <server being copied from>,
"table": <table name>,
"progress": <number>
}
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/docs/system-jobs/