summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonty <monty@mariadb.org>2017-06-09 16:30:58 +0300
committerSergei Golubchik <serg@mariadb.org>2017-08-24 01:04:35 +0200
commitb77bb43f60fdb3e407b06dfa5ea9559b9347d44d (patch)
tree4c4ea6ddffcabb0e5ae41ffd8128147e3c39b567
parent44676ed5b115c84a8e2023f51ffd38e6240461db (diff)
downloadmariadb-git-b77bb43f60fdb3e407b06dfa5ea9559b9347d44d.tar.gz
Use microsecond_interval_timer() instead of my_time() in replicaiton
- Use microsecond_interval_timer() to calculate time for applying row events. (Faster execution) - Removed return value for set_row_stmt_start_timestamp() as it was never used.
-rw-r--r--sql/log_event.cc9
-rw-r--r--sql/rpl_rli.h10
2 files changed, 8 insertions, 11 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc
index f4518b6ab95..5029145c3fd 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -12963,13 +12963,13 @@ void issue_long_find_row_warning(Log_event_type type,
if ((global_system_variables.log_warnings > 1 &&
!rgi->is_long_find_row_note_printed()))
{
- time_t now= my_time(0);
- time_t stmt_ts= rgi->get_row_stmt_start_timestamp();
+ ulonglong now= microsecond_interval_timer();
+ ulonglong stmt_ts= rgi->get_row_stmt_start_timestamp();
DBUG_EXECUTE_IF("inject_long_find_row_note",
- stmt_ts-=(LONG_FIND_ROW_THRESHOLD*2););
+ stmt_ts-=(LONG_FIND_ROW_THRESHOLD*2*HRTIME_RESOLUTION););
- long delta= (long) (now - stmt_ts);
+ longlong delta= (now - stmt_ts)/HRTIME_RESOLUTION;
if (delta > LONG_FIND_ROW_THRESHOLD)
{
@@ -13375,7 +13375,6 @@ int
Delete_rows_log_event::do_after_row_operations(const Slave_reporting_capability *const,
int error)
{
- /*error= ToDo:find out what this should really be, this triggers close_scan in nbd, returning error?*/
m_table->file->ha_index_or_rnd_end();
my_free(m_key);
m_key= NULL;
diff --git a/sql/rpl_rli.h b/sql/rpl_rli.h
index e293d681034..271a729954f 100644
--- a/sql/rpl_rli.h
+++ b/sql/rpl_rli.h
@@ -744,7 +744,7 @@ struct rpl_group_info
Runtime state for printing a note when slave is taking
too long while processing a row event.
*/
- time_t row_stmt_start_timestamp;
+ longlong row_stmt_start_timestamp;
bool long_find_row_note_printed;
/* Needs room for "Gtid D-S-N\x00". */
char gtid_info_buf[5+10+1+10+1+20+1];
@@ -890,17 +890,15 @@ struct rpl_group_info
char *gtid_info();
void unmark_start_commit();
- time_t get_row_stmt_start_timestamp()
+ longlong get_row_stmt_start_timestamp()
{
return row_stmt_start_timestamp;
}
- time_t set_row_stmt_start_timestamp()
+ void set_row_stmt_start_timestamp()
{
if (row_stmt_start_timestamp == 0)
- row_stmt_start_timestamp= my_time(0);
-
- return row_stmt_start_timestamp;
+ row_stmt_start_timestamp= microsecond_interval_timer();
}
void reset_row_stmt_start_timestamp()