---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ytsaurus.tech/docs/en/api/query-parameters.md
  - https://ytsaurus.tech/docs/ru/api/query-parameters.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ytsaurus.tech/docs/ru/llms.txt

<!-- source: ru/_includes/api/query-parameters.md -->
# Параметры запросов

В данном разделе собрана информация о дополнительных параметрах запросов. Подробнее о командах читайте в разделе [Команды](https://ytsaurus.tech/docs/ru/api/commands.md).

## Предварительные условия { #conditions }

Ниже представлен список команд, для которых можно указать условия успешного выполнения:

- `set`
- `remove`
- `create`
- `lock`
- `copy`
- `move`
- `link`

Условия бывают двух видов:

- `prerequisite_revisions` — набор указаний вида `path`, `transaction_id`, `revision`. Запрос будет выполнен, только если все указанные пути с учетом заданных транзакций существуют, а ревизии соответствуют указанным;
- `prerequisite_transactions` — список [транзакций](https://ytsaurus.tech/docs/ru/user-guide/storage/transactions.md), которые обязаны существовать на момент выполнения запроса.

Пример:

```python
revision = client.get("//tmp/my_table/@revision")
#... some calculations ...
revision_parameter = yt.create_revision_parameter(path="//tmp/my_table", revision=revision)
revision_client = yt.create_client_with_command_params(prerequisite_revisions=[revision_parameter])
revision_client.move("//tmp/transformed_table", "//tmp/my_table")
```

## Источник данных для чтения { #data-source }

В [немутирующих](https://ytsaurus.tech/docs/ru/api/commands.md#concepts) запросах к [Кипарису](https://ytsaurus.tech/docs/ru/user-guide/storage/cypress.md) можно указать источник данных для чтения при помощи параметра `read_from`.

Популярным значением параметра `read_from` является `cache`.  В таком случае чтение ответа будет происходить из кеша (который обычно расположен на выделенных машинах кластера), что позволяет снизить нагрузку на мастер-сервер. Это важно при выполнении большого количества тяжелых запросов к Кипарису, например когда необходимо обойти большое поддерево.

Пример:

```python
for obj in client.search("//tmp/my_table", read_from="cache"):
    if "abc" in str(obj):
        ...
```

## Другие настройки кеширования

При использовании описанного выше параметра `read_from` со значением `cache` есть возможность управлять некоторыми аспектами кеширования.

  {% note warning "Внимание" %}

    Без веской необходимости и рекомендации администраторов не следует использовать эти параметры. Неправильно подобранные значения могут оказать негативное влияние как на пользователя, инициирующего запросы, так и на других пользователей и даже привести к деградации всего сервиса.

  {% endnote %}

- `disable_per_user_cache` — исключить имя пользователя из ключа кеширования;
- `expire_after_successful_update_time` — время жизни записи в кеше после того, как она была создана (или обновлена) в результате успешного исполнения запроса;
- `expire_after_failed_update_time` — время жизни записи в кеше после того, как она была создана (или обновлена) в результате неуспешного исполнения запроса (например, после попытки чтения несуществующего узла);
- `cache_sticky_group_size` — количество машин, среди которых случайным образом будет выбрана та, на которую будет отправлен запрос; параметр позволяет балансировать нагрузку между несколькими кешами;
- `success_staleness_bound` — если не ноль, кешу разрешается возвращать успешные ответы, устаревшие не более чем на указанное время; параметр позволяет получать ответы из кеша, не блокируясь на его обновлении.
<!-- endsource: ru/_includes/api/query-parameters.md -->
