[MDEV-12528] Run the engine-agnostic test suite on MyRocks, too Created: 2017-04-19  Updated: 2017-06-22  Resolved: 2017-06-22

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - RocksDB, Tests
Fix Version/s: 10.2.7

Type: Task Priority: Major
Reporter: Sergei Petrunia Assignee: Elena Stepanova
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
PartOf
is part of MDEV-9658 Make MyRocks in MariaDB stable Closed
Sprint: 10.2.7-1

 Description   

(Filing so that it is not forgotten)

There is a storage-agnostic test suite in MariaDB somewhere. We should run it with MyRocks.



 Comments   
Comment by Sergei Petrunia [ 2017-04-19 ]

Not sure which one do they mean mysql-test/suite/engines or mysql-test/suite/storage_engine. In either case, how does one get the default mysql-test-run run to include running that suite with MyRocks?

elenst, any idea?

Comment by Elena Stepanova [ 2017-04-19 ]

It's storage_engine. The other suite, engines, is very much non-agnostic, it's only suitable for InnoDB and MyISAM.
storage_engine is potentially suitable for much wider variety of engines, but the cost is that it takes an effort to adjust, and it's tough to maintain.
I'll make the adjustments and will add the suite overlay to 10.2 tree.

Comment by Elena Stepanova [ 2017-05-24 ]

First run (only storage_engine, no subsuites):

Completed: Failed 53/88 tests

Failing test(s): storage_engine-rocksdb.alter_tablespace storage_engine-rocksdb.autoinc_secondary storage_engine-rocksdb.cache_index storage_engine-rocksdb.checksum_table_live storage_engine-rocksdb.create_table storage_engine-rocksdb.delete_low_prio storage_engine-rocksdb.delete_with_keys storage_engine-rocksdb.foreign_keys storage_engine-rocksdb.fulltext_search storage_engine-rocksdb.handler storage_engine-rocksdb.index storage_engine-rocksdb.index_enable_disable storage_engine-rocksdb.index_key_block_size storage_engine-rocksdb.index_primary storage_engine-rocksdb.index_type_btree storage_engine-rocksdb.index_type_hash storage_engine-rocksdb.insert_delayed storage_engine-rocksdb.insert_high_prio storage_engine-rocksdb.insert_low_prio storage_engine-rocksdb.insert_with_keys storage_engine-rocksdb.lock storage_engine-rocksdb.lock_concurrent storage_engine-rocksdb.misc storage_engine-rocksdb.optimize_table storage_engine-rocksdb.repair_table storage_engine-rocksdb.replace storage_engine-rocksdb.select_high_prio storage_engine-rocksdb.show_engine storage_engine-rocksdb.show_table_status storage_engine-rocksdb.tbl_opt_data_dir storage_engine-rocksdb.tbl_opt_index_dir storage_engine-rocksdb.tbl_opt_insert_method storage_engine-rocksdb.tbl_opt_union storage_engine-rocksdb.tbl_temporary storage_engine-rocksdb.truncate_table storage_engine-rocksdb.type_binary_indexes storage_engine-rocksdb.type_bit_indexes storage_engine-rocksdb.type_blob_indexes storage_engine-rocksdb.type_char_indexes storage_engine-rocksdb.type_date_time_indexes storage_engine-rocksdb.type_enum_indexes storage_engine-rocksdb.type_fixed_indexes storage_engine-rocksdb.type_float_indexes storage_engine-rocksdb.type_int_indexes storage_engine-rocksdb.type_set_indexes storage_engine-rocksdb.type_spatial storage_engine-rocksdb.type_spatial_indexes storage_engine-rocksdb.type_text_indexes storage_engine-rocksdb.update_ignore storage_engine-rocksdb.update_low_prio storage_engine-rocksdb.update_multi storage_engine-rocksdb.update_with_keys storage_engine-rocksdb.vcol

Lots of tests fail with "Unsupported collation".

Comment by Elena Stepanova [ 2017-06-22 ]

Got it running (all 3 suites together):

The servers were restarted 2 times
Spent 118.614 of 135 seconds executing testcases
 
Completed: All 77 tests were successful.

The following tests have been disabled on given reasons:

storage_engine suite

