/***************************************************************************** Copyright (c) 2011-2012, Percona Inc. All Rights Reserved. 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 Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA *****************************************************************************/ /**************************************************//** @file include/log0online.h Online database log parsing for changed page tracking *******************************************************/ #ifndef log0online_h #define log0online_h #include "univ.i" #include "os0file.h" /** Single bitmap file information */ typedef struct log_online_bitmap_file_struct log_online_bitmap_file_t; /** A set of bitmap files containing some LSN range */ typedef struct log_online_bitmap_file_range_struct log_online_bitmap_file_range_t; /** An iterator over changed page info */ typedef struct log_bitmap_iterator_struct log_bitmap_iterator_t; /** Initialize the constant part of the log tracking subsystem */ UNIV_INTERN void log_online_init(void); /** Initialize the dynamic part of the log tracking subsystem */ UNIV_INTERN void log_online_read_init(void); /** Shut down the dynamic part of the log tracking subsystem */ UNIV_INTERN void log_online_read_shutdown(void); /** Shut down the constant part of the log tracking subsystem */ UNIV_INTERN void log_online_shutdown(void); /*********************************************************************//** Reads and parses the redo log up to last checkpoint LSN to build the changed page bitmap which is then written to disk. @return TRUE if log tracking succeeded, FALSE if bitmap write I/O error */ UNIV_INTERN ibool log_online_follow_redo_log(void); /*=============================*/ /************************************************************//** Delete all the bitmap files for data less than the specified LSN. If called with lsn == 0 (i.e. set by RESET request) or IB_ULONGLONG_MAX, restart the bitmap file sequence, otherwise continue it. @return FALSE to indicate success, TRUE for failure. */ UNIV_INTERN ibool log_online_purge_changed_page_bitmaps( /*==================================*/ ib_uint64_t lsn); /*!