summaryrefslogtreecommitdiffstats
path: root/storage/innobase/include/fil0fil.h
diff options
context:
space:
mode:
Diffstat (limited to 'storage/innobase/include/fil0fil.h')
-rw-r--r--storage/innobase/include/fil0fil.h23
1 files changed, 9 insertions, 14 deletions
diff --git a/storage/innobase/include/fil0fil.h b/storage/innobase/include/fil0fil.h
index 6f58e3c1..cdc32515 100644
--- a/storage/innobase/include/fil0fil.h
+++ b/storage/innobase/include/fil0fil.h
@@ -359,8 +359,6 @@ struct fil_space_t final
lsn_t max_lsn;
/** tablespace identifier */
uint32_t id;
- /** whether undo tablespace truncation is in progress */
- bool is_being_truncated;
fil_type_t purpose;/*!< purpose */
UT_LIST_BASE_NODE_T(fil_node_t) chain;
/*!< base node for the file chain */
@@ -440,6 +438,8 @@ private:
/** LSN of freeing last page; protected by freed_range_mutex */
lsn_t last_freed_lsn;
+ /** LSN of undo tablespace creation or 0; protected by latch */
+ lsn_t create_lsn;
public:
/** @return whether doublewrite buffering is needed */
inline bool use_doublewrite() const;
@@ -447,6 +447,12 @@ public:
/** @return whether a page has been freed */
inline bool is_freed(uint32_t page);
+ /** Set create_lsn. */
+ inline void set_create_lsn(lsn_t lsn);
+
+ /** @return the latest tablespace rebuild LSN, or 0 */
+ lsn_t get_create_lsn() const { return create_lsn; }
+
/** Apply freed_ranges to the file.
@param writable whether the file is writable
@return number of pages written or hole-punched */
@@ -524,9 +530,6 @@ public:
/** Note that operations on the tablespace must stop. */
inline void set_stopping();
- /** Note that operations on the tablespace can resume after truncation */
- inline void clear_stopping();
-
/** Drop the tablespace and wait for any pending operations to cease
@param id tablespace identifier
@param detached_handle pointer to file to be closed later, or nullptr
@@ -1555,14 +1558,6 @@ inline void fil_space_t::set_stopping()
#endif
}
-inline void fil_space_t::clear_stopping()
-{
- mysql_mutex_assert_owner(&fil_system.mutex);
- static_assert(STOPPING_WRITES == 1U << 30, "compatibility");
- ut_d(auto n=) n_pending.fetch_sub(STOPPING_WRITES, std::memory_order_relaxed);
- ut_ad((n & STOPPING) == STOPPING_WRITES);
-}
-
/** Flush pending writes from the file system cache to the file. */
template<bool have_reference> inline void fil_space_t::flush()
{
@@ -1802,7 +1797,7 @@ bool fil_comp_algo_loaded(ulint comp_algo);
and write out FILE_MODIFY if needed, and write FILE_CHECKPOINT.
@param lsn checkpoint LSN
@return current LSN */
-lsn_t fil_names_clear(lsn_t lsn);
+ATTRIBUTE_COLD lsn_t fil_names_clear(lsn_t lsn);
#ifdef UNIV_ENABLE_UNIT_TEST_MAKE_FILEPATH
void test_make_filepath();