Compare commits

..

14 Commits

Author SHA1 Message Date
Vitaliy Filippov 3668203dc0 Return error on failed shrink
Test / test_move_reappear (push) Successful in 19s Details
Test / test_rm (push) Successful in 15s Details
Test / test_snapshot_down (push) Successful in 28s 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 2m26s Details
Test / test_snapshot_chain_ec (push) Successful in 2m47s Details
Test / test_rebalance_verify_imm (push) Successful in 2m33s Details
Test / test_rebalance_verify (push) Successful in 3m12s Details
Test / test_switch_primary (push) Successful in 33s Details
Test / test_write (push) Successful in 51s Details
Test / test_write_no_same (push) Successful in 14s Details
Test / test_write_xor (push) Successful in 54s Details
Test / test_rebalance_verify_ec_imm (push) Successful in 3m57s Details
Test / test_rebalance_verify_ec (push) Successful in 5m9s Details
Test / test_heal_pg_size_2 (push) Successful in 3m49s Details
Test / test_heal_ec (push) Successful in 3m47s Details
Test / test_heal_csum_32k_dmj (push) Successful in 5m40s Details
Test / test_heal_csum_32k_dj (push) Successful in 6m22s Details
Test / test_heal_csum_4k_dmj (push) Successful in 6m46s Details
Test / test_heal_csum_32k (push) Successful in 6m48s Details
Test / test_scrub_zero_osd_2 (push) Successful in 1m1s Details
Test / test_scrub_xor (push) Successful in 48s Details
Test / test_heal_csum_4k_dj (push) Successful in 6m19s Details
Test / test_heal_csum_4k (push) Successful in 5m17s Details
Test / test_scrub_pg_size_3 (push) Successful in 1m57s Details
Test / test_scrub_ec (push) Successful in 36s Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 39s Details
Test / test_nfs (push) Successful in 12s Details
Test / test_scrub (push) Successful in 19s Details
2024-03-07 18:09:05 +03:00
Vitaliy Filippov c623c969bd Implement rename over an existing file/directory 2024-03-07 18:09:05 +03:00
Vitaliy Filippov d9df554026 Support --logfile in nfs-proxy 2024-03-07 18:09:05 +03:00
Vitaliy Filippov bc3e340b9d Fix shared file overlap, add FIXMEs 2024-03-07 18:09:05 +03:00
Vitaliy Filippov b14b8ad4a0 Create inode, then direntry, not direntry, then inode; retry ID collisions 2024-03-07 18:09:05 +03:00
Vitaliy Filippov b19d4f19b4 Fix NFS shared/aligned write FIXMEs 2024-03-07 18:09:05 +03:00
Vitaliy Filippov dbacb23ac0 Allow to disable per-inode stats for VitastorFS pools 2024-03-07 18:09:05 +03:00
Vitaliy Filippov 8b22200e0e Add basic NFS tests, fix bugs 2024-03-07 18:09:05 +03:00
Vitaliy Filippov cdf2192788 Return block NFS implementation back as an option too 2024-03-07 18:09:05 +03:00
Vitaliy Filippov a5cfd2a1f2 Move KV FS header into a separate file 2024-03-07 18:09:05 +03:00
Vitaliy Filippov b8fcfe435b Implement packing small files into shared inodes 2024-03-07 18:09:05 +03:00
Vitaliy Filippov dc93c4a7e3 Split new NFS proxy implementation into multiple files 2024-03-07 18:09:05 +03:00
Vitaliy Filippov 0c38bc20b2 WIP VitastorFS with metadata storage in VitastorKV 2024-03-07 18:09:05 +03:00
Vitaliy Filippov 56b7b18adf Fix vitastor-kv hang on reopen & unfinished closed listing
Test / test_interrupted_rebalance_ec (push) Successful in 3m9s Details
Test / test_move_reappear (push) Successful in 20s Details
Test / test_rm (push) Successful in 12s Details
Test / test_snapshot_down (push) Successful in 28s Details
Test / test_snapshot_down_ec (push) Successful in 29s Details
Test / test_splitbrain (push) Successful in 21s Details
Test / test_snapshot_chain (push) Successful in 2m27s Details
Test / test_snapshot_chain_ec (push) Successful in 2m53s Details
Test / test_rebalance_verify_imm (push) Successful in 4m16s Details
Test / test_rebalance_verify (push) Successful in 4m50s Details
Test / test_switch_primary (push) Successful in 36s Details
Test / test_write (push) Successful in 46s Details
Test / test_rebalance_verify_ec_imm (push) Successful in 3m30s Details
Test / test_write_no_same (push) Successful in 16s Details
Test / test_write_xor (push) Successful in 1m27s Details
Test / test_rebalance_verify_ec (push) Successful in 7m18s Details
Test / test_heal_pg_size_2 (push) Successful in 4m0s Details
Test / test_heal_ec (push) Successful in 4m3s Details
Test / test_heal_csum_32k_dmj (push) Successful in 4m55s Details
Test / test_heal_csum_32k_dj (push) Successful in 6m17s Details
Test / test_heal_csum_32k (push) Successful in 6m18s Details
Test / test_heal_csum_4k_dmj (push) Successful in 6m37s Details
Test / test_scrub (push) Successful in 1m37s Details
Test / test_scrub_zero_osd_2 (push) Successful in 1m19s Details
Test / test_heal_csum_4k_dj (push) Successful in 6m55s Details
Test / test_scrub_xor (push) Successful in 50s Details
Test / test_scrub_ec (push) Successful in 45s Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 1m8s Details
Test / test_scrub_pg_size_3 (push) Successful in 1m56s Details
Test / test_heal_csum_4k (push) Successful in 5m39s Details
2024-03-07 18:09:05 +03:00
2 changed files with 15 additions and 4 deletions

