тензорный поток :: сервировка :: LoaderHarness

#include <loader_harness.h>

LoaderHarness виджета на диспетчер использования в трюм на и поговорить с погрузчиком , пока он владеет.

Резюме

Он отслеживает общее состояние Servable таким образом, что менеджер может определить , какие переходы между состояниями , чтобы в какое время.

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

Этот класс является потокобезопасным.

Конструкторы и деструкторы

LoaderHarness (const ServableId & id, std::unique_ptr< Loader > loader, const Options & options)
LoaderHarness (const ServableId & id, std::unique_ptr< Loader > loader, std::unique_ptr< T > additional_state, const Options & options)
Конструктор для создания обвязки с дополнительным состоянием, которое нужно менеджеру.
~LoaderHarness ()
Допустимо уничтожение, если текущее состояние является одним из kNew, kDisabled или kError.

Общедоступные типы

State {
kNew ,
kLoadRequested ,
kLoadApproved ,
kLoading ,
kReady ,
kUnloadRequested ,
kQuiescing ,
kQuiesced ,
kUnloading ,
kDisabled ,
kError
}
перечисление
Состояние базового servable, с точки зрения LoaderHarness и для целей коммуникации между ним и менеджером .

Публичные функции

DoneQuiescing ()
Status
Переводит состояние в kQuiesced, что означает, что во внешнем интерфейсе больше нет активных дескрипторов этого обслуживаемого объекта.
Error (const Status & status)
void
Переводит состояние в kError и вызывает 'options_.error_callback'.
Load ()
Status
Переходы к kLoading, делегирует в Servable :: Load (), затем переходит либо к kReady если Load () завершается успешно, или kError (и options_ вызывающего.
LoadApproved ()
Status
Переходы на kLoadApproved.
LoadRequested ()
Status
Переводит состояние жгута в kLoadRequested, если его текущее состояние равно kNew.
StartQuiescing ()
Status
Переводит состояние в kQuiescing, что означает, что мы хотели бы больше не выдавать дескрипторы этому servable.
Unload ()
Status
Переходы к kUnloading, делегаты Servable :: Unload (), затем переходит в kDisabled когда Unload () делается.
UnloadRequested ()
Status
Переводит состояние жгута в kUnloadRequested, если его текущее состояние равно kReady.
additional_state ()
T *
Получает дополнительное состояние.
cancel_load_retry ()
bool
id () const
ServableId
Возвращает идентификатор базового Servable.
loader () const
Возвращает указатель на упакованный загрузчик.
loader_state_snapshot ()
ServableStateSnapshot< T >
Возвращает текущий моментальный снимок общего состояния базового Servable.
loader_state_snapshot () const
ServableStateSnapshot< std::nullptr_t >
set_cancel_load_retry (bool value)
void
Отменяет повторную попытку загрузки servable.
state ()
Возвращает текущее состояние базового Servable.
status ()
Status
Что-то пошло не так с этим servable.

Публичные статические функции

StateDebugString ( State state)
string

Структуры

tensorflow :: служит :: LoaderHarness :: Варианты

Параметры для настройки LoaderHarness .

Общедоступные типы

Состояние

 State

Состояние базового servable, с точки зрения LoaderHarness и для целей коммуникации между ним и менеджером .

Не эквивалентно семантическим обслуживаемым состояниям в servable_state.h.

Допустимые переходы: kNew>kLoading>kReady>kQuiescing>kQuiesced>kUnloading>kDisabled, а также: any_state>kError.

Характеристики
kDisabled

'погрузчик _-> Выгрузить () ' закончил.

kError

Произошла ошибка, либо во время «загрузчика _-> Load () » или снаружи жгута (и была сообщена к жгуту через вызов Error () ).

kLoadApproved

Подача была одобрена для загрузки, например

на это были выделены ресурсы.

kLoadRequested

Менеджеру было предложено загрузить этот сервер.

kLoading

'погрузчик _-> Load () ' была названа.

kNew

Начальное состояние.

kQuiesced

Объект был недоступен для обслуживания.

kQuiescing

Подача будет сделана недоступной для обслуживания.

kReady

'погрузчик _-> Load () ' удалось.

kUnloadRequested

Менеджеру было предложено выгрузить этот сервер.

kUnloading

«погрузчик _-> Выгрузить () » было названо.

Публичные функции

Готово

Status DoneQuiescing()

Переводит состояние в kQuiesced, что означает, что во внешнем интерфейсе больше нет активных дескрипторов этого обслуживаемого объекта.

На этом этапе мы можем выгрузить этот объект.

ТРЕБУЕТСЯ: Состояние приостанавливается при вызове. В противном случае DCHECK завершается ошибкой, переходит в состояние kError и вызывает 'options_.error_callback'.

Ошибка

void Error(
  const Status & status
)

Переводит состояние в kError и вызывает 'options_.error_callback'.

Нагрузка

Status Load()

Переходы к kLoading, делегирует в Servable :: Load (), затем переходит либо к kReady если Load () завершается успешно, или kError (и options_ вызывающего.

error_callback ') , если нагрузка () терпит неудачу. Этот звонок может занять много времени.

Мы повторяем Servable::Load() в соответствии с параметрами, установленными при построении этого класса. Мы прекращаем повторные попытки и сдаемся, если 1. мы достигли max_num_load_retries или 2. если для cancel_load() установлено значение true.

ТРЕБУЕТСЯ: состояние kLoadApproved при вызове. В противном случае DCHECK завершается ошибкой, переходит в состояние kError и вызывает 'options_.error_callback'.

LoadApproved

Status LoadApproved()

Переходы на kLoadApproved.

ТРЕБУЕТСЯ: Состояние kLoadRequested при вызове. В противном случае DCHECK завершается ошибкой, переходит в состояние kError и вызывает 'options_.error_callback'.

LoadRequested

Status LoadRequested()

Переводит состояние жгута в kLoadRequested, если его текущее состояние равно kNew.

Тест-и-изменение делается транзакционно, поэтому этот метод может быть использован для того , чтобы более одной нагрузки () запрос может продолжиться.

LoaderHarness

 LoaderHarness(
  const ServableId & id,
  std::unique_ptr< Loader > loader,
  const Options & options
)

LoaderHarness

 LoaderHarness(
  const ServableId & id,
  std::unique_ptr< Loader > loader,
  std::unique_ptr< T > additional_state,
  const Options & options
)

Конструктор для создания обвязки с дополнительным состоянием, которое нужно менеджеру.

Начать приостановку

Status StartQuiescing()

Переводит состояние в kQuiescing, что означает, что мы хотели бы больше не выдавать дескрипторы этому servable.

ТРЕБУЕТСЯ: Состояние kUnloadRequested при вызове. В противном случае DCHECK завершается ошибкой, переходит в состояние kError и вызывает 'options_.error_callback'.

Разгрузить

Status Unload()

Переходы к kUnloading, делегаты Servable :: Unload (), затем переходит в kDisabled когда Unload () делается.

ТРЕБУЕТСЯ: Состояние kQuiesced при вызове. В противном случае DCHECK завершается ошибкой, переходит в состояние kError и вызывает 'options_.error_callback'.

UnloadRequested

Status UnloadRequested()

Переводит состояние жгута в kUnloadRequested, если его текущее состояние равно kReady.

Тест-и-изменение делается транзакционно, поэтому этот метод может быть использован для того , чтобы более одной нагрузки () запрос может продолжиться.

дополнительное_состояние

T * additional_state()

Получает дополнительное состояние.

Возвращает nullptr, если тип не соответствует или не был установлен.

cancel_load_retry

bool cancel_load_retry()

я бы

ServableId id() const 

Возвращает идентификатор базового Servable.

погрузчик

Loader * loader() const 

Возвращает указатель на упакованный загрузчик.

Право собственности остается за этим классом.

loader_state_snapshot

ServableStateSnapshot< T > loader_state_snapshot()

Возвращает текущий моментальный снимок общего состояния базового Servable.

loader_state_snapshot

ServableStateSnapshot< std::nullptr_t > loader_state_snapshot() const 

set_cancel_load_retry

void set_cancel_load_retry(
  bool value
)

Отменяет повторную попытку загрузки servable.

Это лучше всего усилий, и не выгрузить Load () , которая уже происходит, только последующие вызовы.

Если повторные попытки отменены, servable переходит в состояние в зависимости от последней нагрузки () называется на нем. Если последний Load () был успешным, он будет в состоянии kReady, еще в kError.

государство

State state()

Возвращает текущее состояние базового Servable.

статус

Status status()

Что-то пошло не так с этим servable.

Если состояние равно kError, это будет ненормально. Если не в порядке, то ошибка может быть что - то , что произошло в Source или SourceAdapter , в Loader , в менеджере или в другом месте. Здесь сообщается обо всех ошибках, относящихся к обслуживаемому объекту, независимо от их происхождения.

~ LoaderHarness

 ~LoaderHarness()

Допустимо уничтожение, если текущее состояние является одним из kNew, kDisabled или kError.

Проверка не проходит при нарушении.

Публичные статические функции

StateDebugString

string StateDebugString(
  State state
)