First just recheck version without actually re-reading block in vitastor-kv
Test / buildenv (push) Successful in 9s
Details
Test / build (push) Successful in 3m2s
Details
Test / test_cas (push) Successful in 8s
Details
Test / make_test (push) Successful in 34s
Details
Test / test_change_pg_count (push) Successful in 33s
Details
Test / test_change_pg_size (push) Successful in 7s
Details
Test / test_change_pg_count_ec (push) Successful in 31s
Details
Test / test_create_nomaxid (push) Successful in 7s
Details
Test / test_etcd_fail (push) Successful in 1m31s
Details
Test / test_add_osd (push) Successful in 2m39s
Details
Test / test_interrupted_rebalance_imm (push) Successful in 2m6s
Details
Test / test_failure_domain (push) Successful in 43s
Details
Test / test_interrupted_rebalance (push) Successful in 2m56s
Details
Test / test_interrupted_rebalance_ec (push) Successful in 1m29s
Details
Test / test_snapshot (push) Successful in 19s
Details
Test / test_minsize_1 (push) Successful in 13s
Details
Test / test_snapshot_ec (push) Successful in 27s
Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 1m26s
Details
Test / test_rm (push) Successful in 14s
Details
Test / test_move_reappear (push) Successful in 20s
Details
Test / test_snapshot_down (push) Successful in 21s
Details
Test / test_snapshot_down_ec (push) Successful in 28s
Details
Test / test_splitbrain (push) Successful in 22s
Details
Test / test_snapshot_chain (push) Successful in 2m15s
Details
Test / test_snapshot_chain_ec (push) Successful in 2m46s
Details
Test / test_rebalance_verify_imm (push) Successful in 4m6s
Details
Test / test_rebalance_verify (push) Successful in 4m41s
Details
Test / test_switch_primary (push) Successful in 33s
Details
Test / test_write (push) Successful in 54s
Details
Test / test_rebalance_verify_ec_imm (push) Successful in 3m33s
Details
Test / test_write_xor (push) Successful in 51s
Details
Test / test_write_no_same (push) Successful in 13s
Details
Test / test_rebalance_verify_ec (push) Successful in 7m16s
Details
Test / test_heal_pg_size_2 (push) Successful in 4m32s
Details
Test / test_heal_csum_32k_dmj (push) Successful in 4m29s
Details
Test / test_heal_ec (push) Successful in 4m37s
Details
Test / test_heal_csum_32k_dj (push) Successful in 6m9s
Details
Test / test_heal_csum_32k (push) Successful in 6m14s
Details
Test / test_heal_csum_4k_dj (push) Successful in 6m7s
Details
Test / test_heal_csum_4k_dmj (push) Successful in 6m13s
Details
Test / test_scrub_zero_osd_2 (push) Successful in 42s
Details
Test / test_scrub_xor (push) Successful in 42s
Details
Test / test_scrub (push) Successful in 46s
Details
Test / test_scrub_ec (push) Successful in 59s
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 1m6s
Details
Test / test_nfs (push) Failing after 13s
Details
Test / test_scrub_pg_size_3 (push) Successful in 1m32s
Details
Test / test_heal_csum_4k (push) Successful in 5m13s
Details
Test / buildenv (push) Successful in 9s
Details
Test / build (push) Successful in 3m2s
Details
Test / test_cas (push) Successful in 8s
Details
Test / make_test (push) Successful in 34s
Details
Test / test_change_pg_count (push) Successful in 33s
Details
Test / test_change_pg_size (push) Successful in 7s
Details
Test / test_change_pg_count_ec (push) Successful in 31s
Details
Test / test_create_nomaxid (push) Successful in 7s
Details
Test / test_etcd_fail (push) Successful in 1m31s
Details
Test / test_add_osd (push) Successful in 2m39s
Details
Test / test_interrupted_rebalance_imm (push) Successful in 2m6s
Details
Test / test_failure_domain (push) Successful in 43s
Details
Test / test_interrupted_rebalance (push) Successful in 2m56s
Details
Test / test_interrupted_rebalance_ec (push) Successful in 1m29s
Details
Test / test_snapshot (push) Successful in 19s
Details
Test / test_minsize_1 (push) Successful in 13s
Details
Test / test_snapshot_ec (push) Successful in 27s
Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 1m26s
Details
Test / test_rm (push) Successful in 14s
Details
Test / test_move_reappear (push) Successful in 20s
Details
Test / test_snapshot_down (push) Successful in 21s
Details
Test / test_snapshot_down_ec (push) Successful in 28s
Details
Test / test_splitbrain (push) Successful in 22s
Details
Test / test_snapshot_chain (push) Successful in 2m15s
Details
Test / test_snapshot_chain_ec (push) Successful in 2m46s
Details
Test / test_rebalance_verify_imm (push) Successful in 4m6s
Details
Test / test_rebalance_verify (push) Successful in 4m41s
Details
Test / test_switch_primary (push) Successful in 33s
Details
Test / test_write (push) Successful in 54s
Details
Test / test_rebalance_verify_ec_imm (push) Successful in 3m33s
Details
Test / test_write_xor (push) Successful in 51s
Details
Test / test_write_no_same (push) Successful in 13s
Details
Test / test_rebalance_verify_ec (push) Successful in 7m16s
Details
Test / test_heal_pg_size_2 (push) Successful in 4m32s
Details
Test / test_heal_csum_32k_dmj (push) Successful in 4m29s
Details
Test / test_heal_ec (push) Successful in 4m37s
Details
Test / test_heal_csum_32k_dj (push) Successful in 6m9s
Details
Test / test_heal_csum_32k (push) Successful in 6m14s
Details
Test / test_heal_csum_4k_dj (push) Successful in 6m7s
Details
Test / test_heal_csum_4k_dmj (push) Successful in 6m13s
Details
Test / test_scrub_zero_osd_2 (push) Successful in 42s
Details
Test / test_scrub_xor (push) Successful in 42s
Details
Test / test_scrub (push) Successful in 46s
Details
Test / test_scrub_ec (push) Successful in 59s
Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 1m6s
Details
Test / test_nfs (push) Failing after 13s
Details
Test / test_scrub_pg_size_3 (push) Successful in 1m32s
Details
Test / test_heal_csum_4k (push) Successful in 5m13s
Details
parent
8ee75e71c8
commit
3a04872bf4
|
@ -889,8 +889,17 @@ static void get_block(kv_db_t *db, uint64_t offset, int cur_level, int recheck_p
|
|||
op->opcode = OSD_OP_READ;
|
||||
op->inode = db->inode_id;
|
||||
op->offset = offset;
|
||||
op->len = db->kv_block_size;
|
||||
op->iov.push_back(malloc_or_die(op->len), op->len);
|
||||
auto blk_it = db->block_cache.find(op->offset);
|
||||
if (blk_it != db->block_cache.end() && !blk_it->second.invalidated && !blk_it->second.updating)
|
||||
{
|
||||
// just recheck version - it's cheaper than re-reading the block
|
||||
op->len = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
op->len = db->kv_block_size;
|
||||
op->iov.push_back(malloc_or_die(op->len), op->len);
|
||||
}
|
||||
op->callback = [=](cluster_op_t *op)
|
||||
{
|
||||
if (op->retval != op->len)
|
||||
|
@ -921,6 +930,12 @@ static void get_block(kv_db_t *db, uint64_t offset, int cur_level, int recheck_p
|
|||
}
|
||||
else
|
||||
{
|
||||
if (op->len == 0)
|
||||
{
|
||||
// Version check failed, re-read block
|
||||
get_block(db, offset, cur_level, recheck_policy, cb);
|
||||
return;
|
||||
}
|
||||
auto blk = &db->block_cache[op->offset];
|
||||
if (blk_it != db->block_cache.end())
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue