Added a variable for current event being processed after a transaction is committed.

This commit is contained in:
Markus Makela
2015-10-23 12:33:51 +03:00
parent a8f866d372
commit 40ffe21dd8
5 changed files with 99 additions and 38 deletions

View File

@ -199,6 +199,7 @@ unsigned char magic[] = BINLOG_MAGIC;
write(fd, magic, 4);
router->current_pos = 4; /* Initial position after the magic number */
router->binlog_position = 4; /* Initial position after the magic number */
router->current_safe_event = 4;
}
@ -852,6 +853,7 @@ double average_bytes = 0;
router->current_pos = 4;
router->binlog_position = 4;
router->current_safe_event = 4;
while (1){
@ -934,6 +936,7 @@ double average_bytes = 0;
if (pending_transaction) {
router->binlog_position = last_known_commit;
router->current_safe_event = last_known_commit;
router->current_pos = pos;
router->pending_transaction = 1;
pending_transaction = 0;
@ -948,6 +951,7 @@ double average_bytes = 0;
/* any error */
if (n != 0) {
router->binlog_position = last_known_commit;
router->current_safe_event = last_known_commit;
router->current_pos = pos;
LOGIF(LE, (skygw_log_write_flush(LOGFILE_ERROR,
@ -967,6 +971,7 @@ double average_bytes = 0;
return 1;
} else {
router->binlog_position = pos;
router->current_safe_event = pos;
router->current_pos = pos;
return 0;
@ -1009,6 +1014,7 @@ double average_bytes = 0;
if (event_error) {
router->binlog_position = last_known_commit;
router->current_safe_event = last_known_commit;
router->current_pos = pos;
LOGIF(LE, (skygw_log_write_flush(LOGFILE_ERROR,
@ -1039,6 +1045,7 @@ double average_bytes = 0;
hdr.event_size, pos)));
router->binlog_position = last_known_commit;
router->current_safe_event = last_known_commit;
router->current_pos = pos;
LOGIF(LE, (skygw_log_write_flush(LOGFILE_ERROR,
@ -1067,6 +1074,7 @@ double average_bytes = 0;
hdr.event_size, pos)));
router->binlog_position = last_known_commit;
router->current_safe_event = last_known_commit;
router->current_pos = pos;
LOGIF(LE, (skygw_log_write_flush(LOGFILE_ERROR,
@ -1123,6 +1131,7 @@ double average_bytes = 0;
gwbuf_free(result);
router->binlog_position = last_known_commit;
router->current_safe_event = last_known_commit;
router->current_pos = pos;
LOGIF(LE, (skygw_log_write_flush(LOGFILE_ERROR,
@ -1367,6 +1376,7 @@ double average_bytes = 0;
pos)));
router->binlog_position = last_known_commit;
router->current_safe_event = last_known_commit;
router->current_pos = pos;
LOGIF(LE, (skygw_log_write_flush(LOGFILE_ERROR,
@ -1396,6 +1406,7 @@ double average_bytes = 0;
pos)));
router->binlog_position = last_known_commit;
router->current_safe_event = last_known_commit;
router->current_pos = pos;
LOGIF(LE, (skygw_log_write_flush(LOGFILE_ERROR,
@ -1445,6 +1456,7 @@ double average_bytes = 0;
last_known_commit)));
router->binlog_position = last_known_commit;
router->current_safe_event = last_known_commit;
router->current_pos = pos;
router->pending_transaction = 1;
@ -1456,6 +1468,7 @@ double average_bytes = 0;
return 0;
} else {
router->binlog_position = pos;
router->current_safe_event = pos;
router->current_pos = pos;
return 0;