crash_test: cover concurrent memtable insert in default crash test
Summary: Default crash test uses prefix hash memtable, which is not compatible to concurrent memtable. Allow prefix test run with skip list and use skip list memtable when concurrent insert is used. Test Plan: Run "python -u tools/db_crashtest.py whitebox" and watch sometimes skip list is used. Reviewers: anthony, yhchiang, kradhakrishnan, andrewkr, IslamAbdelRahman Reviewed By: IslamAbdelRahman Subscribers: leveldb, dhruba Differential Revision: https://reviews.facebook.net/D53907
This commit is contained in:
parent
a76e9093f0
commit
2608219cc9
@ -134,6 +134,7 @@ def finalize_and_sanitize(src_params):
|
||||
# --allow_concurrent_memtable_write with --filter_deletes is not supported.
|
||||
if dest_params.get("allow_concurrent_memtable_write", 1) == 1:
|
||||
dest_params["filter_deletes"] = 0
|
||||
dest_params["memtablerep"] = "skip_list"
|
||||
return dest_params
|
||||
|
||||
|
||||
|
@ -2008,11 +2008,17 @@ class StressTest {
|
||||
FLAGS_allow_concurrent_memtable_write;
|
||||
options_.enable_write_thread_adaptive_yield =
|
||||
FLAGS_enable_write_thread_adaptive_yield;
|
||||
if ((FLAGS_prefix_size == 0) == (FLAGS_rep_factory == kHashSkipList)) {
|
||||
|
||||
if (FLAGS_prefix_size == 0 && FLAGS_rep_factory == kHashSkipList) {
|
||||
fprintf(stderr,
|
||||
"prefix_size should be non-zero iff memtablerep == prefix_hash\n");
|
||||
"prefeix_size cannot be zero if memtablerep == prefix_hash\n");
|
||||
exit(1);
|
||||
}
|
||||
if (FLAGS_prefix_size != 0 && FLAGS_rep_factory != kHashSkipList) {
|
||||
fprintf(stderr,
|
||||
"WARNING: prefix_size is non-zero but "
|
||||
"memtablerep != prefix_hash\n");
|
||||
}
|
||||
switch (FLAGS_rep_factory) {
|
||||
case kSkipList:
|
||||
// no need to do anything
|
||||
|
Loading…
Reference in New Issue
Block a user