summaryrefslogtreecommitdiff
path: root/storage/innobase/fsp/fsp0fsp.cc
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2017-06-12 17:43:07 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2017-06-12 17:43:07 +0300
commita78476d342969caece14ee4fc3f5ac4a58b0721a (patch)
treecb36c20c39a372911c5b7a4d0c63275f751733d5 /storage/innobase/fsp/fsp0fsp.cc
parent7a12894de11ab04b93c9e96359008386b3b41cbb (diff)
parent3976ec1e83d7ae1079b4afa4c12b4ec533d665f6 (diff)
downloadmariadb-git-a78476d342969caece14ee4fc3f5ac4a58b0721a.tar.gz
Merge 10.1 into 10.2
Diffstat (limited to 'storage/innobase/fsp/fsp0fsp.cc')
-rw-r--r--storage/innobase/fsp/fsp0fsp.cc51
1 files changed, 14 insertions, 37 deletions
diff --git a/storage/innobase/fsp/fsp0fsp.cc b/storage/innobase/fsp/fsp0fsp.cc
index 467fbbd557d..bf86d83a8c7 100644
--- a/storage/innobase/fsp/fsp0fsp.cc
+++ b/storage/innobase/fsp/fsp0fsp.cc
@@ -874,14 +874,12 @@ fsp_try_extend_data_file_with_pages(
@param[in,out] space tablespace
@param[in,out] header tablespace header
@param[in,out] mtr mini-transaction
-@return whether the tablespace was extended */
-static UNIV_COLD MY_ATTRIBUTE((nonnull))
+@return number of pages added
+@retval 0 if the tablespace was not extended */
+UNIV_COLD MY_ATTRIBUTE((nonnull))
+static
ulint
-fsp_try_extend_data_file(
- fil_space_t* space,
- fsp_header_t* header,
- mtr_t* mtr,
- ulint* n_pages_added)
+fsp_try_extend_data_file(fil_space_t* space, fsp_header_t* header, mtr_t* mtr)
{
ulint size; /* current number of pages in the datafile */
ulint size_increase; /* number of pages to extend this file */
@@ -904,7 +902,7 @@ fsp_try_extend_data_file(
<< " innodb_data_file_path.";
srv_sys_space.set_tablespace_full_status(true);
}
- return(false);
+ return(0);
} else if (fsp_is_system_temporary(space->id)
&& !srv_tmp_space.can_auto_extend_last_file()) {
@@ -918,7 +916,7 @@ fsp_try_extend_data_file(
<< " innodb_temp_data_file_path.";
srv_tmp_space.set_tablespace_full_status(true);
}
- return(false);
+ return(0);
}
size = mach_read_from_4(header + FSP_SIZE);
@@ -941,7 +939,7 @@ fsp_try_extend_data_file(
/* Let us first extend the file to extent_size */
if (!fsp_try_extend_data_file_with_pages(
space, extent_pages - 1, header, mtr)) {
- return(false);
+ return(0);
}
size = extent_pages;
@@ -951,16 +949,13 @@ fsp_try_extend_data_file(
}
if (size_increase == 0) {
-
- return(false);
+ return(0);
}
if (!fil_space_extend(space, size + size_increase)) {
- return(false);
+ return(0);
}
- *n_pages_added = size_increase;
-
/* We ignore any fragments of a full megabyte when storing the size
to the space header */
@@ -970,7 +965,7 @@ fsp_try_extend_data_file(
mlog_write_ulint(
header + FSP_SIZE, space->size_in_header, MLOG_4BYTES, mtr);
- return(true);
+ return(size_increase);
}
/** Calculate the number of pages to extend a datafile.
@@ -1062,8 +1057,7 @@ fsp_fill_free_list(
}
if (!skip_resize) {
- ulint n_pages = 0;
- fsp_try_extend_data_file(space, header, mtr, &n_pages);
+ fsp_try_extend_data_file(space, header, mtr);
size = space->size_in_header;
}
}
@@ -2784,8 +2778,6 @@ fsp_reserve_free_extents(
ulint n_free_up;
ulint reserve;
size_t total_reserved = 0;
- ulint rounds = 0;
- ulint n_pages_added = 0;
ut_ad(mtr);
*n_reserved = n_ext;
@@ -2866,23 +2858,8 @@ try_again:
return(true);
}
try_to_extend:
- n_pages_added = 0;
-
- if (fsp_try_extend_data_file(space, space_header, mtr, &n_pages_added)) {
-
- rounds++;
- total_reserved += n_pages_added;
-
- if (rounds > 10) {
- ib::info() << "Space id: "
- << space << " trying to reserve: "
- << n_ext << " extents actually reserved: "
- << n_pages_added << " reserve: "
- << reserve << " free: " << n_free
- << " size: " << size
- << " rounds: " << rounds
- << " total_reserved: " << total_reserved << ".";
- }
+ if (ulint n = fsp_try_extend_data_file(space, space_header, mtr)) {
+ total_reserved += n;
goto try_again;
}