View File

@ -197,6 +197,7 @@ struct kv_op_t
void exec(); void exec();
void next(); // for list void next(); // for list
~kv_op_t();
protected: protected:
int recheck_policy = KV_RECHECK_LEAF; int recheck_policy = KV_RECHECK_LEAF;
bool started = false; bool started = false;
@ -985,14 +986,24 @@ void kv_op_t::exec()
finish(-ENOSYS); finish(-ENOSYS);
} }
kv_op_t::~kv_op_t()
{
if (started && !done)
{
done = true;
db->active_ops--;
}
}
void kv_op_t::finish(int res) void kv_op_t::finish(int res)
{ {
auto db = this->db;
this->res = res; this->res = res;
this->done = true; this->done = true;
db->active_ops--; db->active_ops--;
(std::function<void(kv_op_t *)>(callback))(this);
if (!db->active_ops && db->closing) if (!db->active_ops && db->closing)
db->close(db->on_close); db->close(db->on_close);
(std::function<void(kv_op_t *)>(callback))(this);
} }
void kv_op_t::get() void kv_op_t::get()

View File

@ -147,6 +147,8 @@ json11::Json::object kv_test_t::parse_args(int narg, const char *args[])
" Fraction of key delete operations\n" " Fraction of key delete operations\n"
" --list_prob 300\n" " --list_prob 300\n"
" Fraction of listing operations\n" " Fraction of listing operations\n"
" --reopen_prob 1\n"
" Fraction of database reopens\n"
" --min_key_len 10\n" " --min_key_len 10\n"
" Minimum key size in bytes\n" " Minimum key size in bytes\n"
" --max_key_len 70\n" " --max_key_len 70\n"
@ -607,11 +609,9 @@ void kv_test_t::add_stat(kv_test_lat_t & stat, timespec tv_begin)
int64_t usec = (tv_end.tv_sec - tv_begin.tv_sec)*1000000 + int64_t usec = (tv_end.tv_sec - tv_begin.tv_sec)*1000000 +
(tv_end.tv_nsec - tv_begin.tv_nsec)/1000; (tv_end.tv_nsec - tv_begin.tv_nsec)/1000;
if (usec > 0) if (usec > 0)
{
stat.usec += usec; stat.usec += usec;
stat.count++; stat.count++;
} }
}
void kv_test_t::print_stats(kv_test_stat_t & prev_stat, timespec & prev_stat_time) void kv_test_t::print_stats(kv_test_stat_t & prev_stat, timespec & prev_stat_time)
{ {