vitastor/src
Vitaliy Filippov 81fc8bb94c Release 0.8.4
New features:
- Implement QCOW2 image/snapshot export via qemu-img (bdrv_co_block_status in the driver)
- Remove OSDs from PG history during `vitastor-cli rm-osd` to prevent `left_on_dead` PG states after deletion
- Add a new recovery_pg_switch setting to mix all PGs during recovery, to almost
  fully reduce the probability of ENOSPC during rebalance
- Introduce partial ENOSPC ("OSD is full") handling - now ENOSPC doesn't turn
  into cascades of crashes
- Add migration support to Proxmox VE Vitastor driver
- Track last_clean_pgs on a per-pool basis thus reducing data movement in a cluster
  with pools remaining unclean/degraded for a long time

Bug fixes:
- Fix a bug where monitor could generate degraded PGs if one of the hosts had no OSDs
- Fix a bug where monitor could skip PG redistribution with a lot of OSDs in cluster
- Report PG history synchronously on the first write, which improves PG consistency
  and availability at the same time, because history now gets reported correctly
  and doesn't get reported without the need for it
- Fix possible write and recovery stalls which could happen in a cluster with both EC and replicated pools
- Make OSD and monitors sanitize & deduplicate PG history items in etcd
- Fix non-working OSD peer config safety check
- Fix a rare journal flush stall where flushing wasn't activated with full journal, but with empty flush queue
- Fix builds without ISA-L (jerasure-only) crashing with EC N+K, K>=2 due to the lack of 16-byte buffer alignment
- Fix a possible crash for EC N+K, K>=2 when calculating a parity chunk with previous parity chunk missing
- Fix a bug where vitastor-disk purge with suppressed warnings didn't work
2023-01-13 23:59:54 +03:00
..
mock Fix minor bugs in snapshot removal, check it in tests 2021-09-25 19:30:29 +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.4 2023-01-13 23:59:54 +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 Autosync based on number of unstable ops to prevent journal stalls 2021-10-30 14:26:48 +03:00
blockstore.h Use simple std::map for the config 2022-07-15 01:38:30 +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 rare journal flush stall 2022-12-30 02:03:33 +03:00
blockstore_flush.h Shard clean_db by PGs to speedup listings 2022-02-20 00:21:24 +03:00
blockstore_impl.cpp Do not sync peer OSDs before listing 2023-01-03 00:05:45 +03:00
blockstore_impl.h Remove LIST op limiter 2022-12-26 02:48:48 +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 Set journal/meta devices to data device explicitly instead of "" 2022-07-15 01:38:30 +03:00
blockstore_read.cpp Fix another rare journal flush stall 2022-12-30 02:03:33 +03:00
blockstore_rollback.cpp Fix another rare journal flush stall 2022-12-30 02:03:33 +03:00
blockstore_stable.cpp Extract disk opening functions to separate module 2022-07-15 01:38:30 +03:00
blockstore_sync.cpp Extract disk opening functions to separate module 2022-07-15 01:38:30 +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 Rename base64.{cpp.h} to str_util 2022-07-31 01:12:37 +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 Implement safety check for OSD removal, translate all '-' to '_' in cli options 2022-12-26 02:48:48 +03:00
cli_rm_osd.cpp Also remove deleted OSD from PG configuration and last_clean_pgs 2023-01-06 12:46:44 +03:00
cli_status.cpp Allow to configure block_size, bitmap_granularity and immediate_commit per-pool 2022-08-11 01:56:33 +03:00
cluster_client.cpp Implement bdrv_co_block_status for snapshot export support 2023-01-07 17:06:58 +03:00
cluster_client.h Fix backwards compatibility in cluster_client 2023-01-12 02:37:31 +03:00
cluster_client_list.cpp Fix possible duplication of ping & op message IDs 2022-12-04 00:16:47 +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 Add missing offset&len into big_writes journal dump, fix commas again 2022-12-21 02:51:11 +03:00
disk_tool_meta.cpp Add missing offset&len into big_writes journal dump, fix commas again 2022-12-21 02:51:11 +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 Fix vitastor-disk purge (now it works) 2022-12-27 02:28:20 +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 Make OSD sort & sanitize PG history items 2023-01-01 23:17:42 +03:00
etcd_state_client.h Allow to configure block_size, bitmap_granularity and immediate_commit per-pool 2022-08-11 01:56:33 +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 Fix possible use-after-free during pings 2022-12-04 00:16:47 +03:00
messenger.h Allow to configure block_size, bitmap_granularity and immediate_commit per-pool 2022-08-11 01:56:33 +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 Fix rand initialization, add etcd connection/disconnection logging 2022-01-20 00:45:49 +03:00
msgr_rdma.h Remove naggy RDMA messages when log level is zero 2021-11-06 14:36:23 +03:00
msgr_receive.cpp Handle EINTR 2022-01-22 23:59:37 +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 Actual snapshot support (untested) 2021-04-10 17:44:12 +03:00
osd.cpp Add a new recovery_pg_switch setting to mix all PGs during recovery 2022-12-30 02:03:33 +03:00
osd.h Do not sync peer OSDs before listing 2023-01-03 00:05:45 +03:00
osd_cluster.cpp Try to re-peer PGs on history change 2023-01-06 12:46:44 +03:00
osd_flush.cpp Add a new recovery_pg_switch setting to mix all PGs during recovery 2022-12-30 02:03:33 +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 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 Do not sync peer OSDs before listing 2023-01-03 00:05:45 +03:00
osd_peering_pg.cpp Report PG history synchronously during write 2023-01-01 23:41:05 +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 Return ENOSPC as the primary OSD 2022-12-30 02:03:33 +03:00
osd_primary.h Return ENOSPC as the primary OSD 2022-12-30 02:03:33 +03:00
osd_primary_chain.cpp Return ENOSPC as the primary OSD 2022-12-30 02:03:33 +03:00
osd_primary_subops.cpp Return ENOSPC as the primary OSD 2022-12-30 02:03:33 +03:00
osd_primary_sync.cpp Return ENOSPC as the primary OSD 2022-12-30 02:03:33 +03:00
osd_primary_write.cpp Prevent reenterability side effects during PG history operation resume 2023-01-03 02:20:50 +03:00
osd_rmw.cpp Fix arithmetic on void* for clang 2023-01-13 23:58:42 +03:00
osd_rmw.h Implement metadata dump tool 2022-06-10 18:50:09 +03:00
osd_rmw_test.cpp Build osd_rmw_test both with and without ISA-L 2022-12-29 19:13:57 +03:00
osd_secondary.cpp Remove etcd timeout and keepalive interval hardcode 2022-01-23 00:00:00 +03:00
osd_test.cpp Use the larger sockaddr_storage structure 2022-02-12 11:22:56 +03:00
pg_states.cpp Report pg/history from OSD on every degraded activation 2021-11-13 22:39:17 +03:00
pg_states.h Report pg/history from OSD on every degraded activation 2021-11-13 22:39:17 +03:00
qemu_driver.c Fix qemu driver compilation warning/error 2023-01-13 23:44:39 +03:00
ringloop.cpp And one more sqe starvation fix 2022-02-01 02:50:16 +03:00
ringloop.h Fix compatibility with liburing >= 2.1 where it only has __pad2[2] 2022-01-31 22:49:40 +03:00
rw_blocking.cpp Handle EINTR 2022-01-22 23:59:37 +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 Use the larger sockaddr_storage structure 2022-02-12 11:22: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 Watch inode metadata revisions 2021-04-10 17:44:12 +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.4 2023-01-13 23:59:54 +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