Followup to 1.4.2 write stall fix - sadly, the previous version was not working correctly :)
Test / buildenv (push) Successful in 11s
Details
Test / build (push) Successful in 2m45s
Details
Test / test_cas (push) Successful in 12s
Details
Test / make_test (push) Successful in 38s
Details
Test / test_change_pg_count (push) Successful in 38s
Details
Test / test_change_pg_size (push) Successful in 10s
Details
Test / test_change_pg_count_ec (push) Successful in 35s
Details
Test / test_create_nomaxid (push) Successful in 9s
Details
Test / test_interrupted_rebalance_imm (push) Successful in 1m22s
Details
Test / test_add_osd (push) Successful in 2m37s
Details
Test / test_interrupted_rebalance_ec (push) Successful in 1m25s
Details
Test / test_failure_domain (push) Successful in 10s
Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 1m23s
Details
Test / test_snapshot (push) Successful in 20s
Details
Test / test_minsize_1 (push) Successful in 15s
Details
Test / test_snapshot_ec (push) Successful in 23s
Details
Test / test_rm (push) Successful in 14s
Details
Test / test_move_reappear (push) Successful in 19s
Details
Test / test_snapshot_chain (push) Successful in 1m21s
Details
Test / test_snapshot_down (push) Successful in 23s
Details
Test / test_snapshot_chain_ec (push) Successful in 1m50s
Details
Test / test_snapshot_down_ec (push) Successful in 22s
Details
Test / test_splitbrain (push) Successful in 16s
Details
Test / test_etcd_fail (push) Successful in 6m42s
Details
Test / test_rebalance_verify_imm (push) Successful in 2m19s
Details
Test / test_rebalance_verify (push) Successful in 4m7s
Details
Test / test_switch_primary (push) Successful in 36s
Details
Test / test_write (push) Successful in 35s
Details
Test / test_rebalance_verify_ec (push) Successful in 4m6s
Details
Test / test_write_no_same (push) Successful in 22s
Details
Test / test_write_xor (push) Successful in 1m34s
Details
Test / test_rebalance_verify_ec_imm (push) Successful in 6m7s
Details
Test / test_heal_csum_32k_dmj (push) Successful in 4m7s
Details
Test / test_heal_csum_32k_dj (push) Successful in 4m59s
Details
Test / test_heal_csum_32k (push) Successful in 5m4s
Details
Test / test_heal_csum_4k_dmj (push) Successful in 5m59s
Details
Test / test_scrub (push) Successful in 1m9s
Details
Test / test_scrub_zero_osd_2 (push) Successful in 37s
Details
Test / test_scrub_xor (push) Successful in 52s
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 1m5s
Details
Test / test_heal_csum_4k_dj (push) Successful in 5m12s
Details
Test / test_heal_csum_4k (push) Successful in 5m1s
Details
Test / test_scrub_pg_size_3 (push) Successful in 1m48s
Details
Test / test_scrub_ec (push) Successful in 19s
Details
Test / test_interrupted_rebalance (push) Successful in 1m38s
Details
Test / test_heal_pg_size_2 (push) Successful in 3m20s
Details
Test / test_heal_ec (push) Successful in 3m3s
Details
Test / buildenv (push) Successful in 11s
Details
Test / build (push) Successful in 2m45s
Details
Test / test_cas (push) Successful in 12s
Details
Test / make_test (push) Successful in 38s
Details
Test / test_change_pg_count (push) Successful in 38s
Details
Test / test_change_pg_size (push) Successful in 10s
Details
Test / test_change_pg_count_ec (push) Successful in 35s
Details
Test / test_create_nomaxid (push) Successful in 9s
Details
Test / test_interrupted_rebalance_imm (push) Successful in 1m22s
Details
Test / test_add_osd (push) Successful in 2m37s
Details
Test / test_interrupted_rebalance_ec (push) Successful in 1m25s
Details
Test / test_failure_domain (push) Successful in 10s
Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 1m23s
Details
Test / test_snapshot (push) Successful in 20s
Details
Test / test_minsize_1 (push) Successful in 15s
Details
Test / test_snapshot_ec (push) Successful in 23s
Details
Test / test_rm (push) Successful in 14s
Details
Test / test_move_reappear (push) Successful in 19s
Details
Test / test_snapshot_chain (push) Successful in 1m21s
Details
Test / test_snapshot_down (push) Successful in 23s
Details
Test / test_snapshot_chain_ec (push) Successful in 1m50s
Details
Test / test_snapshot_down_ec (push) Successful in 22s
Details
Test / test_splitbrain (push) Successful in 16s
Details
Test / test_etcd_fail (push) Successful in 6m42s
Details
Test / test_rebalance_verify_imm (push) Successful in 2m19s
Details
Test / test_rebalance_verify (push) Successful in 4m7s
Details
Test / test_switch_primary (push) Successful in 36s
Details
Test / test_write (push) Successful in 35s
Details
Test / test_rebalance_verify_ec (push) Successful in 4m6s
Details
Test / test_write_no_same (push) Successful in 22s
Details
Test / test_write_xor (push) Successful in 1m34s
Details
Test / test_rebalance_verify_ec_imm (push) Successful in 6m7s
Details
Test / test_heal_csum_32k_dmj (push) Successful in 4m7s
Details
Test / test_heal_csum_32k_dj (push) Successful in 4m59s
Details
Test / test_heal_csum_32k (push) Successful in 5m4s
Details
Test / test_heal_csum_4k_dmj (push) Successful in 5m59s
Details
Test / test_scrub (push) Successful in 1m9s
Details
Test / test_scrub_zero_osd_2 (push) Successful in 37s
Details
Test / test_scrub_xor (push) Successful in 52s
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 1m5s
Details
Test / test_heal_csum_4k_dj (push) Successful in 5m12s
Details
Test / test_heal_csum_4k (push) Successful in 5m1s
Details
Test / test_scrub_pg_size_3 (push) Successful in 1m48s
Details
Test / test_scrub_ec (push) Successful in 19s
Details
Test / test_interrupted_rebalance (push) Successful in 1m38s
Details
Test / test_heal_pg_size_2 (push) Successful in 3m20s
Details
Test / test_heal_ec (push) Successful in 3m3s
Details
parent
016115c0d4
commit
5d3317e4f2
|
@ -195,6 +195,10 @@ void blockstore_impl_t::loop()
|
|||
// ring is full, stop submission
|
||||
break;
|
||||
}
|
||||
else if (PRIV(op)->wait_for == WAIT_JOURNAL)
|
||||
{
|
||||
PRIV(op)->wait_detail2 = (unstable_writes.size()+unstable_unsynced);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (op_idx != new_idx)
|
||||
|
@ -273,7 +277,8 @@ void blockstore_impl_t::check_wait(blockstore_op_t *op)
|
|||
}
|
||||
else if (PRIV(op)->wait_for == WAIT_JOURNAL)
|
||||
{
|
||||
if (journal.used_start == PRIV(op)->wait_detail && !unstable_count_changed)
|
||||
if (journal.used_start == PRIV(op)->wait_detail &&
|
||||
(unstable_writes.size()+unstable_unsynced) == PRIV(op)->wait_detail2)
|
||||
{
|
||||
// do not submit
|
||||
#ifdef BLOCKSTORE_DEBUG
|
||||
|
@ -281,7 +286,6 @@ void blockstore_impl_t::check_wait(blockstore_op_t *op)
|
|||
#endif
|
||||
return;
|
||||
}
|
||||
unstable_count_changed = false;
|
||||
flusher->release_trim();
|
||||
PRIV(op)->wait_for = 0;
|
||||
}
|
||||
|
@ -353,7 +357,6 @@ void blockstore_impl_t::enqueue_op(blockstore_op_t *op)
|
|||
};
|
||||
}
|
||||
unstable_writes.clear();
|
||||
unstable_count_changed = true;
|
||||
op->callback = [old_callback](blockstore_op_t *op)
|
||||
{
|
||||
obj_ver_id *vers = (obj_ver_id*)op->buf;
|
||||
|
|
|
@ -202,7 +202,7 @@ struct blockstore_op_private_t
|
|||
{
|
||||
// Wait status
|
||||
int wait_for;
|
||||
uint64_t wait_detail;
|
||||
uint64_t wait_detail, wait_detail2;
|
||||
int pending_ops;
|
||||
int op_state;
|
||||
|
||||
|
@ -276,7 +276,6 @@ class blockstore_impl_t
|
|||
std::vector<blockstore_op_t*> submit_queue;
|
||||
std::vector<obj_ver_id> unsynced_big_writes, unsynced_small_writes;
|
||||
int unsynced_big_write_count = 0, unstable_unsynced = 0;
|
||||
bool unstable_count_changed = false;
|
||||
int unsynced_queued_ops = 0;
|
||||
allocator *data_alloc = NULL;
|
||||
uint64_t used_blocks = 0;
|
||||
|
|
|
@ -162,7 +162,6 @@ void blockstore_impl_t::mark_rolled_back(const obj_ver_id & ov)
|
|||
unstable_writes.erase(unstab_it);
|
||||
else
|
||||
unstab_it->second = max_unstable;
|
||||
unstable_count_changed = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -537,6 +537,5 @@ void blockstore_impl_t::mark_stable(obj_ver_id v, bool forget_dirty)
|
|||
unstab_it->second <= v.version)
|
||||
{
|
||||
unstable_writes.erase(unstab_it);
|
||||
unstable_count_changed = true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue