vitastor/src
Vitaliy Filippov 4c9bf6727b Experimental: Handle degraded deletions by comparing object versions with epochs
CAUTION! This version is not fool proof yet. If you purge data of an OSD by
overwriting the disk with zeroes and restart it then the same data will also
be removed from other replicas :-).

I plan to add protection from this situation before merging it into master.
The idea is to make each OSD store a random "cookie" on disk and remove itself
from history automatically if the cookie doesn't match.
2023-04-29 00:21:22 +03:00
..
mock Implement online config update 2023-03-26 19:21:50 +03:00
nfs Simplified NFS proxy based on own NFS/XDR implementation 2022-05-07 01:01:20 +03:00
CMakeLists.txt Release 0.8.8 2023-04-28 11:22:00 +03:00
addr_util.cpp Use the larger sockaddr_storage structure 2022-02-12 11:22:56 +03:00
addr_util.h Use the larger sockaddr_storage structure 2022-02-12 11:22:56 +03:00
allocator.cpp Use (uint64_t)1 instead of 1l / 1ul 2022-04-16 01:48:14 +03:00
allocator.h Add "external" bitmap support to osd_rmw 2021-04-10 17:44:12 +03:00
blockstore.cpp Implement online config update 2023-03-26 19:21:50 +03:00
blockstore.h Selectively sync nonsynced objects on STABILIZE/ROLLBACK (fix for github issue #51) 2023-04-08 02:44:02 +03:00
blockstore_disk.cpp Fix vitastor-disk prepare bugs 2022-08-19 02:22:54 +03:00
blockstore_disk.h vitastor-disk prepare: implement first form of the command 2022-08-09 01:29:29 +03:00
blockstore_flush.cpp Fix another variant of flusher sync-waiting stall 2023-04-24 00:44:41 +03:00
blockstore_flush.h Shard clean_db by PGs to speedup listings 2022-02-20 00:21:24 +03:00
blockstore_impl.cpp Selectively sync nonsynced objects on STABILIZE/ROLLBACK (fix for github issue #51) 2023-04-08 02:44:02 +03:00
blockstore_impl.h Selectively sync nonsynced objects on STABILIZE/ROLLBACK (fix for github issue #51) 2023-04-08 02:44:02 +03:00
blockstore_init.cpp Oops. Fix metadata read after fixes :-) 2022-12-17 17:31:57 +03:00
blockstore_init.h Final fix for the lack of zeroing out of old metadata entries 2022-12-17 14:50:31 +03:00
blockstore_journal.cpp Explicitly print errors about -EAGAIN in io_uring 2022-12-17 15:49:49 +03:00
blockstore_journal.h Prioritize EC (non-instantly-stable) operations under journal pressure 2023-01-03 00:05:45 +03:00
blockstore_open.cpp Implement online config update 2023-03-26 19:21:50 +03:00
blockstore_read.cpp Fix another rare journal flush stall 2022-12-30 02:03:33 +03:00
blockstore_rollback.cpp Selectively sync nonsynced objects on STABILIZE/ROLLBACK (fix for github issue #51) 2023-04-08 02:44:02 +03:00
blockstore_stable.cpp Selectively sync nonsynced objects on STABILIZE/ROLLBACK (fix for github issue #51) 2023-04-08 02:44:02 +03:00
blockstore_sync.cpp Selectively sync nonsynced objects on STABILIZE/ROLLBACK (fix for github issue #51) 2023-04-08 02:44:02 +03:00
blockstore_write.cpp Prioritize EC (non-instantly-stable) operations under journal pressure 2023-01-03 00:05:45 +03:00
cli.cpp Make vitastor-cli print help on missing command 2022-12-26 02:48:48 +03:00
cli.h Implement safety check for OSD removal, translate all '-' to '_' in cli options 2022-12-26 02:48:48 +03:00
cli_alloc_osd.cpp Rename base64.{cpp.h} to str_util 2022-07-31 01:12:37 +03:00
cli_common.cpp Implement safety check for OSD removal, translate all '-' to '_' in cli options 2022-12-26 02:48:48 +03:00
cli_create.cpp Implement safety check for OSD removal, translate all '-' to '_' in cli options 2022-12-26 02:48:48 +03:00
cli_df.cpp Fix incorrect EC free space statistics in vitastor-cli df output 2023-01-26 02:04:29 +03:00
cli_flatten.cpp Implement safety check for OSD removal, translate all '-' to '_' in cli options 2022-12-26 02:48:48 +03:00
cli_ls.cpp Rename base64.{cpp.h} to str_util 2022-07-31 01:12:37 +03:00
cli_merge.cpp Implement bdrv_co_block_status for snapshot export support 2023-01-07 17:06:58 +03:00
cli_modify.cpp Implement safety check for OSD removal, translate all '-' to '_' in cli options 2022-12-26 02:48:48 +03:00
cli_rm.cpp Implement safety check for OSD removal, translate all '-' to '_' in cli options 2022-12-26 02:48:48 +03:00
cli_rm_data.cpp Initialize msgr lazily in client to speedup vitastor-cli with RDMA enabled 2023-02-19 18:59:07 +03:00
cli_rm_osd.cpp Experimental: Handle degraded deletions by comparing object versions with epochs 2023-04-29 00:21:22 +03:00
cli_status.cpp Implement online config update 2023-03-26 19:21:50 +03:00
cluster_client.cpp Fix a rare use-after-free in cluster_client caused by a reenterability issue 2023-04-08 02:44:02 +03:00
cluster_client.h Implement online config update 2023-03-26 19:21:50 +03:00
cluster_client_list.cpp Experimental: Handle degraded deletions by comparing object versions with epochs 2023-04-29 00:21:22 +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
disk_simple_offsets.cpp Rename base64.{cpp.h} to str_util 2022-07-31 01:12:37 +03:00
disk_tool.cpp Fix vitastor-disk purge (now it works) 2022-12-27 02:28:20 +03:00
disk_tool.h Fix vitastor-disk purge (now it works) 2022-12-27 02:28:20 +03:00
disk_tool_journal.cpp Fix typo (did not affect execution though) 2023-03-15 01:08:23 +03:00
disk_tool_meta.cpp Fix possible bad realloc in disk_tool_meta for non-standard metadata block sizes 2023-03-15 01:08:23 +03:00
disk_tool_prepare.cpp Fix vitastor-disk purge (now it works) 2022-12-27 02:28:20 +03:00
disk_tool_resize.cpp Add documentation for the new "vitastor-disk" tool 2022-08-22 00:31:30 +03:00
disk_tool_udev.cpp Suppress warnings in vitastor-disk purge correctly 2022-12-27 11:09:19 +03:00
disk_tool_upgrade.cpp Fix vitastor-disk purge (now it works) 2022-12-27 02:28:20 +03:00
disk_tool_utils.cpp Use just sfdisk --json, --dump is not needed 2023-02-23 00:55:47 +03:00
epoll_manager.cpp Handle get_sqe failures, don't die with "will fall out of sync" in epoll_manager 2022-01-31 02:52:20 +03:00
epoll_manager.h Handle get_sqe failures, don't die with "will fall out of sync" in epoll_manager 2022-01-31 02:52:20 +03:00
etcd_state_client.cpp Experimental: Handle degraded deletions by comparing object versions with epochs 2023-04-29 00:21:22 +03:00
etcd_state_client.h Experimental: Handle degraded deletions by comparing object versions with epochs 2023-04-29 00:21:22 +03:00
fio_cluster.cpp Fix void* arithmetic again 2022-07-15 01:38:30 +03:00
fio_engine.cpp Fix leaks detected by clang scan-build (only 1 of 4 may be important though) 2022-01-16 00:11:59 +03:00
fio_headers.h Fix compatibility with fio 3.28+ 2022-01-31 23:39:14 +03:00
fio_sec_osd.cpp Use the larger sockaddr_storage structure 2022-02-12 11:22:56 +03:00
http_client.cpp vitastor-disk prepare: implement first form of the command 2022-08-09 01:29:29 +03:00
http_client.h Move simple-offsets into vitastor-disk, too 2022-07-15 02:19:35 +03:00
malloc_or_die.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00
messenger.cpp Implement online config update 2023-03-26 19:21:50 +03:00
messenger.h Implement online config update 2023-03-26 19:21:50 +03:00
msgr_op.cpp Extract some definitions to msgr_op.{cpp,h} 2021-04-03 14:36:04 +03:00
msgr_op.h Fix build under clang and some warnings 2022-01-16 00:02:54 +03:00
msgr_rdma.cpp Allow to send more than 1 operation at a time 2023-02-26 02:01:04 +03:00
msgr_rdma.h Allow to send more than 1 operation at a time 2023-02-26 02:01:04 +03:00
msgr_receive.cpp Allow OP_SEC_READ to return errors (do not hang the connection) 2023-04-23 17:54:00 +03:00
msgr_send.cpp Handle EINTR 2022-01-22 23:59:37 +03:00
msgr_stop.cpp Add missing cancel_op(currently being read op) when stopping a client 2022-01-28 01:53:52 +03:00
nbd_proxy.cpp Use (uint64_t)1 instead of 1l / 1ul 2022-04-16 01:48:14 +03:00
nfs_conn.cpp Allow to configure block_size, bitmap_granularity and immediate_commit per-pool 2022-08-11 01:56:33 +03:00
nfs_portmap.cpp Rename base64.{cpp.h} to str_util 2022-07-31 01:12:37 +03:00
nfs_portmap.h Simplified NFS proxy based on own NFS/XDR implementation 2022-05-07 01:01:20 +03:00
nfs_proxy.cpp Rename base64.{cpp.h} to str_util 2022-07-31 01:12:37 +03:00
nfs_proxy.h Simplified NFS proxy based on own NFS/XDR implementation 2022-05-07 01:01:20 +03:00
object_id.h Selectively sync nonsynced objects on STABILIZE/ROLLBACK (fix for github issue #51) 2023-04-08 02:44:02 +03:00
osd.cpp Fix some build warnings 2023-04-28 00:44:27 +03:00
osd.h Experimental: Handle degraded deletions by comparing object versions with epochs 2023-04-29 00:21:22 +03:00
osd_cluster.cpp Experimental: Handle degraded deletions by comparing object versions with epochs 2023-04-29 00:21:22 +03:00
osd_flush.cpp Experimental: Handle degraded deletions by comparing object versions with epochs 2023-04-29 00:21:22 +03:00
osd_id.h Experimental: Handle degraded deletions by comparing object versions with epochs 2023-04-29 00:21:22 +03:00
osd_main.cpp Use json11 instead of blockstore_config_t 2021-04-30 00:52:46 +03:00
osd_ops.cpp Add "read bitmaps" operation to secondary OSD protocol 2021-04-10 17:44:12 +03:00
osd_ops.h Implement metadata dump tool 2022-06-10 18:50:09 +03:00
osd_peering.cpp Experimental: Handle degraded deletions by comparing object versions with epochs 2023-04-29 00:21:22 +03:00
osd_peering_pg.cpp Experimental: Handle degraded deletions by comparing object versions with epochs 2023-04-29 00:21:22 +03:00
osd_peering_pg.h Experimental: Handle degraded deletions by comparing object versions with epochs 2023-04-29 00:21:22 +03:00
osd_peering_pg_test.cpp Move tests to "make test" 2023-02-21 01:30:42 +03:00
osd_primary.cpp Experimental: Handle degraded deletions by comparing object versions with epochs 2023-04-29 00:21:22 +03:00
osd_primary.h Return ENOSPC as the primary OSD 2022-12-30 02:03:33 +03:00
osd_primary_chain.cpp Experimental: Handle degraded deletions by comparing object versions with epochs 2023-04-29 00:21:22 +03:00
osd_primary_subops.cpp Experimental: Handle degraded deletions by comparing object versions with epochs 2023-04-29 00:21:22 +03:00
osd_primary_sync.cpp Fix "opcode=5 retval=-2" errors sometimes possible with EC 2023-04-08 02:44:02 +03:00
osd_primary_write.cpp Experimental: Handle degraded deletions by comparing object versions with epochs 2023-04-29 00:21:22 +03:00
osd_rmw.cpp Fix a small memory leak caused by bad indexing of EC recovery matrices 2023-04-11 00:30:36 +03:00
osd_rmw.h Implement metadata dump tool 2022-06-10 18:50:09 +03:00
osd_rmw_test.cpp Fix incorrect parity read-modify-write calculation when writing into a lost chunk 2023-04-09 02:06:10 +03:00
osd_secondary.cpp Remove etcd timeout and keepalive interval hardcode 2022-01-23 00:00:00 +03:00
osd_test.cpp Add missing close() in test stubs 2023-03-15 00:23:56 +03:00
pg_states.cpp Remove PG "peered" state 2023-02-21 01:30:42 +03:00
pg_states.h Experimental: Handle degraded deletions by comparing object versions with epochs 2023-04-29 00:21:22 +03:00
qemu_driver.c Fix QEMU driver compatibility with QEMU 8.0 2023-04-25 11:20:21 +03:00
ringloop.cpp Add set_immediate to ringloop and use it for bs/osd ops to prevent reenterability issues 2023-02-09 17:37:26 +03:00
ringloop.h Add set_immediate to ringloop and use it for bs/osd ops to prevent reenterability issues 2023-02-09 17:37:26 +03:00
rw_blocking.cpp Fix read/write return type in rw_blocking 2023-03-15 01:08:14 +03:00
rw_blocking.h Support zero-copy send in fio_sec_osd to allow testing it 2021-12-27 02:12:44 +03:00
sha256.c Simplified NFS proxy based on own NFS/XDR implementation 2022-05-07 01:01:20 +03:00
sha256.h Simplified NFS proxy based on own NFS/XDR implementation 2022-05-07 01:01:20 +03:00
str_util.cpp Implement safety check for OSD removal, translate all '-' to '_' in cli options 2022-12-26 02:48:48 +03:00
str_util.h Implement safety check for OSD removal, translate all '-' to '_' in cli options 2022-12-26 02:48:48 +03:00
stub_bench.cpp Add missing close() in test stubs 2023-03-15 00:23:56 +03:00
stub_osd.cpp Use the larger sockaddr_storage structure 2022-02-12 11:22:56 +03:00
stub_uring_osd.cpp Extract bind socket code into a utility function 2022-02-06 00:39:52 +03:00
test_allocator.cpp Skip double allocs when reading journal 2021-04-03 00:53:28 +03:00
test_blockstore.cpp Implement journaled write throttling for the SSD+HDD case 2021-04-10 17:44:12 +03:00
test_cas.cpp Add a test for CAS write operation 2021-06-15 00:12:35 +03:00
test_cluster_client.cpp Fix cluster_client test after last reenterability fixes 2023-02-05 01:47:32 +03:00
test_crc32.cpp Add crc32c test utility 2022-11-20 00:50:13 +03:00
test_pattern.h Fix build under clang and some warnings 2022-01-16 00:02:54 +03:00
test_shit.cpp Use (uint64_t)1 instead of 1l / 1ul 2022-04-16 01:48:14 +03:00
timerfd_manager.cpp Fix build under clang and some warnings 2022-01-16 00:02:54 +03:00
timerfd_manager.h Add microsecond accuracy to set_timer 2021-04-10 17:44:12 +03:00
vitastor.pc.in Release 0.8.8 2023-04-28 11:22:00 +03:00
vitastor_c.cpp Implement bdrv_co_block_status for snapshot export support 2023-01-07 17:06:58 +03:00
vitastor_c.h Implement bdrv_co_block_status for snapshot export support 2023-01-07 17:06:58 +03:00
xor.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00