mirror of
https://github.com/MariaDB/server.git
synced 2026-05-16 03:47:17 +02:00
Merge branch '10.2' into 10.3
This commit is contained in:
commit
57e0da50bb
436 changed files with 9692 additions and 196647 deletions
|
|
@ -3753,12 +3753,13 @@ static int rocksdb_commit(handlerton* hton, THD* thd, bool commit_tx)
|
|||
|
||||
// First, commit without syncing. This establishes the commit order
|
||||
tx->set_sync(false);
|
||||
bool tx_had_writes = tx->get_write_count()? true : false ;
|
||||
if (tx->commit()) {
|
||||
DBUG_RETURN(HA_ERR_ROCKSDB_COMMIT_FAILED);
|
||||
}
|
||||
thd_wakeup_subsequent_commits(thd, 0);
|
||||
|
||||
if (rocksdb_flush_log_at_trx_commit == FLUSH_LOG_SYNC)
|
||||
if (tx_had_writes && rocksdb_flush_log_at_trx_commit == FLUSH_LOG_SYNC)
|
||||
{
|
||||
rocksdb::Status s= rdb->FlushWAL(true);
|
||||
if (!s.ok())
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ void rdb_handle_io_error(const rocksdb::Status status,
|
|||
#if defined(__clang__)
|
||||
MY_ATTRIBUTE((optnone));
|
||||
#else
|
||||
MY_ATTRIBUTE((optimize("O0")));
|
||||
MY_ATTRIBUTE((noinline,noclone));
|
||||
#endif
|
||||
|
||||
int rdb_normalize_tablename(const std::string &tablename, std::string *str)
|
||||
|
|
|
|||
|
|
@ -14,16 +14,16 @@ SET GLOBAL rocksdb_flush_log_at_trx_commit=1;
|
|||
select variable_value into @b1 from information_schema.global_status where variable_name='Binlog_commits';
|
||||
select variable_value into @b2 from information_schema.global_status where variable_name='Binlog_group_commits';
|
||||
select variable_value into @b3 from information_schema.global_status where variable_name='Rocksdb_wal_synced';
|
||||
select IF(variable_value - @b1 = 1000, 'OK', variable_value - @b1 = 1000) as Binlog_commits
|
||||
select IF(variable_value - @b1 = 1000, 'OK', variable_value - @b1) as Binlog_commits
|
||||
from information_schema.global_status where variable_name='Binlog_commits';
|
||||
Binlog_commits
|
||||
OK
|
||||
select IF(variable_value - @b2 = 1000, 'OK', variable_value - @b2 = 1000) as Binlog_group_commits
|
||||
select IF(variable_value - @b2 = 1000, 'OK', variable_value - @b2) as Binlog_group_commits
|
||||
from information_schema.global_status where variable_name='Binlog_group_commits';
|
||||
Binlog_group_commits
|
||||
OK
|
||||
# Prepare operations sync, commits don't. We expect slightly more than 1K syncs:
|
||||
select IF(variable_value - @b3 between 1000 and 1500, 'OK', variable_value - @b3 between 1000 and 1500) as Rocksdb_wal_synced
|
||||
select IF(variable_value - @b3 between 1000 and 1500, 'OK', variable_value - @b3) as Rocksdb_wal_synced
|
||||
from information_schema.global_status where variable_name='Rocksdb_wal_synced';
|
||||
Rocksdb_wal_synced
|
||||
OK
|
||||
|
|
@ -33,17 +33,17 @@ OK
|
|||
select variable_value into @b1 from information_schema.global_status where variable_name='Binlog_commits';
|
||||
select variable_value into @b2 from information_schema.global_status where variable_name='Binlog_group_commits';
|
||||
select variable_value into @b3 from information_schema.global_status where variable_name='Rocksdb_wal_synced';
|
||||
select IF(variable_value - @b1 = 10000, 'OK', variable_value - @b1 = 10000) as Binlog_commits
|
||||
select IF(variable_value - @b1 = 10000, 'OK', variable_value - @b1) as Binlog_commits
|
||||
from information_schema.global_status where variable_name='Binlog_commits';
|
||||
Binlog_commits
|
||||
OK
|
||||
select IF(variable_value - @b2 between 100 and 5000, 'OK', variable_value - @b2 between 100 and 5000) as Binlog_group_commits
|
||||
select IF(variable_value - @b2 between 100 and 5000, 'OK', variable_value - @b2) as Binlog_group_commits
|
||||
from information_schema.global_status where variable_name='Binlog_group_commits';
|
||||
Binlog_group_commits
|
||||
OK
|
||||
select IF(variable_value - @b3 between 1 and 9000, 'OK', variable_value - @b3 between 1 and 9000)
|
||||
select IF(variable_value - @b3 between 1 and 9000, 'OK', variable_value - @b3)
|
||||
from information_schema.global_status where variable_name='Rocksdb_wal_synced';
|
||||
IF(variable_value - @b3 between 1 and 9000, 'OK', variable_value - @b3 between 1 and 9000)
|
||||
IF(variable_value - @b3 between 1 and 9000, 'OK', variable_value - @b3)
|
||||
OK
|
||||
##
|
||||
# 2PC enabled, MyRocks durability disabled, single thread
|
||||
|
|
@ -53,17 +53,17 @@ SET GLOBAL rocksdb_flush_log_at_trx_commit=0;
|
|||
select variable_value into @b1 from information_schema.global_status where variable_name='Binlog_commits';
|
||||
select variable_value into @b2 from information_schema.global_status where variable_name='Binlog_group_commits';
|
||||
select variable_value into @b3 from information_schema.global_status where variable_name='Rocksdb_wal_synced';
|
||||
select IF(variable_value - @b1 = 1000, 'OK', variable_value - @b1 = 1000) as Binlog_commits
|
||||
select IF(variable_value - @b1 = 1000, 'OK', variable_value - @b1) as Binlog_commits
|
||||
from information_schema.global_status where variable_name='Binlog_commits';
|
||||
Binlog_commits
|
||||
OK
|
||||
select IF(variable_value - @b2 = 1000, 'OK', variable_value - @b2 = 1000) as Binlog_group_commits
|
||||
select IF(variable_value - @b2 = 1000, 'OK', variable_value - @b2) as Binlog_group_commits
|
||||
from information_schema.global_status where variable_name='Binlog_group_commits';
|
||||
Binlog_group_commits
|
||||
OK
|
||||
select IF(variable_value - @b3 < 10, 'OK', variable_value - @b3 < 10)
|
||||
select IF(variable_value - @b3 < 10, 'OK', variable_value - @b3)
|
||||
from information_schema.global_status where variable_name='Rocksdb_wal_synced';
|
||||
IF(variable_value - @b3 < 10, 'OK', variable_value - @b3 < 10)
|
||||
IF(variable_value - @b3 < 10, 'OK', variable_value - @b3)
|
||||
OK
|
||||
##
|
||||
# 2PC enabled, MyRocks durability disabled, concurrent workload
|
||||
|
|
@ -71,17 +71,17 @@ OK
|
|||
select variable_value into @b1 from information_schema.global_status where variable_name='Binlog_commits';
|
||||
select variable_value into @b2 from information_schema.global_status where variable_name='Binlog_group_commits';
|
||||
select variable_value into @b3 from information_schema.global_status where variable_name='Rocksdb_wal_synced';
|
||||
select IF(variable_value - @b1 = 10000, 'OK', variable_value - @b1 = 10000) as Binlog_commits
|
||||
select IF(variable_value - @b1 = 10000, 'OK', variable_value - @b1) as Binlog_commits
|
||||
from information_schema.global_status where variable_name='Binlog_commits';
|
||||
Binlog_commits
|
||||
OK
|
||||
select IF(variable_value - @b2 < 8000, 'OK', variable_value - @b2 < 8000) as Binlog_group_commits
|
||||
select IF(variable_value - @b2 < 8000, 'OK', variable_value - @b2) as Binlog_group_commits
|
||||
from information_schema.global_status where variable_name='Binlog_group_commits';
|
||||
Binlog_group_commits
|
||||
OK
|
||||
select IF(variable_value - @b3 < 10, 'OK', variable_value - @b3 < 10)
|
||||
select IF(variable_value - @b3 < 10, 'OK', variable_value - @b3)
|
||||
from information_schema.global_status where variable_name='Rocksdb_wal_synced';
|
||||
IF(variable_value - @b3 < 10, 'OK', variable_value - @b3 < 10)
|
||||
IF(variable_value - @b3 < 10, 'OK', variable_value - @b3)
|
||||
OK
|
||||
SET GLOBAL rocksdb_enable_2pc= @save_rocksdb_enable_2pc;
|
||||
SET GLOBAL rocksdb_flush_log_at_trx_commit= @save_rocksdb_flush_log_at_trx_commit;
|
||||
|
|
|
|||
|
|
@ -31,12 +31,12 @@ select variable_value into @b1 from information_schema.global_status where varia
|
|||
select variable_value into @b2 from information_schema.global_status where variable_name='Binlog_group_commits';
|
||||
select variable_value into @b3 from information_schema.global_status where variable_name='Rocksdb_wal_synced';
|
||||
--exec $MYSQL_SLAP --silent --concurrency=1 --number-of-queries=1000 --query="INSERT INTO t1 (id, value) VALUES(NULL, 1)"
|
||||
select IF(variable_value - @b1 = 1000, 'OK', variable_value - @b1 = 1000) as Binlog_commits
|
||||
select IF(variable_value - @b1 = 1000, 'OK', variable_value - @b1) as Binlog_commits
|
||||
from information_schema.global_status where variable_name='Binlog_commits';
|
||||
select IF(variable_value - @b2 = 1000, 'OK', variable_value - @b2 = 1000) as Binlog_group_commits
|
||||
select IF(variable_value - @b2 = 1000, 'OK', variable_value - @b2) as Binlog_group_commits
|
||||
from information_schema.global_status where variable_name='Binlog_group_commits';
|
||||
--echo # Prepare operations sync, commits don't. We expect slightly more than 1K syncs:
|
||||
select IF(variable_value - @b3 between 1000 and 1500, 'OK', variable_value - @b3 between 1000 and 1500) as Rocksdb_wal_synced
|
||||
select IF(variable_value - @b3 between 1000 and 1500, 'OK', variable_value - @b3) as Rocksdb_wal_synced
|
||||
from information_schema.global_status where variable_name='Rocksdb_wal_synced';
|
||||
|
||||
--echo ##
|
||||
|
|
@ -48,11 +48,11 @@ select variable_value into @b3 from information_schema.global_status where varia
|
|||
|
||||
--exec $MYSQL_SLAP --silent --concurrency=50 --number-of-queries=10000 --query="INSERT INTO t1 (id, value) VALUES(NULL, 1)"
|
||||
|
||||
select IF(variable_value - @b1 = 10000, 'OK', variable_value - @b1 = 10000) as Binlog_commits
|
||||
select IF(variable_value - @b1 = 10000, 'OK', variable_value - @b1) as Binlog_commits
|
||||
from information_schema.global_status where variable_name='Binlog_commits';
|
||||
select IF(variable_value - @b2 between 100 and 5000, 'OK', variable_value - @b2 between 100 and 5000) as Binlog_group_commits
|
||||
select IF(variable_value - @b2 between 100 and 5000, 'OK', variable_value - @b2) as Binlog_group_commits
|
||||
from information_schema.global_status where variable_name='Binlog_group_commits';
|
||||
select IF(variable_value - @b3 between 1 and 9000, 'OK', variable_value - @b3 between 1 and 9000)
|
||||
select IF(variable_value - @b3 between 1 and 9000, 'OK', variable_value - @b3)
|
||||
from information_schema.global_status where variable_name='Rocksdb_wal_synced';
|
||||
|
||||
--echo ##
|
||||
|
|
@ -66,11 +66,11 @@ select variable_value into @b2 from information_schema.global_status where varia
|
|||
select variable_value into @b3 from information_schema.global_status where variable_name='Rocksdb_wal_synced';
|
||||
--exec $MYSQL_SLAP --silent --concurrency=1 --number-of-queries=1000 --query="INSERT INTO t1 (id, value) VALUES(NULL, 1)"
|
||||
|
||||
select IF(variable_value - @b1 = 1000, 'OK', variable_value - @b1 = 1000) as Binlog_commits
|
||||
select IF(variable_value - @b1 = 1000, 'OK', variable_value - @b1) as Binlog_commits
|
||||
from information_schema.global_status where variable_name='Binlog_commits';
|
||||
select IF(variable_value - @b2 = 1000, 'OK', variable_value - @b2 = 1000) as Binlog_group_commits
|
||||
select IF(variable_value - @b2 = 1000, 'OK', variable_value - @b2) as Binlog_group_commits
|
||||
from information_schema.global_status where variable_name='Binlog_group_commits';
|
||||
select IF(variable_value - @b3 < 10, 'OK', variable_value - @b3 < 10)
|
||||
select IF(variable_value - @b3 < 10, 'OK', variable_value - @b3)
|
||||
from information_schema.global_status where variable_name='Rocksdb_wal_synced';
|
||||
|
||||
--echo ##
|
||||
|
|
@ -83,11 +83,11 @@ select variable_value into @b3 from information_schema.global_status where varia
|
|||
|
||||
--exec $MYSQL_SLAP --silent --concurrency=50 --number-of-queries=10000 --query="INSERT INTO t1 (id, value) VALUES(NULL, 1)"
|
||||
|
||||
select IF(variable_value - @b1 = 10000, 'OK', variable_value - @b1 = 10000) as Binlog_commits
|
||||
select IF(variable_value - @b1 = 10000, 'OK', variable_value - @b1) as Binlog_commits
|
||||
from information_schema.global_status where variable_name='Binlog_commits';
|
||||
select IF(variable_value - @b2 < 8000, 'OK', variable_value - @b2 < 8000) as Binlog_group_commits
|
||||
select IF(variable_value - @b2 < 8000, 'OK', variable_value - @b2) as Binlog_group_commits
|
||||
from information_schema.global_status where variable_name='Binlog_group_commits';
|
||||
select IF(variable_value - @b3 < 10, 'OK', variable_value - @b3 < 10)
|
||||
select IF(variable_value - @b3 < 10, 'OK', variable_value - @b3)
|
||||
from information_schema.global_status where variable_name='Rocksdb_wal_synced';
|
||||
|
||||
##
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue