mysql-innodb存储引擎核心处理
dberr_t srv_start(bool create_new_db) {
lsn_t flushed_lsn;
/* just for assertions */
lsn_t previous_lsn;
/* output from call to create_log_files(...) */
lsn_t new_checkpoint_lsn = 0;
page_no_t sum_of_data_file_sizes;
page_no_t tablespace_size_in_header;
dberr_t err;
uint32_t srv_n_log_files_found = srv_n_log_files;
mtr_t mtr;
purge_pq_t *purge_queue;
char logfilename[10000];
char *logfile0 = nullptr;
size_t dirnamelen;
unsigned i = 0;
assert(srv_dict_metadata == nullptr);
/* Reset the start state. */
srv_start_state = SRV_START_STATE_NONE;
#ifdef UNIV_LINUX
#ifdef HAVE_FALLOC_PUNCH_HOLE_AND_KEEP_SIZE
ib::info(ER_IB_MSG_1107);
#else
ib::info(ER_IB_MSG_1108);
#endif /* HAVE_FALLOC_PUNCH_HOLE_AND_KEEP_SIZE */
#endif /* UNIV_LINUX */
if (sizeof(ulint) != sizeof(void *)) {