Класс snapshot_file_committer_t

#include <std_file_committer.hpp>

Граф наследования:snapshot_file_committer_t:

std_file_committer_t committer_t Полный список членов класса

Подробное описание

Реализация committer_t, которая предназначена для формирования snapshot-ов.

Начиная с:
v.1.4.0
В методе detect_nonactual_traces() вычисляет множество trace-файлов, которые должны быть использованы для построения очередного snapshot-а и формирует имя результирующего snapshot-а. В traces остаются только те номера, которые входят в предыдущий snapshot (если таковой есть).

Вся остальная функциональность наследуется из std_file_committer_t.


Открытые члены

 snapshot_file_committer_t (const std::string &physic_name)
 Инициализирующий конструктор.
trace_file_number_set_t outdated_traces () const
 Получить множество trace-файлов, которые вошли в snapshot.
Реализация унаследованных методов.
virtual void detect_nonactual_traces (trace_file_number_set_t &traces)

Закрытые типы

typedef std_file_committer_t base_type_t
 Псевдоним для базового типа.

Закрытые данные

trace_file_number_set_t m_outdated_traces
 Множество trace-файлов, которые вошли в snapshot.


Конструктор(ы)

snapshot_file_committer_t ( const std::string &  physic_name  ) 

Инициализирующий конструктор.

Аргументы:
physic_name  Физическое имя восстанавливаемой БД.


Методы

void detect_nonactual_traces ( trace_file_number_set_t traces  )  [virtual]

Вызывается объектом trace_stream_t перед методом initialize() для того, чтобы определить точное множество trace-файлов для обратного воспроизведения. Если для БД поддерживались snapshot-ы, то часть trace-файлов можно будет проигнорировать т.к. их содержимое уже есть в snapshot-е. Но trace_stream_t не знает про существование snapshot-ов и о том, нужны ли они данному committer-у. Поэтому выбор конкретного подмножества trace-файлов для воспроизведения перекладывается на committer. Для этого trace_stream_t обращается к методу detect_nonactual_traces() и передает все множество найденых trace-файлов. Committer должен вычеркнуть из этого множества все trace-файлы, которые являются актуальными. В результате должно быть получено множество не актуальных trace-файлов, который безопасно могут быть проигнорированны. Если же все trace-файлы являются актуальными, то в итоге должно получиться пустое множество.

trace_stream_t передает в traces не все множество trace-файлов, а только те trace-файлы, актуальность который trace_stream_t не может проверить самостоятельно. Так, trace_stream_t точно знает номера trace-файлов, в которых содержится самая последняя транзакция (таких файлов может быть несколько). Поэтому на вход detect_nonactual_traces() может быть подано пустое множество.

Переопределяет метод предка std_file_committer_t.

trace_file_number_set_t outdated_traces (  )  const

Получить множество trace-файлов, которые вошли в snapshot.

Эти файлы уже не актуальны и могут быть, при необходимости, уничтожены.

Возвращает корректное значение только, если отработал метод reduce_traces_set().

Внимание:
Значение этого множества вычисляется в методе reduce_traces_set() и не как не зависит от успешности формирования snapshot-а. Поэтому доверять данному значению можно только, если формирование snapshot-а прошло успешно.


Объявления и описания членов классов находятся в файлах:
Документация по ObjESSty. Последние изменения: Fri Oct 13 18:35:39 2006. Создано системой  doxygen 1.4.7
Hosted by uCoz