vitastor/src
Vitaliy Filippov 4181add1f4 Remove creepy "metadata copying" during overwrite
Instead of it, just do not verify checksums of currently mutated objects.
When clean data modification during flush runs in parallel to a read request,
that request may read a mix of old and new data. It may even read a mix of
multiple flushed versions if it lasts too long... And attempts to verify it
using temporary copies of metadata make the algorithm too complex and creepy.
2023-07-29 12:17:18 +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.9.6 2023-07-29 10:54: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 Implement large csum_block_size support (more than 4k) + refactor blockstore_flush 2023-07-29 12:17:18 +03:00
allocator.h Implement large csum_block_size support (more than 4k) + refactor blockstore_flush 2023-07-29 12:17:18 +03:00
blockstore.cpp Implement online config update 2023-03-26 19:21:50 +03:00
blockstore.h Implement bitmap-granular (4k) metadata & data checksums 2023-07-29 12:17:18 +03:00
blockstore_disk.cpp Allow to forcibly set meta_format 2023-07-29 12:17:18 +03:00
blockstore_disk.h Use zero checksum size for zero-length writes 2023-07-29 12:17:18 +03:00
blockstore_flush.cpp Remove creepy "metadata copying" during overwrite 2023-07-29 12:17:18 +03:00
blockstore_flush.h Remove creepy "metadata copying" during overwrite 2023-07-29 12:17:18 +03:00
blockstore_impl.cpp Support keeping checksums on disk (not in memory) 2023-07-29 12:17:18 +03:00
blockstore_impl.h Remove creepy "metadata copying" during overwrite 2023-07-29 12:17:18 +03:00
blockstore_init.cpp Support keeping checksums on disk (not in memory) 2023-07-29 12:17:18 +03:00
blockstore_init.h Implement bitmap-granular (4k) metadata & data checksums 2023-07-29 12:17:18 +03:00
blockstore_journal.cpp Implement large csum_block_size support (more than 4k) + refactor blockstore_flush 2023-07-29 12:17:18 +03:00
blockstore_journal.h Implement large csum_block_size support (more than 4k) + refactor blockstore_flush 2023-07-29 12:17:18 +03:00
blockstore_open.cpp Support keeping checksums on disk (not in memory) 2023-07-29 12:17:18 +03:00
blockstore_read.cpp Remove creepy "metadata copying" during overwrite 2023-07-29 12:17:18 +03:00
blockstore_rollback.cpp ...and partially remove the perversion with bitmap inlining 2023-07-29 12:17:18 +03:00
blockstore_stable.cpp Add another assert-type check (it does not fire, just as a safety measure for the future) 2023-06-17 00:07:22 +03:00
blockstore_sync.cpp ...and partially remove the perversion with bitmap inlining 2023-07-29 12:17:18 +03:00
blockstore_write.cpp Use clean_dyn_size for space check 2023-07-29 12:17:18 +03:00
cli.cpp Add scrub documentation 2023-05-20 23:19:39 +03:00
cli.h Implement vitastor-cli fix 2023-05-20 23:19:39 +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_describe.cpp Fix compile errors with gcc 10 2023-05-20 23:20:09 +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_fix.cpp Implement vitastor-cli fix 2023-05-20 23:19:39 +03:00
cli_fix.h Fix compile errors with gcc 10 2023-05-20 23:20:09 +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 Support UTF-8 in vitastor-cli table output 2023-07-25 01:48:57 +00:00
cli_merge.cpp Fix CAS retries during snapshot merge 2023-06-30 02:30:23 +03:00
cli_modify.cpp Handle extending writes correctly in NFS proxy 2023-07-26 02:09:43 +03:00
cli_rm.cpp Do not print last subcommand result twice during "inverse" snapshot merge 2023-06-30 02:07:10 +03:00
cli_rm_data.cpp Warn about unfinished deletions in rm-data 2023-06-30 01:18:25 +03:00
cli_rm_osd.cpp Store next scrub timestamp instead of last scrub timestamp 2023-05-20 23:19:39 +03:00
cli_status.cpp Report scrub I/O in vitastor-cli status 2023-06-17 21:11:21 +03:00
cluster_client.cpp Fix CAS retries during snapshot merge 2023-06-30 02:30:23 +03:00
cluster_client.h Do not hang on inactive OSDs during delete, report and skip them instead 2023-06-30 00:15:16 +03:00
cluster_client_list.cpp Do not hang on inactive OSDs during delete, report and skip them instead 2023-06-30 00:15:16 +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 Implement bitmap-granular (4k) metadata & data checksums 2023-07-29 12:17:18 +03:00
disk_tool.cpp Implement bitmap-granular (4k) metadata & data checksums 2023-07-29 12:17:18 +03:00
disk_tool.h Implement bitmap-granular (4k) metadata & data checksums 2023-07-29 12:17:18 +03:00
disk_tool_journal.cpp Fill journal header to know checksum type & size when dumping journal with --all 2023-07-29 12:17:18 +03:00
disk_tool_meta.cpp Rename meta_version to meta_format 2023-07-29 12:17:18 +03:00
disk_tool_prepare.cpp Also allow "0" and "no" as false for inmemory_metadata and inmemory_journal 2023-07-25 01:48:57 +00:00
disk_tool_resize.cpp Rename meta_version to meta_format 2023-07-29 12:17:18 +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 Implement bitmap-granular (4k) metadata & data checksums 2023-07-29 12:17:18 +03:00
epoll_manager.cpp Ignore ENOENT in epoll_ctl 2023-05-08 20:39: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 Support reloading state when etcd says "revisions were compacted" 2023-07-07 01:33:48 +03:00
etcd_state_client.h Store next scrub timestamp instead of last scrub timestamp 2023-05-20 23:19:39 +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 Close client FDs only when destroying the client, after handling all async reads/writes 2023-05-25 00:52:43 +03:00
messenger.h Measure scrub statistics 2023-06-17 20:56:26 +03:00
msgr_op.cpp Fix primary_read bitmap buffers being freed too early (use-after-free) 2023-06-30 12:47:45 +03:00
msgr_op.h Fix primary_read bitmap buffers being freed too early (use-after-free) 2023-06-30 12:47:45 +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 Fix primary_read bitmap buffers being freed too early (use-after-free) 2023-06-30 12:47:45 +03:00
msgr_send.cpp Fix primary_read bitmap buffers being freed too early (use-after-free) 2023-06-30 12:47:45 +03:00
msgr_stop.cpp Close client FDs only when destroying the client, after handling all async reads/writes 2023-05-25 00:52:43 +03:00
nbd_proxy.cpp Fix \n in nbd_proxy 2023-06-19 01:48:58 +03:00
nfs_conn.cpp Handle parallel NFS extending writes without imposing extra load on etcd 2023-07-27 02:26:17 +00: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 Handle parallel NFS extending writes without imposing extra load on etcd 2023-07-27 02:26:17 +00: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 Allow to disable scrub_find_best 2023-05-21 12:33:38 +03:00
osd.h Support reloading state when etcd says "revisions were compacted" 2023-07-07 01:33:48 +03:00
osd_cluster.cpp Support reloading state when etcd says "revisions were compacted" 2023-07-07 01:33:48 +03:00
osd_flush.cpp Slightly improve some debug prints 2023-05-29 01:04:16 +03:00
osd_id.h Add a new recovery_pg_switch setting to mix all PGs during recovery 2022-12-30 02:03:33 +03:00
osd_main.cpp Use json11 instead of blockstore_config_t 2021-04-30 00:52:46 +03:00
osd_ops.cpp Implement "describe object(s)" operation 2023-05-20 23:19:39 +03:00
osd_ops.h Fix primary_read bitmap buffers being freed too early (use-after-free) 2023-06-30 12:47:45 +03:00
osd_peering.cpp Fix auto_scrubs not starting because of < vs <= =)) 2023-06-17 17:32:21 +03:00
osd_peering_pg.cpp Slightly improve some debug prints 2023-05-29 01:04:16 +03:00
osd_peering_pg.h Implement "describe object(s)" operation 2023-05-20 23:19:39 +03:00
osd_peering_pg_test.cpp Move tests to "make test" 2023-02-21 01:30:42 +03:00
osd_primary.cpp Fix primary_read bitmap buffers being freed too early (use-after-free) 2023-06-30 12:47:45 +03:00
osd_primary.h Implement scrubbing "data path" - OSD_OP_SCRUB 2023-05-20 23:19:39 +03:00
osd_primary_chain.cpp Implement ambiguity detection during scrub 2023-05-20 23:19:39 +03:00
osd_primary_describe.cpp Implement "describe object(s)" operation 2023-05-20 23:19:39 +03:00
osd_primary_subops.cpp Measure scrub statistics 2023-06-17 20:56:26 +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 Support keeping checksums on disk (not in memory) 2023-07-29 12:17:18 +03:00
osd_rmw.cpp Fix brute-force error locator for EC n+k with k > 2 2023-05-21 00:57:14 +03:00
osd_rmw.h Allow scrub to fix corrupted object states 2023-05-20 23:19:39 +03:00
osd_rmw_test.cpp Fix brute-force error locator for EC n+k with k > 2 2023-05-21 00:57:14 +03:00
osd_scrub.cpp Measure scrub statistics 2023-06-17 20:56:26 +03:00
osd_secondary.cpp Add min/max stripe and limit to OP_LIST 2023-05-20 23:19:39 +03:00
osd_test.cpp Add missing close() in test stubs 2023-03-15 00:23:56 +03:00
pg_states.cpp Implement ambiguity detection during scrub 2023-05-20 23:19:39 +03:00
pg_states.h Implement ambiguity detection during scrub 2023-05-20 23:19:39 +03:00
qemu_driver.c Remove has_work, it was unnecessary 2023-07-21 00:04:37 +03:00
ringloop.cpp Reset eventfd on every ringloop::loop() 2023-07-21 00:04:41 +03:00
ringloop.h Integrate QEMU driver with io_uring 2023-07-04 00:28:23 +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 Support UTF-8 in vitastor-cli table output 2023-07-25 01:48:57 +00:00
str_util.h Support UTF-8 in vitastor-cli table output 2023-07-25 01:48:57 +00: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.9.6 2023-07-29 10:54:00 +03:00
vitastor_c.cpp Do not use bool in C library 2023-07-18 23:37:53 +03:00
vitastor_c.h Do not use bool in C library 2023-07-18 23:37:53 +03:00
xor.h Move C/C++ sources to src subdirectory 2021-02-25 23:59:03 +03:00