diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2019-04-19 12:44:46 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2019-04-19 12:44:46 +0300 |
commit | d315b4ff3903e665a6b2ad196dbe0f7feb57eed5 (patch) | |
tree | 6c708386e2c7959a88cd26ae384d527bd5d194c5 | |
parent | 169c00994b5c7d94576fea88b2e84a8833511e96 (diff) | |
download | mariadb-git-d315b4ff3903e665a6b2ad196dbe0f7feb57eed5.tar.gz |
Remove IBUF_COUNT_DEBUG
The compile-time option IBUF_COUNT_DEBUG has not been used for years.
It would only work with up to 3 created .ibd files, with no buffered
changes existing while InnoDB is started up.
-rw-r--r-- | storage/innobase/buf/buf0buf.cc | 52 | ||||
-rw-r--r-- | storage/innobase/buf/buf0flu.cc | 7 | ||||
-rw-r--r-- | storage/innobase/buf/buf0lru.cc | 6 | ||||
-rw-r--r-- | storage/innobase/ibuf/ibuf0ibuf.cc | 113 | ||||
-rw-r--r-- | storage/innobase/include/ibuf0ibuf.h | 9 | ||||
-rw-r--r-- | storage/innobase/include/univ.i | 5 | ||||
-rw-r--r-- | storage/innobase/srv/srv0start.cc | 4 |
7 files changed, 7 insertions, 189 deletions
diff --git a/storage/innobase/buf/buf0buf.cc b/storage/innobase/buf/buf0buf.cc index bc8347e4f31..6e4facd7a22 100644 --- a/storage/innobase/buf/buf0buf.cc +++ b/storage/innobase/buf/buf0buf.cc @@ -3854,10 +3854,6 @@ got_block: } } -#ifdef UNIV_IBUF_COUNT_DEBUG - ut_a(ibuf_count_get(page_id) == 0); -#endif /* UNIV_IBUF_COUNT_DEBUG */ - return(bpage); } @@ -4631,15 +4627,9 @@ evict_from_pool: } } - if (!recv_no_ibuf_operations) { - if (access_time) { -#ifdef UNIV_IBUF_COUNT_DEBUG - ut_a(ibuf_count_get(page_id) == 0); -#endif /* UNIV_IBUF_COUNT_DEBUG */ - } else { - ibuf_merge_or_delete_for_page( - block, page_id, &page_size, TRUE); - } + if (!access_time && !recv_no_ibuf_operations) { + ibuf_merge_or_delete_for_page( + block, page_id, &page_size, TRUE); } buf_pool_mutex_enter(buf_pool); @@ -4843,10 +4833,6 @@ evict_from_pool: buf_read_ahead_linear(page_id, page_size, ibuf_inside(mtr)); } -#ifdef UNIV_IBUF_COUNT_DEBUG - ut_a(ibuf_count_get(fix_block->page.id) == 0); -#endif - ut_ad(!rw_lock_own_flagged(hash_lock, RW_LOCK_FLAG_X | RW_LOCK_FLAG_S)); @@ -4956,10 +4942,6 @@ buf_page_optimistic_get( ibuf_inside(mtr)); } -#ifdef UNIV_IBUF_COUNT_DEBUG - ut_a(ibuf_count_get(block->page.id) == 0); -#endif /* UNIV_IBUF_COUNT_DEBUG */ - buf_pool = buf_pool_from_block(block); buf_pool->stat.n_page_gets++; @@ -5063,9 +5045,6 @@ buf_page_get_known_nowait( } #endif /* UNIV_DEBUG */ -#ifdef UNIV_IBUF_COUNT_DEBUG - ut_a((mode == BUF_KEEP_OLD) || ibuf_count_get(block->page.id) == 0); -#endif buf_pool->stat.n_page_gets++; return(TRUE); @@ -5152,10 +5131,6 @@ buf_page_try_get_func( buf_pool->stat.n_page_gets++; -#ifdef UNIV_IBUF_COUNT_DEBUG - ut_a(ibuf_count_get(block->page.id) == 0); -#endif /* UNIV_IBUF_COUNT_DEBUG */ - return(block); } @@ -5554,11 +5529,6 @@ buf_page_create( if (block && buf_page_in_file(&block->page) && !buf_pool_watch_is_sentinel(buf_pool, &block->page)) { - -#ifdef UNIV_IBUF_COUNT_DEBUG - ut_a(ibuf_count_get(page_id) == 0); -#endif /* UNIV_IBUF_COUNT_DEBUG */ - ut_d(block->page.file_page_was_freed = FALSE); /* Page can be found in buf_pool */ @@ -5663,9 +5633,6 @@ buf_page_create( #if defined UNIV_DEBUG || defined UNIV_BUF_DEBUG ut_a(++buf_dbg_counter % 5771 || buf_validate()); #endif /* UNIV_DEBUG || UNIV_BUF_DEBUG */ -#ifdef UNIV_IBUF_COUNT_DEBUG - ut_a(ibuf_count_get(block->page.id) == 0); -#endif return(block); } @@ -6114,14 +6081,6 @@ database_corrupted: buf_pool_mutex_enter(buf_pool); mutex_enter(block_mutex); -#ifdef UNIV_IBUF_COUNT_DEBUG - if (io_type == BUF_IO_WRITE || uncompressed) { - /* For BUF_IO_READ of compressed-only blocks, the - buffered operations will be merged by buf_page_get_gen() - after the block has been uncompressed. */ - ut_a(ibuf_count_get(bpage->id) == 0); - } -#endif /* Because this thread which does the unlocking is not the same that did the locking, we use a pass value != 0 in unlock, which simply removes the newest lock debug record, without checking the thread @@ -6350,11 +6309,6 @@ buf_pool_validate_instance( buf_pool, block->page.id) == &block->page); -#ifdef UNIV_IBUF_COUNT_DEBUG - ut_a(buf_page_get_io_fix(&block->page) - == BUF_IO_READ - || !ibuf_count_get(block->page.id)); -#endif switch (buf_page_get_io_fix(&block->page)) { case BUF_IO_NONE: break; diff --git a/storage/innobase/buf/buf0flu.cc b/storage/innobase/buf/buf0flu.cc index a84a79669a7..f6f566bb8c7 100644 --- a/storage/innobase/buf/buf0flu.cc +++ b/storage/innobase/buf/buf0flu.cc @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1995, 2017, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2013, 2018, MariaDB Corporation. +Copyright (c) 2013, 2019, MariaDB Corporation. Copyright (c) 2013, 2014, Fusion-io This program is free software; you can redistribute it and/or modify it under @@ -1041,11 +1041,6 @@ buf_flush_write_block_low( ut_ad(!buf_page_get_mutex(bpage)->is_owned()); ut_ad(buf_page_get_io_fix(bpage) == BUF_IO_WRITE); ut_ad(bpage->oldest_modification != 0); - -#ifdef UNIV_IBUF_COUNT_DEBUG - ut_a(ibuf_count_get(bpage->id) == 0); -#endif /* UNIV_IBUF_COUNT_DEBUG */ - ut_ad(bpage->newest_modification != 0); /* Force the log to the disk before writing the modified block */ diff --git a/storage/innobase/buf/buf0lru.cc b/storage/innobase/buf/buf0lru.cc index 9218ea1b141..bd6f45a29ba 100644 --- a/storage/innobase/buf/buf0lru.cc +++ b/storage/innobase/buf/buf0lru.cc @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2017, 2018, MariaDB Corporation. +Copyright (c) 2017, 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -1596,10 +1596,6 @@ buf_LRU_free_page( goto func_exit; } -#ifdef UNIV_IBUF_COUNT_DEBUG - ut_a(ibuf_count_get(bpage->id) == 0); -#endif /* UNIV_IBUF_COUNT_DEBUG */ - if (zip || !bpage->zip.data) { /* This would completely free the block. */ /* Do not completely free dirty blocks. */ diff --git a/storage/innobase/ibuf/ibuf0ibuf.cc b/storage/innobase/ibuf/ibuf0ibuf.cc index 8b162af6790..0914452c39f 100644 --- a/storage/innobase/ibuf/ibuf0ibuf.cc +++ b/storage/innobase/ibuf/ibuf0ibuf.cc @@ -195,35 +195,6 @@ uint ibuf_debug; /** The insert buffer control structure */ ibuf_t* ibuf = NULL; -#ifdef UNIV_IBUF_COUNT_DEBUG -/** Number of tablespaces in the ibuf_counts array */ -#define IBUF_COUNT_N_SPACES 4 -/** Number of pages within each tablespace in the ibuf_counts array */ -#define IBUF_COUNT_N_PAGES 130000 - -/** Buffered entry counts for file pages, used in debugging */ -static ulint ibuf_counts[IBUF_COUNT_N_SPACES][IBUF_COUNT_N_PAGES]; - -/** Checks that the indexes to ibuf_counts[][] are within limits. -@param[in] page_id page id */ -UNIV_INLINE -void -ibuf_count_check( - const page_id_t page_id) -{ - if (page_id.space() < IBUF_COUNT_N_SPACES - && page_id.page_no() < IBUF_COUNT_N_PAGES) { - return; - } - - ib::fatal() << "UNIV_IBUF_COUNT_DEBUG limits space_id and page_no" - " and breaks crash recovery. space_id=" << page_id.space() - << ", should be 0<=space_id<" << IBUF_COUNT_N_SPACES - << ". page_no=" << page_id.page_no() - << ", should be 0<=page_no<" << IBUF_COUNT_N_PAGES; -} -#endif - /** @name Offsets to the per-page bits in the insert buffer bitmap */ /* @{ */ #define IBUF_BITMAP_FREE 0 /*!< Bits indicating the @@ -414,35 +385,6 @@ ibuf_tree_root_get( return(root); } -#ifdef UNIV_IBUF_COUNT_DEBUG - -/** Gets the ibuf count for a given page. -@param[in] page_id page id -@return number of entries in the insert buffer currently buffered for -this page */ -ulint ibuf_count_get(const page_id_t page_id) -{ - ibuf_count_check(page_id); - - return(ibuf_counts[page_id.space()][page_id.page_no()]); -} - -/** Sets the ibuf count for a given page. -@param[in] page_id page id -@param[in] val value to set */ -static -void -ibuf_count_set( - const page_id_t page_id, - ulint val) -{ - ibuf_count_check(page_id); - ut_a(val < UNIV_PAGE_SIZE); - - ibuf_counts[page_id.space()][page_id.page_no()] = val; -} -#endif - /******************************************************************//** Closes insert buffer and frees the data structures. */ void @@ -736,10 +678,6 @@ ibuf_bitmap_page_set_bits( #endif ut_ad(mtr_memo_contains_page(mtr, page, MTR_MEMO_PAGE_X_FIX)); ut_ad(mtr->is_named_space(page_id.space())); -#ifdef UNIV_IBUF_COUNT_DEBUG - ut_a((bit != IBUF_BITMAP_BUFFERED) || (val != FALSE) - || (0 == ibuf_count_get(page_id))); -#endif bit_offset = (page_id.page_no() % page_size.physical()) * IBUF_BITS_PER_PAGE + bit; @@ -3503,9 +3441,6 @@ fail_exit: which it cannot do until we have buffered the IBUF_OP_DELETE and done mtr_commit(&mtr) to release the latch. */ -#ifdef UNIV_IBUF_COUNT_DEBUG - ut_a((buffered == 0) || ibuf_count_get(page_id)); -#endif ibuf_mtr_start(&bitmap_mtr); bitmap_mtr.set_named_space(page_id.space()); @@ -3648,17 +3583,6 @@ fail_exit: } func_exit: -#ifdef UNIV_IBUF_COUNT_DEBUG - if (err == DB_SUCCESS) { - - ib::info() << "Incrementing ibuf count of page " << page_id - << " from " << ibuf_count_get(space, page_no) - << " by 1"; - - ibuf_count_set(page_id, ibuf_count_get(page_id) + 1); - } -#endif - ibuf_mtr_commit(&mtr); btr_pcur_close(&pcur); @@ -4356,14 +4280,6 @@ ibuf_delete_rec( ibuf->empty = true; } -#ifdef UNIV_IBUF_COUNT_DEBUG - ib::info() << "Decrementing ibuf count of space " << space - << " page " << page_no << " from " - << ibuf_count_get(page_id) << " by 1"; - - ibuf_count_set(page_id, ibuf_count_get(page_id) - 1); -#endif /* UNIV_IBUF_COUNT_DEBUG */ - return(FALSE); } @@ -4399,10 +4315,6 @@ ibuf_delete_rec( false, mtr); ut_a(err == DB_SUCCESS); -#ifdef UNIV_IBUF_COUNT_DEBUG - ibuf_count_set(page_id, ibuf_count_get(page_id) - 1); -#endif /* UNIV_IBUF_COUNT_DEBUG */ - ibuf_size_update(root); mutex_exit(&ibuf_mutex); @@ -4783,10 +4695,6 @@ reset_bit: my_atomic_addlint(&ibuf->n_merges, 1); ibuf_add_ops(ibuf->n_merged_ops, mops); ibuf_add_ops(ibuf->n_discarded_ops, dops); - -#ifdef UNIV_IBUF_COUNT_DEBUG - ut_a(ibuf_count_get(page_id) == 0); -#endif } /*********************************************************************//** @@ -4905,11 +4813,6 @@ ibuf_print( /*=======*/ FILE* file) /*!< in: file where to print */ { -#ifdef UNIV_IBUF_COUNT_DEBUG - ulint i; - ulint j; -#endif - mutex_enter(&ibuf_mutex); fprintf(file, @@ -4926,22 +4829,6 @@ ibuf_print( fputs("discarded operations:\n ", file); ibuf_print_ops(ibuf->n_discarded_ops, file); -#ifdef UNIV_IBUF_COUNT_DEBUG - for (i = 0; i < IBUF_COUNT_N_SPACES; i++) { - for (j = 0; j < IBUF_COUNT_N_PAGES; j++) { - ulint count = ibuf_count_get(page_id_t(i, j, 0)); - - if (count > 0) { - fprintf(stderr, - "Ibuf count for page " - ULINTPF ":" ULINTPF "" - " is " ULINTPF "\n", - i, j, count); - } - } - } -#endif /* UNIV_IBUF_COUNT_DEBUG */ - mutex_exit(&ibuf_mutex); } diff --git a/storage/innobase/include/ibuf0ibuf.h b/storage/innobase/include/ibuf0ibuf.h index ef72081c7cd..f6cf5a06911 100644 --- a/storage/innobase/include/ibuf0ibuf.h +++ b/storage/innobase/include/ibuf0ibuf.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1997, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2016, 2017, MariaDB Corporation. +Copyright (c) 2016, 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -384,13 +384,6 @@ ibuf_parse_bitmap_init( buf_block_t* block, /*!< in: block or NULL */ mtr_t* mtr); /*!< in: mtr or NULL */ -#ifdef UNIV_IBUF_COUNT_DEBUG -/** Gets the ibuf count for a given page. -@param[in] page_id page id -@return number of entries in the insert buffer currently buffered for -this page */ -ulint ibuf_count_get(const page_id_t page_id); -#endif /******************************************************************//** Looks if the insert buffer is empty. @return true if empty */ diff --git a/storage/innobase/include/univ.i b/storage/innobase/include/univ.i index 021cf2c34a7..3aa52aadae7 100644 --- a/storage/innobase/include/univ.i +++ b/storage/innobase/include/univ.i @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2013, 2018, MariaDB Corporation. +Copyright (c) 2013, 2019, MariaDB Corporation. Copyright (c) 2008, Google Inc. Portions of this file contain modifications contributed and copyrighted by @@ -212,9 +212,6 @@ command. */ this will break redo log file compatibility, but it may be useful when debugging redo log application problems. */ #define UNIV_IBUF_DEBUG /* debug the insert buffer */ -#define UNIV_IBUF_COUNT_DEBUG /* debug the insert buffer; -this limits the database to IBUF_COUNT_N_SPACES and IBUF_COUNT_N_PAGES, -and the insert buffer must be empty when the database is started */ #define UNIV_PERF_DEBUG /* debug flag that enables light weight performance related stuff. */ diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc index 03e9691da63..d75310607b3 100644 --- a/storage/innobase/srv/srv0start.cc +++ b/storage/innobase/srv/srv0start.cc @@ -1482,10 +1482,6 @@ innobase_start_or_create_for_mysql() #ifdef UNIV_IBUF_DEBUG ib::info() << "!!!!!!!! UNIV_IBUF_DEBUG switched on !!!!!!!!!"; -# ifdef UNIV_IBUF_COUNT_DEBUG - ib::info() << "!!!!!!!! UNIV_IBUF_COUNT_DEBUG switched on !!!!!!!!!"; - ib::error() << "Crash recovery will fail with UNIV_IBUF_COUNT_DEBUG"; -# endif #endif #ifdef UNIV_LOG_LSN_DEBUG |