Классы | |
class | tag_hard_config_t |
Класс тега {hard_config} конфигурации БД. Подробнее... | |
class | tag_config_t |
Класс тега {storage-config} конфигурации БД. Подробнее... | |
class | cache_t |
Интерфейс кэша основного файла хранилища. Подробнее... | |
class | header_processor_t |
Интерфейс объекта, отвечающего за работу с заголовками различных областей основного файла хранилища. Подробнее... | |
class | common_header_t |
Тип общего заголовка всего файла. Подробнее... | |
class | area_header_t |
Тип общего заголовка всего файла. Подробнее... | |
class | segment_header_t |
Заголовок логического сегмента. Подробнее... | |
class | mem_dirty_page_storage_t |
Хранилище грязных страниц в оперативной памяти. Подробнее... | |
class | page_accessor_t |
Интерфейс объекта, отвечающего за доступ к страницам хранилища. Подробнее... | |
class | segment_header_item_t |
Тип одного элемента заголовка логического сегмента. Подробнее... | |
class | std_cache_t |
Реализация интерфейса кэша основного файла хранилища. Подробнее... | |
class | std_chain_storage_t |
Штатная реализация интерфейса chain_storage_t. Подробнее... | |
class | stream_desc_t |
Описатель потока хранилища. Подробнее... | |
class | stream_item_t |
Один элемент потока сущностей. Подробнее... | |
class | std_entity_stream_t |
Штатная реализация интерфейса entity_stream_t. Подробнее... | |
class | std_stream_storage_t |
Штатная реализация интерфейса stream_storage_t. Подробнее... | |
class | stream_storage_dir_item_t |
Элемент оглавления хранилища потоков. Подробнее... | |
class | stream_storage_dir_t |
Оглавление хранилища потоков. Подробнее... | |
struct | page_use_timer_t |
Счетчик использования страницы хранилища. Подробнее... | |
class | std_header_processor_t |
Штатная реализация интерфейса header_processor_t. Подробнее... | |
class | std_page_accessor_t |
Штатная реализация интерфейса page_accessor_t. Подробнее... | |
class | page_to_main_file_actor_t |
Пространства имен | |
namespace | std_cache_aux |
Вспомогательное пространство имен. | |
Функции | |
std::auto_ptr< cache_t > | create_std_cache () |
std::auto_ptr< header_processor_t > | create_std_header_processor (const config_t &config, page_accessor_t &accessor, bool is_read_only) |
Создать штатную реализацию интерфейса header_processor_t. | |
oess_1::io::obinstream_t & | operator<< (oess_1::io::obinstream_t &to, const common_header_t &what) |
Сохранить в указанный поток. | |
oess_1::io::ibinstream_t & | operator>> (oess_1::io::ibinstream_t &from, common_header_t &what) |
Прочитать из указанного потока. | |
std::auto_ptr< page_accessor_t > | create_std_page_accessor (const config_t &config, oess_1::file::file_t &main_file, oess_1::uint_t &main_file_logic_length, cache_t &cache, dirty_page_storage_t &dirty_pages, bool is_read_only) |
Создать штатную реализацию интерфейса page_accessor_t. | |
oess_1::uint_t * | operator<< (oess_1::uint_t *to, const segment_header_item_t &what) |
Сохранить в указанный поток. | |
const oess_1::uint_t * | operator>> (const oess_1::uint_t *from, segment_header_item_t &what) |
Прочитать из указанного потока. | |
static std::vector< oess_1::uint_t > | detect_pages_to_throw_out (const std::map< oess_1::uint_t, oess_1::uint_t > &statistics, oess_1::uint_t pages_to_throw) |
static bool | is_must_be_throw_out (const std::vector< oess_1::uint_t > &pages_to_throw, oess_1::uint_t page) |
oess_1::err_code_t | make_outer_err_code (const std::string &physic_name, const std::string &method_name, const oess_1::err_code_t &nested) |
chain_id_t | first_chain_id (const config_t &config) |
std::auto_ptr< cache_t > create_std_cache | ( | ) |
std::auto_ptr< header_processor_t > create_std_header_processor | ( | const config_t & | config, | |
page_accessor_t & | accessor, | |||
bool | is_read_only | |||
) |
Создать штатную реализацию интерфейса header_processor_t.
config | Конфигурация для хранилища. |
accessor | Объект для доступа к страницам хранилища. |
is_read_only | true, если объект должен создаваться только для чтения. |
std::auto_ptr< page_accessor_t > create_std_page_accessor | ( | const config_t & | config, | |
oess_1::file::file_t & | main_file, | |||
oess_1::uint_t & | main_file_logic_length, | |||
cache_t & | cache, | |||
dirty_page_storage_t & | dirty_pages, | |||
bool | is_read_only | |||
) |
Создать штатную реализацию интерфейса page_accessor_t.
config | Конфигурация для хранилища. |
main_file | Основной файл БД. |
main_file_logic_length | Логическая длина основного файла. Будет изменяться по мере создания новых страниц. |
cache | Кэш хранилища. |
dirty_pages | Хранилище грязных страниц. |
is_read_only | true, если допускается только чтение страниц хранилища. |
static std::vector< oess_1::uint_t > oess_1::db::storage::impl::detect_pages_to_throw_out | ( | const std::map< oess_1::uint_t, oess_1::uint_t > & | statistics, | |
oess_1::uint_t | pages_to_throw | |||
) | [static] |
Вычислить номера страниц, которые подлежат изъятию.
Для вычисления просто формируем вектор структур
page_use_timer_t и сортируем его. Затем берем
pages_to_throw первых элементов и переносим их
в результирующий вектор. Затем результирующий
вектор сортируется.
statistics | Статистика использования страниц. |
pages_to_throw | Количество страниц для изъятия. |
static bool oess_1::db::storage::impl::is_must_be_throw_out | ( | const std::vector< oess_1::uint_t > & | pages_to_throw, | |
oess_1::uint_t | page | |||
) | [static] |
pages_to_throw | Результат работы функции detect_pages_to_throw_out(). |
page | Страница, которую нужно вычеркнуть. |
chain_id_t oess_1::db::storage::impl::first_chain_id | ( | const config_t & | config | ) |