33 #include "fsp0types.h"
36 #ifndef UNIV_HOTBACKUP
46 #include <drizzled/atomics.h>
84 ibool restore_corrupt_pages);
221 #ifndef UNIV_HOTBACKUP
304 #ifndef UNIV_HOTBACKUP
345 ulint max_format_id);
365 trx_sys_read_file_format_id(
367 const char *pathname,
376 trx_sys_read_pertable_file_format_id(
378 const char *pathname,
401 #define TRX_SYS_SYSTEM_RSEG_ID 0
404 #define TRX_SYS_SPACE 0
406 #define TRX_SYS_PAGE_NO FSP_TRX_SYS_PAGE_NO
409 #define TRX_SYS FSEG_PAGE_DATA
413 #define TRX_SYS_TRX_ID_STORE 0
425 #define TRX_SYS_FSEG_HEADER 8
428 #define TRX_SYS_RSEGS (8 + FSEG_HEADER_SIZE)
439 #define TRX_SYS_N_RSEGS 128
443 #define TRX_SYS_OLD_N_RSEGS 256
448 #define TRX_SYS_MYSQL_LOG_NAME_LEN 512
450 #define TRX_SYS_MYSQL_LOG_MAGIC_N 873422344
454 #define TRX_SYS_MYSQL_MASTER_LOG_INFO (UNIV_PAGE_SIZE - 2000)
457 #define TRX_SYS_DRIZZLE_LOG_INFO (UNIV_PAGE_SIZE - 1000)
458 #define TRX_SYS_DRIZZLE_MAX_COMMIT_ID 8
460 #define TRX_SYS_DRIZZLE_LOG_NAME 12
465 #define TRX_SYS_DOUBLEWRITE (UNIV_PAGE_SIZE - 200)
467 #define TRX_SYS_DOUBLEWRITE_FSEG 0
470 #define TRX_SYS_DOUBLEWRITE_MAGIC FSEG_HEADER_SIZE
475 #define TRX_SYS_DOUBLEWRITE_BLOCK1 (4 + FSEG_HEADER_SIZE)
482 #define TRX_SYS_DOUBLEWRITE_BLOCK2 (8 + FSEG_HEADER_SIZE)
488 #define TRX_SYS_DOUBLEWRITE_REPEAT 12
501 #define TRX_SYS_DOUBLEWRITE_SPACE_ID_STORED (24 + FSEG_HEADER_SIZE)
505 #define TRX_SYS_DOUBLEWRITE_MAGIC_N 536853855
507 #define TRX_SYS_DOUBLEWRITE_SPACE_ID_STORED_N 1783657386
510 #define TRX_SYS_DOUBLEWRITE_BLOCK_SIZE FSP_EXTENT_SIZE
513 #ifndef UNIV_HOTBACKUP
518 #define TRX_SYS_FILE_FORMAT_TAG (UNIV_PAGE_SIZE - 16)
522 #define TRX_SYS_FILE_FORMAT_TAG_MAGIC_N_LOW 3645922177UL
524 #define TRX_SYS_FILE_FORMAT_TAG_MAGIC_N_HIGH 2745987765UL
527 #define TRX_SYS_FILE_FORMAT_TAG_MAGIC_N \
528 ((ib_uint64_t) TRX_SYS_FILE_FORMAT_TAG_MAGIC_N_HIGH << 32 \
529 | TRX_SYS_FILE_FORMAT_TAG_MAGIC_N_LOW)
587 #define TRX_SYS_TRX_ID_WRITE_MARGIN 256
591 #include "trx0sys.ic"
trx_doublewrite_t * trx_doublewrite
UNIV_INLINE ulint trx_sysf_rseg_get_space(trx_sysf_t *sys_header, ulint i, mtr_t *mtr)
UNIV_INTERN void trx_sys_create_rsegs(ulint n_rsegs)
UNIV_INTERN void trx_sys_file_format_tag_init(void)
UNIV_INLINE trx_id_t trx_sys_get_new_trx_id(void)
UNIV_INTERN void trx_sys_file_format_init(void)
UNIV_INLINE trx_t * trx_get_on_id(trx_id_t trx_id)
UNIV_INLINE trx_sysf_t * trx_sysf_get(mtr_t *mtr)
UNIV_INLINE ibool trx_sys_hdr_page(ulint space, ulint page_no)
UNIV_INTERN void trx_sys_doublewrite_init_or_restore_pages(ibool restore_corrupt_pages)
UNIV_INLINE void trx_write_trx_id(byte *ptr, trx_id_t id)
UNIV_INTERN void trx_sys_file_format_close(void)
UNIV_INTERN const char * trx_sys_file_format_max_get(void)
ibool trx_sys_multiple_tablespace_format
UNIV_INTERN ibool trx_sys_file_format_max_upgrade(const char **name, ulint format_id)
ibool trx_doublewrite_must_reset_space_ids
UNIV_INTERN void trx_sys_init_at_db_start(void)
UNIV_INLINE void trx_sys_set_nth_rseg(trx_sys_t *sys, ulint n, trx_rseg_t *rseg)
UNIV_INTERN void trx_sys_mark_upgraded_to_multiple_tablespaces(void)
UNIV_INTERN void trx_sys_print_mysql_master_log_pos(void)
UT_LIST_BASE_NODE_T(trx_t) trx_list
UNIV_INLINE void trx_sysf_rseg_set_page_no(trx_sysf_t *sys_header, ulint i, ulint page_no, mtr_t *mtr)
UNIV_INTERN void trx_sys_read_commit_id(void)
UNIV_INTERN void trx_sys_flush_commit_id(uint64_t commit_id, ulint field, mtr_t *mtr)
UNIV_INTERN ibool trx_in_trx_list(trx_t *in_trx)
ibool trx_doublewrite_buf_is_being_created
UNIV_INTERN void trx_sys_close(void)
UNIV_INTERN ulint trx_sys_file_format_max_check(ulint max_format_id)
UNIV_INLINE trx_id_t trx_list_get_min_trx_id(void)
UNIV_INLINE ibool trx_is_active(trx_id_t trx_id)
UNIV_INTERN ulint trx_sysf_rseg_find_free(mtr_t *mtr)
UNIV_INTERN void trx_sys_create(void)
UNIV_INLINE trx_id_t trx_read_trx_id(const byte *ptr)
UNIV_INLINE ulint trx_sysf_rseg_get_page_no(trx_sysf_t *sys_header, ulint i, mtr_t *mtr)
buf_page_t ** buf_block_arr
UNIV_INLINE void trx_sysf_rseg_set_space(trx_sysf_t *sys_header, ulint i, ulint space, mtr_t *mtr)
UNIV_INTERN void trx_sys_create_doublewrite_buf(void)
UNIV_INTERN const char * trx_sys_file_format_id_to_name(const ulint id)
drizzled::atomic< uint64_t > trx_sys_commit_id
trx_rseg_t * rseg_array[TRX_SYS_N_RSEGS]
UNIV_INTERN ibool trx_doublewrite_page_inside(ulint page_no)
UNIV_INTERN ibool trx_sys_file_format_max_set(ulint format_id, const char **name)
byte * write_buf_unaligned
UNIV_INLINE trx_rseg_t * trx_sys_get_nth_rseg(trx_sys_t *sys, ulint n)