diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2018-03-09 21:25:20 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2018-03-10 11:54:34 +0200 |
commit | 112df06996dd88ac1d858c4c0c321d4c6e7bbf90 (patch) | |
tree | bbd4ac5bc8852834b9cb2bab3f007902cb85a365 /storage/innobase/include/buf0buf.h | |
parent | 54765aaa4db8dacb5cca81d4628335c570e7798a (diff) | |
download | mariadb-git-112df06996dd88ac1d858c4c0c321d4c6e7bbf90.tar.gz |
MDEV-15529 IMPORT TABLESPACE unnecessarily uses the doublewrite buffer
fil_space_t::atomic_write_supported: Always set this flag for
TEMPORARY TABLESPACE and during IMPORT TABLESPACE. The page
writes during these operations are by definition not crash-safe
because they are not written to the redo log.
fil_space_t::use_doublewrite(): Determine if doublewrite should
be used.
buf_dblwr_update(): Add assertions, and let the caller check whether
doublewrite buffering is desired.
buf_flush_write_block_low(): Disable the doublewrite buffer for
the temporary tablespace and for IMPORT TABLESPACE.
fil_space_set_imported(), fil_node_open_file(), fil_space_create():
Initialize or revise the space->atomic_write_supported flag.
buf_page_io_complete(), buf_flush_write_complete(): Add the parameter
dblwr, to indicate whether doublewrite was used for writes.
buf_dblwr_sync_datafiles(): Remove an unnecessary flush of
persistent tablespaces when flushing temporary tablespaces.
(Move the call to buf_dblwr_flush_buffered_writes().)
Diffstat (limited to 'storage/innobase/include/buf0buf.h')
-rw-r--r-- | storage/innobase/include/buf0buf.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/storage/innobase/include/buf0buf.h b/storage/innobase/include/buf0buf.h index 063eb6b6fab..1001f2ca807 100644 --- a/storage/innobase/include/buf0buf.h +++ b/storage/innobase/include/buf0buf.h @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1995, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2013, 2017, MariaDB Corporation. +Copyright (c) 2013, 2018, 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 @@ -1271,9 +1271,9 @@ buf_page_init_for_read( bool unzip); /** Complete a read or write request of a file page to or from the buffer pool. -@param[in,out] bpage Page to complete -@param[in] evict whether or not to evict the page - from LRU list. +@param[in,out] bpage page to complete +@param[in] dblwr whether the doublewrite buffer was used (on write) +@param[in] evict whether or not to evict the page from LRU list @return whether the operation succeeded @retval DB_SUCCESS always when writing, or if a read page was OK @retval DB_PAGE_CORRUPTED if the checksum fails on a page read @@ -1282,7 +1282,7 @@ buf_page_init_for_read( not match */ UNIV_INTERN dberr_t -buf_page_io_complete(buf_page_t* bpage, bool evict = false) +buf_page_io_complete(buf_page_t* bpage, bool dblwr = false, bool evict = false) MY_ATTRIBUTE((nonnull)); /********************************************************************//** |