Commit 4bc16ac8 authored by unknown's avatar unknown

Fixed maximum file size change. Now it flush buffer after

  switching to new one which prevent deadlock.


mysql-test/r/maria-purge.result:
  Fixed test which use setting maria_checkpoint_interval to force
    checkpoint now.
mysql-test/t/maria-purge.test:
  Fixed test which use setting maria_checkpoint_interval to force
    checkpoint now.
parent ae618cf1
...@@ -9,8 +9,6 @@ STRING_DATA char(255) default NULL ...@@ -9,8 +9,6 @@ STRING_DATA char(255) default NULL
CREATE TABLE t2 ( CREATE TABLE t2 (
STRING_DATA char(255) default NULL STRING_DATA char(255) default NULL
); );
set global maria_log_file_size=16777216;
set global maria_checkpoint_interval=30;
INSERT INTO t1 VALUES ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'); INSERT INTO t1 VALUES ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA');
INSERT INTO t1 VALUES ('DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD'); INSERT INTO t1 VALUES ('DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD');
insert into t2 select * from t1; insert into t2 select * from t1;
...@@ -35,12 +33,17 @@ insert into t2 select * from t1; ...@@ -35,12 +33,17 @@ insert into t2 select * from t1;
insert into t1 select * from t2; insert into t1 select * from t2;
insert into t2 select * from t1; insert into t2 select * from t1;
insert into t1 select * from t2; insert into t1 select * from t2;
set global maria_log_file_size=16777216;
set global maria_checkpoint_interval=30;
SHOW ENGINE maria logs;
Type Name Status
maria master-data/maria_log.00000002 in use
insert into t2 select * from t1; insert into t2 select * from t1;
insert into t1 select * from t2; insert into t1 select * from t2;
set global maria_checkpoint_interval=30; set global maria_checkpoint_interval=30;
SHOW ENGINE maria logs; SHOW ENGINE maria logs;
Type Name Status Type Name Status
maria master-data/maria_log.00000005 in use maria master-data/maria_log.00000004 in use
set global maria_log_file_size=16777216; set global maria_log_file_size=16777216;
select @@global.maria_log_file_size; select @@global.maria_log_file_size;
@@global.maria_log_file_size @@global.maria_log_file_size
...@@ -48,7 +51,7 @@ select @@global.maria_log_file_size; ...@@ -48,7 +51,7 @@ select @@global.maria_log_file_size;
set global maria_checkpoint_interval=30; set global maria_checkpoint_interval=30;
SHOW ENGINE maria logs; SHOW ENGINE maria logs;
Type Name Status Type Name Status
maria master-data/maria_log.00000005 in use maria master-data/maria_log.00000004 in use
set global maria_log_file_size=8388608; set global maria_log_file_size=8388608;
select @@global.maria_log_file_size; select @@global.maria_log_file_size;
@@global.maria_log_file_size @@global.maria_log_file_size
...@@ -58,6 +61,7 @@ insert into t1 select * from t2; ...@@ -58,6 +61,7 @@ insert into t1 select * from t2;
set global maria_checkpoint_interval=30; set global maria_checkpoint_interval=30;
SHOW ENGINE maria logs; SHOW ENGINE maria logs;
Type Name Status Type Name Status
maria master-data/maria_log.00000004 free
maria master-data/maria_log.00000005 free maria master-data/maria_log.00000005 free
maria master-data/maria_log.00000006 free maria master-data/maria_log.00000006 free
maria master-data/maria_log.00000007 free maria master-data/maria_log.00000007 free
......
...@@ -20,8 +20,6 @@ CREATE TABLE t2 ( ...@@ -20,8 +20,6 @@ CREATE TABLE t2 (
STRING_DATA char(255) default NULL STRING_DATA char(255) default NULL
); );
set global maria_log_file_size=16777216;
eval set global maria_checkpoint_interval=$def_checkinterval;
INSERT INTO t1 VALUES ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'); INSERT INTO t1 VALUES ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA');
INSERT INTO t1 VALUES ('DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD'); INSERT INTO t1 VALUES ('DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD');
...@@ -47,6 +45,12 @@ insert into t2 select * from t1; ...@@ -47,6 +45,12 @@ insert into t2 select * from t1;
insert into t1 select * from t2; insert into t1 select * from t2;
insert into t2 select * from t1; insert into t2 select * from t1;
insert into t1 select * from t2; insert into t1 select * from t2;
set global maria_log_file_size=16777216;
eval set global maria_checkpoint_interval=$def_checkinterval;
--replace_regex /Size +[0-9]+ ; .+master-data/master-data/
SHOW ENGINE maria logs;
insert into t2 select * from t1; insert into t2 select * from t1;
insert into t1 select * from t2; insert into t1 select * from t2;
......
...@@ -2113,7 +2113,6 @@ static my_bool translog_buffer_flush(struct st_translog_buffer *buffer) ...@@ -2113,7 +2113,6 @@ static my_bool translog_buffer_flush(struct st_translog_buffer *buffer)
It is possible for single request for flush and destroying the It is possible for single request for flush and destroying the
loghandler. loghandler.
*/ */
translog_buffer_unlock(buffer);
DBUG_RETURN(0); DBUG_RETURN(0);
} }
} }
...@@ -7223,6 +7222,7 @@ uint32 translog_get_file_size() ...@@ -7223,6 +7222,7 @@ uint32 translog_get_file_size()
void translog_set_file_size(uint32 size) void translog_set_file_size(uint32 size)
{ {
struct st_translog_buffer *old_buffer= NULL;
DBUG_ENTER("translog_set_file_size"); DBUG_ENTER("translog_set_file_size");
translog_lock(); translog_lock();
DBUG_PRINT("enter", ("Size: %lu", (ulong) size)); DBUG_PRINT("enter", ("Size: %lu", (ulong) size));
...@@ -7232,11 +7232,17 @@ void translog_set_file_size(uint32 size) ...@@ -7232,11 +7232,17 @@ void translog_set_file_size(uint32 size)
/* if current file longer then finish it*/ /* if current file longer then finish it*/
if (LSN_OFFSET(log_descriptor.horizon) >= log_descriptor.log_file_max_size) if (LSN_OFFSET(log_descriptor.horizon) >= log_descriptor.log_file_max_size)
{ {
struct st_translog_buffer *old_buffer= log_descriptor.bc.buffer; old_buffer= log_descriptor.bc.buffer;
translog_buffer_next(&log_descriptor.horizon, &log_descriptor.bc, 1); translog_buffer_next(&log_descriptor.horizon, &log_descriptor.bc, 1);
translog_buffer_unlock(old_buffer); translog_buffer_unlock(old_buffer);
} }
translog_unlock(); translog_unlock();
if (old_buffer)
{
translog_buffer_lock(old_buffer);
translog_buffer_flush(old_buffer);
translog_buffer_unlock(old_buffer);
}
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment