Classes | |
struct | MDBX_chk_line_t |
Виртуальная строка отчета, формируемого при проверке целостности базы данных. More... | |
struct | MDBX_chk_issue_t |
Проблема обнаруженная при проверке целостности базы данных. More... | |
struct | MDBX_chk_scope_t |
Иерархический контекст при проверке целостности базы данных. More... | |
struct | MDBX_chk_histogram |
Гистограмма с некоторой статистической информацией, собираемой при проверке целостности БД. More... | |
struct | MDBX_chk_table_t |
Информация о некоторой таблицей ключ-значение, при проверке целостности базы данных. More... | |
struct | MDBX_chk_context_t |
Контекст проверки целостности базы данных. More... | |
struct | MDBX_chk_callbacks_t |
Набор функций обратного вызова используемых при проверке целостности базы данных. More... | |
union | MDBX_chk_scope_t.usr_z |
union | MDBX_chk_scope_t.usr_v |
union | MDBX_chk_scope_t.usr_o |
struct | MDBX_chk_histogram.ranges |
struct | MDBX_chk_table_t.pages |
struct | MDBX_chk_table_t.histogram |
struct | MDBX_chk_context_t.result |
Macros | |
#define | mdbx_env_open_for_recoveryT(env, pathname, target_mets, writeable) mdbx_env_open_for_recoveryW(env, pathname, target_mets, writeable) |
#define | mdbx_preopen_snapinfoT(pathname, info, bytes) mdbx_preopen_snapinfoW(pathname, info, bytes) |
Typedefs | |
typedef struct MDBX_chk_user_table_cookie | MDBX_chk_user_table_cookie_t |
Пользовательский тип для привязки дополнительных данных, связанных с некоторой таблицей ключ-значение, при проверке целостности базы данных. | |
Functions | |
LIBMDBX_API int | mdbx_txn_lock (MDBX_env *env, bool dont_wait) |
Acquires write-transaction lock. Provided for custom and/or complex locking scenarios. | |
LIBMDBX_API int | mdbx_txn_unlock (MDBX_env *env) |
Releases write-transaction lock. Provided for custom and/or complex locking scenarios. | |
LIBMDBX_API int | mdbx_env_open_for_recovery (MDBX_env *env, const char *pathname, unsigned target_meta, bool writeable) |
Open an environment instance using specific meta-page for checking and recovery. | |
LIBMDBX_API int | mdbx_env_turn_for_recovery (MDBX_env *env, unsigned target_meta) |
Turn database to the specified meta-page. | |
LIBMDBX_API int | mdbx_env_chk (MDBX_env *env, const MDBX_chk_callbacks_t *cb, MDBX_chk_context_t *ctx, const MDBX_chk_flags_t flags, MDBX_chk_severity_t verbosity, unsigned timeout_seconds_16dot16) |
Проверяет целостность базы данных. | |
LIBMDBX_API int | mdbx_env_chk_encount_problem (MDBX_chk_context_t *ctx) |
Вспомогательная функция для подсчета проблем детектируемых приложением, в том числе, поступающим к приложению через логирование. | |
Basically this is internal API for mdbx_chk
tool, etc. You should avoid to use it, except some extremal special cases.
struct MDBX_chk_line_t |
Виртуальная строка отчета, формируемого при проверке целостности базы данных.
Class Members | ||
---|---|---|
char * | begin | |
struct MDBX_chk_context * | ctx | |
uint8_t | empty | |
char * | end | |
char * | out | |
uint8_t | scope_depth | |
uint8_t | severity |
struct MDBX_chk_issue_t |
Проблема обнаруженная при проверке целостности базы данных.
Class Members | ||
---|---|---|
const char * | caption | |
size_t | count | |
struct MDBX_chk_issue * | next |
struct MDBX_chk_scope_t |
Иерархический контекст при проверке целостности базы данных.
Class Members | ||
---|---|---|
struct MDBX_chk_internal * | internal | |
MDBX_chk_issue_t * | issues | |
const void * | object | |
MDBX_chk_stage_t | stage | |
size_t | subtotal_issues | |
union MDBX_chk_scope_t.usr_o | usr_o | |
union MDBX_chk_scope_t.usr_v | usr_v | |
union MDBX_chk_scope_t.usr_z | usr_z | |
MDBX_chk_severity_t | verbosity |
struct MDBX_chk_histogram |
Гистограмма с некоторой статистической информацией, собираемой при проверке целостности БД.
Class Members | ||
---|---|---|
size_t | amount | |
size_t | count | |
size_t | ones | |
size_t | pad | |
struct MDBX_chk_histogram.ranges | ranges[9] |
struct MDBX_chk_table_t |
Информация о некоторой таблицей ключ-значение, при проверке целостности базы данных.
Class Members | ||
---|---|---|
MDBX_chk_user_table_cookie_t * | cookie | |
MDBX_db_flags_t | flags | |
struct MDBX_chk_table_t.histogram | histogram | |
int | id | |
size_t | lost_bytes | |
MDBX_val | name | |
struct MDBX_chk_table_t.pages | pages | |
size_t | payload_bytes |
struct MDBX_chk_context_t |
Контекст проверки целостности базы данных.
Class Members | ||
---|---|---|
MDBX_env * | env | |
struct MDBX_chk_internal * | internal | |
struct MDBX_chk_context_t.result | result | |
MDBX_chk_scope_t * | scope | |
uint8_t | scope_nesting | |
MDBX_txn * | txn |
struct MDBX_chk_callbacks_t |
Набор функций обратного вызова используемых при проверке целостности базы данных.
Функции обратного вызова предназначены для организации взаимодействия с кодом приложения. В том числе, для интеграции логики приложения проверяющей целостность стуктуры данных выше уровня ключ-значение, подготовки и структурированного вывода информации как о ходе, так и результатов проверки.
Все функции обратного вызова опциональны, неиспользуемые указатели должны быть установлены в nullptr
.
bool(* MDBX_chk_callbacks_t::check_break) (MDBX_chk_context_t *ctx) |
void(* MDBX_chk_callbacks_t::issue) (MDBX_chk_context_t *ctx, const char *object, uint64_t entry_number, const char *issue, const char *extra_fmt, va_list extra_args) |
MDBX_chk_line_t *(* MDBX_chk_callbacks_t::print_begin) (MDBX_chk_context_t *ctx, MDBX_chk_severity_t severity) |
void(* MDBX_chk_callbacks_t::print_chars) (MDBX_chk_line_t *, const char *str, size_t len) |
void(* MDBX_chk_callbacks_t::print_done) (MDBX_chk_line_t *) |
void(* MDBX_chk_callbacks_t::print_flush) (MDBX_chk_line_t *) |
void(* MDBX_chk_callbacks_t::print_format) (MDBX_chk_line_t *, const char *fmt, va_list args) |
void(* MDBX_chk_callbacks_t::print_size) (MDBX_chk_line_t *, const char *prefix, const uint64_t value, const char *suffix) |
int(* MDBX_chk_callbacks_t::scope_conclude) (MDBX_chk_context_t *ctx, MDBX_chk_scope_t *outer, MDBX_chk_scope_t *inner, int err) |
void(* MDBX_chk_callbacks_t::scope_pop) (MDBX_chk_context_t *ctx, MDBX_chk_scope_t *outer, MDBX_chk_scope_t *inner) |
int(* MDBX_chk_callbacks_t::scope_push) (MDBX_chk_context_t *ctx, MDBX_chk_scope_t *outer, MDBX_chk_scope_t *inner, const char *fmt, va_list args) |
int(* MDBX_chk_callbacks_t::stage_begin) (MDBX_chk_context_t *ctx, MDBX_chk_stage_t) |
int(* MDBX_chk_callbacks_t::stage_end) (MDBX_chk_context_t *ctx, MDBX_chk_stage_t, int err) |
int(* MDBX_chk_callbacks_t::table_conclude) (MDBX_chk_context_t *ctx, const MDBX_chk_table_t *table, MDBX_cursor *cursor, int err) |
void(* MDBX_chk_callbacks_t::table_dispose) (MDBX_chk_context_t *ctx, const MDBX_chk_table_t *table) |
MDBX_chk_user_table_cookie_t *(* MDBX_chk_callbacks_t::table_filter) (MDBX_chk_context_t *ctx, const MDBX_val *name, MDBX_db_flags_t flags) |
int(* MDBX_chk_callbacks_t::table_handle_kv) (MDBX_chk_context_t *ctx, const MDBX_chk_table_t *table, size_t entry_number, const MDBX_val *key, const MDBX_val *value) |
struct MDBX_chk_table_t.pages |
struct MDBX_chk_table_t.histogram |
Class Members | ||
---|---|---|
struct MDBX_chk_histogram | deep | Tree deep histogram. |
struct MDBX_chk_histogram | key_len | Keys length histogram. |
struct MDBX_chk_histogram | large_pages | Histogram of large/overflow pages length. |
struct MDBX_chk_histogram | nested_tree | Histogram of nested trees height, span length for GC. |
struct MDBX_chk_histogram | val_len | Values length histogram. |
struct MDBX_chk_context_t.result |
Class Members | ||
---|---|---|
size_t | alloc_pages | |
size_t | backed_pages | |
size_t | gc_pages | |
size_t | gc_tree_problems | |
size_t | kv_tree_problems | |
size_t | problems_gc | |
size_t | problems_kv | |
size_t | problems_meta | |
size_t | processed_pages | |
uint64_t | recent_txnid | |
size_t | reclaimable_pages | |
uint64_t | steady_txnid | |
size_t | table_processed | |
size_t | table_total | |
const MDBX_chk_table_t *const * | tables |
Указатель на массив размером table_total с указателями на экземпляры структур MDBX_chk_table_t с информацией о всех таблицах ключ-значение, включая MainDB и GC/FreeDB. |
size_t | total_payload_bytes | |
size_t | total_problems | |
size_t | total_unused_bytes | |
size_t | tree_problems | |
size_t | unused_pages |
#define mdbx_env_open_for_recoveryT | ( | env, | |
pathname, | |||
target_mets, | |||
writeable | |||
) | mdbx_env_open_for_recoveryW(env, pathname, target_mets, writeable) |
#define mdbx_preopen_snapinfoT | ( | pathname, | |
info, | |||
bytes | |||
) | mdbx_preopen_snapinfoW(pathname, info, bytes) |
typedef struct MDBX_chk_user_table_cookie MDBX_chk_user_table_cookie_t |
Пользовательский тип для привязки дополнительных данных, связанных с некоторой таблицей ключ-значение, при проверке целостности базы данных.
enum MDBX_chk_flags_t |
Флаги/опции для проверки целостности базы данных.
enum MDBX_chk_severity_t |
Уровни логирование/детализации информации, поставляемой через обратные вызовы при проверке целостности базы данных.
enum MDBX_chk_stage_t |
Стадии проверки, сообщаемые через обратные вызовы при проверке целостности базы данных.
Enumerator | |
---|---|
MDBX_chk_none | |
MDBX_chk_init | |
MDBX_chk_lock | |
MDBX_chk_meta | |
MDBX_chk_tree | |
MDBX_chk_gc | |
MDBX_chk_space | |
MDBX_chk_maindb | |
MDBX_chk_tables | |
MDBX_chk_conclude | |
MDBX_chk_unlock | |
MDBX_chk_finalize |
LIBMDBX_API int mdbx_env_chk | ( | MDBX_env * | env, |
const MDBX_chk_callbacks_t * | cb, | ||
MDBX_chk_context_t * | ctx, | ||
const MDBX_chk_flags_t | flags, | ||
MDBX_chk_severity_t | verbosity, | ||
unsigned | timeout_seconds_16dot16 | ||
) |
Проверяет целостность базы данных.
Взаимодействие с кодом приложения реализуется через функции обратного вызова, предоставляемые приложением посредством параметра cb
. В ходе такого взаимодействия приложение может контролировать ход проверки, в том числе, пропускать/фильтровать обработку отдельных элементов, а также реализовать дополнительную верификацию структуры и/или информации с учетом назначения и семантической значимости для приложения. Например, приложение может выполнить проверку собственных индексов и корректность записей в БД. Именно с этой целью функционал проверки целостности был доработан для интенсивного использования обратных вызовов и перенесен из утилиты mdbx_chk
в основную библиотеку.
Проверка выполняется в несколько стадий, начиная с инициализации и до завершения, более подробно см MDBX_chk_stage_t. О начале и завершении каждой стадии код приложения уведомляется через соответствующие функции обратного вызова, более подробно см MDBX_chk_callbacks_t.
[in] | env | Указатель на экземпляр среды. |
[in] | cb | Набор функций обратного вызова. |
[in,out] | ctx | Контекст проверки целостности базы данных, где будут формироваться результаты проверки. |
[in] | flags | Флаги/опции проверки целостности базы данных. |
[in] | verbosity | Необходимый уровень детализации информации о ходе и результатах проверки. |
[in] | timeout_seconds_16dot16 | Ограничение длительности в 1/65536 долях секунды для выполнения проверки, либо 0 при отсутствии ограничения. |
LIBMDBX_API int mdbx_env_chk_encount_problem | ( | MDBX_chk_context_t * | ctx | ) |
Вспомогательная функция для подсчета проблем детектируемых приложением, в том числе, поступающим к приложению через логирование.
LIBMDBX_API int mdbx_env_open_for_recovery | ( | MDBX_env * | env, |
const char * | pathname, | ||
unsigned | target_meta, | ||
bool | writeable | ||
) |
Open an environment instance using specific meta-page for checking and recovery.
This function mostly of internal API for mdbx_chk
utility and subject to change at any time. Do not use this function to avoid shooting your own leg(s).
LIBMDBX_API int mdbx_env_turn_for_recovery | ( | MDBX_env * | env, |
unsigned | target_meta | ||
) |
Turn database to the specified meta-page.
This function mostly of internal API for mdbx_chk
utility and subject to change at any time. Do not use this function to avoid shooting your own leg(s).
LIBMDBX_API int mdbx_txn_lock | ( | MDBX_env * | env, |
bool | dont_wait | ||
) |
Acquires write-transaction lock. Provided for custom and/or complex locking scenarios.
LIBMDBX_API int mdbx_txn_unlock | ( | MDBX_env * | env | ) |
Releases write-transaction lock. Provided for custom and/or complex locking scenarios.