vitastor/src
Vitaliy Filippov a48e2bbf18 Fix write replay ordering when immediate_commit != all
Previous implementation didn't respect write ordering and could lead
to corrupted data when restarting writes after an OSD outage

Also rework cluster_client queueing logic and add tests for it to verify the correct behaviour
2021-04-03 14:51:52 +03:00
..
mock Fix write replay ordering when immediate_commit != all 2021-04-03 14:51:52 +03:00
CMakeLists.txt Fix write replay ordering when immediate_commit != all 2021-04-03 14:51:52 +03:00
allocator.cpp Skip double allocs when reading journal 2021-04-03 00:53:28 +03:00
allocator.h Skip double allocs when reading journal 2021-04-03 00:53:28 +03:00
base64.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
base64.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
blockstore.cpp Use bitmap granularity for alignment checks 2021-04-03 14:36:04 +03:00
blockstore.h Use bitmap granularity for alignment checks 2021-04-03 14:36:04 +03:00
blockstore_flush.cpp Stop flushing when less than min_flusher_count operations are available (unless a trim is forced) 2021-04-03 00:53:28 +03:00
blockstore_flush.h Add min_flusher_count configuration 2021-04-03 00:53:28 +03:00
blockstore_impl.cpp Use bitmap granularity for alignment checks 2021-04-03 14:36:04 +03:00
blockstore_impl.h Use bitmap granularity for alignment checks 2021-04-03 14:36:04 +03:00
blockstore_init.cpp Skip double allocs when reading journal 2021-04-03 00:53:28 +03:00
blockstore_init.h Skip double allocs when reading journal 2021-04-03 00:53:28 +03:00
blockstore_journal.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
blockstore_journal.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
blockstore_open.cpp Add min_flusher_count configuration 2021-04-03 00:53:28 +03:00
blockstore_read.cpp Do not duplicate blockstore operations when io_uring fills up 2021-03-16 12:48:26 +03:00
blockstore_rollback.cpp Skip double allocs when reading journal 2021-04-03 00:53:28 +03:00
blockstore_stable.cpp Use common macro for get_sqe 2021-03-13 17:19:45 +03:00
blockstore_sync.cpp Remember writes as "unsynced" only after completing them 2021-03-25 02:41:58 +03:00
blockstore_write.cpp Add some details for debug prints 2021-03-25 11:00:10 +03:00
cluster_client.cpp Fix write replay ordering when immediate_commit != all 2021-04-03 14:51:52 +03:00
cluster_client.h Fix write replay ordering when immediate_commit != all 2021-04-03 14:51:52 +03:00
crc32c.c Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
crc32c.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
dump_journal.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
epoll_manager.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
epoll_manager.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
etcd_state_client.cpp Fix write replay ordering when immediate_commit != all 2021-04-03 14:51:52 +03:00
etcd_state_client.h Fix write replay ordering when immediate_commit != all 2021-04-03 14:51:52 +03:00
fio_cluster.cpp Allow to specify etcd URLs for OSDs with http://, do not die with a strange error if -etcd option is missing for fio 2021-03-16 12:48:26 +03:00
fio_engine.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
fio_headers.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
fio_sec_osd.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
http_client.cpp Allow to specify etcd URLs for OSDs with http://, do not die with a strange error if -etcd option is missing for fio 2021-03-16 12:48:26 +03:00
http_client.h Allow to specify etcd URLs for OSDs with http://, do not die with a strange error if -etcd option is missing for fio 2021-03-16 12:48:26 +03:00
malloc_or_die.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
messenger.cpp Fix write replay ordering when immediate_commit != all 2021-04-03 14:51:52 +03:00
messenger.h Fix write replay ordering when immediate_commit != all 2021-04-03 14:51:52 +03:00
msgr_op.cpp Extract some definitions to msgr_op.{cpp,h} 2021-04-03 14:36:04 +03:00
msgr_op.h Extract some definitions to msgr_op.{cpp,h} 2021-04-03 14:36:04 +03:00
msgr_receive.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
msgr_send.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
msgr_stop.cpp Fix write replay ordering when immediate_commit != all 2021-04-03 14:51:52 +03:00
nbd_proxy.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
object_id.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
osd.cpp Remove http_client.h include from etcd_state_client.h 2021-04-03 14:36:04 +03:00
osd.h Use bitmap granularity for alignment checks 2021-04-03 14:36:04 +03:00
osd_cluster.cpp Remove http_client.h include from etcd_state_client.h 2021-04-03 14:36:04 +03:00
osd_flush.cpp Don't try to "recover" misplaced objects if it would make them degraded 2021-03-21 01:37:23 +03:00
osd_id.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
osd_main.cpp Use bitmap granularity for alignment checks 2021-04-03 14:36:04 +03:00
osd_ops.cpp Add PING operation and timeouts to detect OSD failures when a host goes down 2021-03-09 02:15:38 +03:00
osd_ops.h Add PING operation and timeouts to detect OSD failures when a host goes down 2021-03-09 02:15:38 +03:00
osd_peering.cpp Delete objects only after a SYNC during rebalance in the non-immediate_commit mode 2021-03-16 12:48:26 +03:00
osd_peering_pg.cpp Use pg_data_size instead of pg_minsize for object state calculation 2021-03-08 17:04:10 +03:00
osd_peering_pg.h Delete objects only after a SYNC during rebalance in the non-immediate_commit mode 2021-03-16 12:48:26 +03:00
osd_peering_pg_test.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
osd_primary.cpp Use bitmap granularity for alignment checks 2021-04-03 14:36:04 +03:00
osd_primary.h Delete objects only after a SYNC during rebalance in the non-immediate_commit mode 2021-03-16 12:48:26 +03:00
osd_primary_subops.cpp Assign .req as a whole to always zero out the remaining part 2021-03-24 14:20:56 +03:00
osd_primary_sync.cpp Extract osd_primary write and sync code into separate files 2021-03-24 14:20:56 +03:00
osd_primary_write.cpp Followup to 05db1308aa 2021-03-25 11:00:10 +03:00
osd_rmw.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
osd_rmw.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
osd_rmw_test.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
osd_secondary.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
osd_test.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
pg_states.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
pg_states.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
qemu_driver.c Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
qemu_proxy.cpp Remove cluster_client_t::stop() 2021-04-03 14:35:42 +03:00
qemu_proxy.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
ringloop.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
ringloop.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
rm_inode.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
rw_blocking.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
rw_blocking.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
stub_bench.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
stub_osd.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
stub_uring_osd.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
test_allocator.cpp Skip double allocs when reading journal 2021-04-03 00:53:28 +03:00
test_blockstore.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
test_cluster_client.cpp Fix write replay ordering when immediate_commit != all 2021-04-03 14:51:52 +03:00
test_pattern.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
test_shit.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
timerfd_interval.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
timerfd_interval.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
timerfd_manager.cpp Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
timerfd_manager.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
xor.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00