Параметры запросов
В данном разделе собрана информация о дополнительных параметрах запросов. Подробнее о командах читайте в разделе Команды.
Предварительные условия
Ниже представлен список команд, для которых можно указать условия успешного выполнения:
set
remove
create
lock
copy
move
link
Условия бывают двух видов:
prerequisite_revisions
— набор указаний видаpath
,transaction_id
,revision
. Запрос будет выполнен, только если все указанные пути с учетом заданных транзакций существуют, а ревизии соответствуют указанным;prerequisite_transactions
— список транзакций, которые обязаны существовать на момент выполнения запроса.
Пример:
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")
Источник данных для чтения
В немутирующих запросах к Кипарису можно указать источник данных для чтения при помощи параметра read_from
.
Популярным значением параметра read_from
является cache
. В таком случае чтение ответа будет происходить из кеша (который обычно расположен на выделенных машинах кластера), что позволяет снизить нагрузку на мастер-сервер. Это важно при выполнении большого количества тяжелых запросов к Кипарису, например когда необходимо обойти большое поддерево.
Пример:
for obj in client.search("//tmp/my_table", read_from="cache"):
if "abc" in str(obj):
...
Другие настройки кеширования
При использовании описанного выше параметра read_from
со значением cache
есть возможность управлять некоторыми аспектами кеширования.
Внимание
Без веской необходимости и рекомендации администраторов не следует использовать эти параметры. Неправильно подобранные значения могут оказать негативное влияние как на пользователя, инициирующего запросы, так и на других пользователей и даже привести к деградации всего сервиса.
disable_per_user_cache
— исключить имя пользователя из ключа кеширования;expire_after_successful_update_time
— время жизни записи в кеше после того, как она была создана (или обновлена) в результате успешного исполнения запроса;expire_after_failed_update_time
— время жизни записи в кеше после того, как она была создана (или обновлена) в результате неуспешного исполнения запроса (например, после попытки чтения несуществующего узла);cache_sticky_group_size
— количество машин, среди которых случайным образом будет выбрана та, на которую будет отправлен запрос; параметр позволяет балансировать нагрузку между несколькими кешами;success_staleness_bound
— если не ноль, кешу разрешается возвращать успешные ответы, устаревшие не более чем на указанное время; параметр позволяет получать ответы из кеша, не блокируясь на его обновлении.