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) |
| #define | mdbx_preopen_snapinfoT(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.
| Class Members | ||
|---|---|---|
| bool(*)(MDBX_chk_context_t *ctx) | check_break | |
| void(*)(MDBX_chk_context_t *ctx, const char *object, uint64_t entry_number, const char *issue, const char *extra_fmt, va_list extra_args) | issue | |
| MDBX_chk_line_t *(*)(MDBX_chk_context_t *ctx, MDBX_chk_severity_t severity) | print_begin | |
| void(*)(MDBX_chk_line_t *, const char *str, size_t len) | print_chars | |
| void(*)(MDBX_chk_line_t *) | print_done | |
| void(*)(MDBX_chk_line_t *) | print_flush | |
| void(*)(MDBX_chk_line_t *, const char *fmt, va_list args) | print_format | |
| void(*)(MDBX_chk_line_t *, const char *prefix, const uint64_t value, const char *suffix) | print_size | |
| int(*)(MDBX_chk_context_t *ctx, MDBX_chk_scope_t *outer, MDBX_chk_scope_t *inner, int err) | scope_conclude | |
| void(*)(MDBX_chk_context_t *ctx, MDBX_chk_scope_t *outer, MDBX_chk_scope_t *inner) | scope_pop | |
| int(*)(MDBX_chk_context_t *ctx, MDBX_chk_scope_t *outer, MDBX_chk_scope_t *inner, const char *fmt, va_list args) | scope_push | |
| int(*)(MDBX_chk_context_t *ctx, MDBX_chk_stage_t) | stage_begin | |
| int(*)(MDBX_chk_context_t *ctx, MDBX_chk_stage_t, int err) | stage_end | |
| int(*)(MDBX_chk_context_t *ctx, const MDBX_chk_table_t *table, MDBX_cursor *cursor, int err) | table_conclude | |
| void(*)(MDBX_chk_context_t *ctx, const MDBX_chk_table_t *table) | table_dispose | |
| MDBX_chk_user_table_cookie_t *(*)(MDBX_chk_context_t *ctx, const MDBX_val *name, MDBX_db_flags_t flags) | table_filter | |
| int(*)(MDBX_chk_context_t *ctx, const MDBX_chk_table_t *table, size_t entry_number, const MDBX_val *key, const MDBX_val *value) | table_handle_kv | |
| 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 | multival | Number of multi-values (aka duplicates) histogram. |
| struct MDBX_chk_histogram | nested_tree | Histogram of nested trees height, span length for GC. |
| struct MDBX_chk_histogram | nested_tree_filling | Histogram of nested tree(s) branch and leaf pages filling in percents. |
| struct MDBX_chk_histogram | tree_filling | Histogram of branch and leaf pages filling in percents. |
| 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 ) |
| #define mdbx_preopen_snapinfoT | ( | 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.