alter_tablespace     : Not supported
autoinc_secondary    : Not supported
create_table         : MDEV-12914 - Engine for temporary tables which are implicitly created as RocksDB is substituted silently
delete_low_prio      : Not supported
foreign_keys         : Not supported
fulltext_search      : Not supported
handler              : Not supported
index_enable_disable : Not supported
insert_delayed       : Not supported
insert_high_prio     : Not supported
insert_low_prio      : Not supported
lock                 : MDEV-13148 - LOCK TABLE on RocksDB table fails with a bogus error message
lock_concurrent      : MDEV-13148 - LOCK TABLE on RocksDB table fails with a bogus error message
optimize_table       : MDEV-13148 - LOCK TABLE on RocksDB table fails with a bogus error message
repair_table         : MDEV-13148 - LOCK TABLE on RocksDB table fails with a bogus error message
select_high_prio     : Not supported
show_table_status    : MDEV-13152 - Indeterministic row number in SHOW TABLE STATUS on RocksDB table
tbl_opt_data_dir     : Not supported
tbl_opt_index_dir    : Not supported
type_spatial         : Not supported
type_spatial_indexes : Not supported
update_low_prio      : Not supported
update_ignore        : MDEV-13151 - Indeterministic results of multi-table update on RocksDB tables
update_multi         : MDEV-13151 - Indeterministic results of multi-table update on RocksDB tables
vcol                 : Not supported

storage_engine/parts subsuite

alter_table    : MDEV-13153 - Assertion `global_status_var.global_memory_used == 0'
optimize_table : MDEV-13148 - LOCK TABLE on RocksDB table fails with a bogus error message
repair_table   : MDEV-13148 - LOCK TABLE on RocksDB table fails with a bogus error message

storage_engine/trx subsuite

cons_snapshot_serializable : Not supported
level_read_uncommitted     : Not supported
level_serializable         : Not supported
xa_recovery                : MDEV-13155 - XA recovery not supported for RocksDB

Comment by Elena Stepanova [ 2017-06-22 ]

Overview of rdiffs and overlays for include files:

  • define_engine.inc:
    just engine name, no other changes
  • cleanup_engine.inc:
    added restart after each test, whenever .rocksdb folder is not empty. It is to work around not being able to clean up column families
  • mask_engine.inc:
    extra substitution / COLLATE[= ]latin1_bin//
  • suite.opt:
    --ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --binlog_format=ROW --collation-server=latin1_bin
  • parts/suite.opt:
    --ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --binlog_format=ROW
  • trx/suite.opt:
    --ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --binlog_format=ROW
  • cache_index.rdiff:
    the storage engine does not support assign_to_keycache/preload_keys
  • checksum_table_live.rdiff, parts/checksum_table.rdiff:
    CHECKSUM ... QUICK} returns NULL
  • index.rdiff, index_type_btree.rdiff:
    LSMTREE instead of BTREE, Unique index support is disabled when the table has no primary key
  • index_type_hash.rdiff:
    LSMTREE instead of HASH, Unique index support is disabled when the table has no primary key
  • misc.rdiff:
    Unknown storage engine 'InnoDB' on a query from INFORMATION_SCHEMA
  • parts/create_table.rdiff:
    different EXPLAIN PARTITIONS output
  • show_engine.rdiff:
    SHOW ENGINE RocksDB STATUS output
  • show_table_status.rdiff:
    different collation
  • tbl_opt_insert_method.rdiff, tbl_opt_union.rdiff:
    option is ignored
  • tbl_temporary.rdiff:
    Table storage engine 'ROCKSDB' does not support the create option 'TEMPORARY'
  • truncate_table.rdiff:
    HANDLER is not supported
  • trx/delete.rdiff, trx/insert.rdiff, trx/update.rdiff:
    MyRocks currently does not support ROLLBACK TO SAVEPOINT if modifying rows
  • trx/level_read_committed.rdiff:
    Only REPEATABLE READ isolation level is supported for START TRANSACTION WITH CONSISTENT SNAPSHOT in RocksDB Storage Engine
  • trx/level_repeatable_read.rdiff:
    no lock wait timeout on concurrent insert
  • type_binary_indexes.rdiff:
    Unique index support is disabled when the table has no primary key
  • index_key_block_size.rdiff, insert_with_keys.rdiff, replace.rdiff, type_bit_indexes.rdiff, type_blob_indexes.rdiff, type_char_indexes.rdiff, type_date_time_indexes.rdiff, type_enum_indexes.rdiff, type_fixed_indexes.rdiff, type_float_indexes.rdiff, type_int_indexes.rdiff, type_set_indexes.rdiff, type_text_indexes.rdiff, update_with_keys.rdiff:
    Unique index support is disabled when the table has no primary key
  • type_enum.rdiff, type_set.rdiff:
    different result apparently due to the binary collation
Generated at Thu Feb 08 07:58:25 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.