Статусы завершения gRPC

YDB предоставляет gRPC API, с помощью которого вы можете управлять ресурсами и данными БД. В следующей таблице описаны статусы завершения запросов gRPC:

Код

Статус

Возможность повтора

Стратегия задержек

Пересоздать сессию

0

OK

1

CANCELLED

условно повторяемый

короткая

да

2

UNKNOWN

неповторяемый

да

3

INVALID_ARGUMENT

неповторяемый

да

4

DEADLINE_EXCEEDED

условно повторяемый

короткая

да

5

NOT_FOUND

неповторяемый

да

6

ALREADY_EXISTS

неповторяемый

да

7

PERMISSION_DENIED

неповторяемый

да

8

RESOURCE_EXHAUSTED

повторяемый

большая

нет

9

FAILED_PRECONDITION

неповторяемый

да

10

ABORTED

повторяемый

моментально

да

11

OUT_OF_RANGE

неповторяемый

нет

12

UNIMPLEMENTED

неповторяемый

да

13

INTERNAL

условно повторяемый

короткая

да

14

UNAVAILABLE

условно повторяемый

короткая

да

15

DATA_LOSS

неповторяемый

да

16

UNAUTHENTICATED

неповторяемый

да

0: OK

Не является ошибкой. Возвращается при успешном выполнении.

1: CANCELLED

Условно повторяемый | Короткая задержка

Операция была отменена, как правило, вызывающей стороной.

Неизвестная ошибка. Например, эта ошибка может возникнуть, когда значение Status, полученное из другого адресного пространства, относится к неизвестному пространству ошибок. Также эта ошибка может быть преобразована из ошибок, вызванных API, которые не предоставляют достаточно информации об ошибке.

3: INVALID_ARGUMENT

Неповторяемый

Клиент указал недопустимый аргумент. В отличие от FAILED_PRECONDITION, INVALID_ARGUMENT указывает на аргументы, которые являются проблемными независимо от состояния системы (например, неправильное имя файла).

4: DEADLINE_EXCEEDED

Условно повторяемый | Короткая задержка

Запрос не был обработан за заданный клиентский таймаут или произошла иная сетевая проблема.

Проверьте корректность заданного таймаута, наличие сетевого доступа, правильность endpoint'а и других сетевых настроек. Также рекомендуется снизить интенсивность потока запросов и оптимизировать их.

Запрашиваемый схемный объект (например, таблица или папка) не найден.

6: ALREADY_EXISTS

Неповторяемый

Схемный объект, который пытается создать клиент (например, таблица или папка), уже существует.

7: PERMISSION_DENIED

Неповторяемый

У вызывающего нет разрешения на выполнение указанной операции.

8: RESOURCE_EXHAUSTED

Повторяемый | Большая задержка

Недостаточно свободных ресурсов для обслуживания запроса.

Снизьте интенсивность потока запросов, проверьте клиентскую балансировку.

9: FAILED_PRECONDITION

Неповторяемый

Запрос не может быть выполнен в текущем состоянии (например, вставка в таблицу с существующим ключом).

Исправьте состояние или запрос и повторите попытку.

10: ABORTED

Повторяемый | Моментально

Операция не выполнена (например, из-за инвалидации локов, TRANSACTION_LOCKS_INVALIDATE в подробных сообщениях об ошибке).

Повторите всю транзакцию.

11: OUT_OF_RANGE

Неповторяемый

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

12: UNIMPLEMENTED

Неповторяемый

Операция не реализована или не поддерживается (не активирована) в YDB.

13: INTERNAL

Условно повторяемый | Короткая задержка

Внутренние ошибки. Это означает, что некоторые инварианты, ожидаемые базовой системой, были нарушены. Данный код ошибки предназначен для серьёзных ошибок.

14: UNAVAILABLE

Условно повторяемый | Короткая задержка

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

Неустранимая потеря или повреждение данных.

16: UNAUTHENTICATED

Неповторяемый

Запрос не содержит действительных учётных данных для аутентификации.

Повторите запрос с актуальными данными для аутентификации.