Commit Graph

551 Commits (bf9a175efcf094460d580c34107b8ffc39a7f702)
 

Author SHA1 Message Date
Vitaliy Filippov bf9a175efc Move C/C++ sources to src subdirectory 2 years ago
Vitaliy Filippov 08aed962de Use CMake 2 years ago
Vitaliy Filippov 8c65e890b9 Slightly clean up the build script 2 years ago
Vitaliy Filippov 8cda70b889 Allow to enable AddressSanitizer with "ASAN=1 make" 2 years ago
Vitaliy Filippov 61ab22403a Use w=8 with jerasure 2 years ago
Vitaliy Filippov 16da663a66 Add another test for failure domains 2 years ago
Vitaliy Filippov 4a2dcf7b6b Update the license to VNPL 1.1
VNPL 1.1 is slightly reworded to make it clear that proprietary software
interacting with Vitastor and providing some kind of service to end users isn't
a "Proxy Program" if it's not specially designed to be used with Vitastor.

For example, Windows OS running in a virtual machine stored in a Vitastor
cluster clearly isn't.
2 years ago
Vitaliy Filippov 8d48cc56b0 Generate randomly permutated OSD combinations when optimizing for compressed chunks 2 years ago
Vitaliy Filippov 9f58f01425 Mirror afr.js from /vitalif/ceph-afr-calc 2 years ago
Vitaliy Filippov b9e7d31aa1 Release v0.5.4
- Fix a rare hang, more or less reproducible with very slow drives
- Fix a hang with the no_same_sector_overwrites mode
2 years ago
Vitaliy Filippov 2d9f09dcb6 Attempt forced trim when stopping an overrun flusher
Fixes a rare hang happening in the event of journal space running out without
new work to do for flushers except the current sector.
The hang could be reproduced more or less consistently with very slow drives.
2 years ago
Vitaliy Filippov 7cc59260c5 Fix no_same_sector_overwrites related bug 2 years ago
Vitaliy Filippov ca0a11ec85 Release 0.5.3 2 years ago
Vitaliy Filippov 51c0b5afee Whitelist more leaks 2 years ago
Vitaliy Filippov e1e01d042e Rename sector_info.usage_count to flush_count 2 years ago
Vitaliy Filippov 534a4a657e Rename space_check.sectors_required to sectors_to_write 2 years ago
Vitaliy Filippov 9b5d8b9ad4 Fix multiple-sector journal writes, add assertions to not miss any SQEs 2 years ago
Vitaliy Filippov e66ed47515 Clear SQEs before returning them to the caller to prevent erroneous double submissions 2 years ago
Vitaliy Filippov 036c6d4c42 Add a simple test case 2 years ago
Vitaliy Filippov 4cb79a3bf8 Allow to calculate simple-offsets for files 2 years ago
Vitaliy Filippov 3bf53754c2 Fix several I/O bugs 2 years ago
Vitaliy Filippov 6023cac361 Do not stop clients before they are connected 2 years ago
Vitaliy Filippov 915d04c446 Allow empty global configuration, report OSD statistics faster 2 years ago
Vitaliy Filippov 21e06ea40d Fix memory leaks in fio engines 2 years ago
Vitaliy Filippov 9ef7f865b0 Fix incorrect calls to prepare_journal_sector_write() when flushing multiple sectors 2 years ago
Vitaliy Filippov 9dd20a31aa Do not use pg_minsize in the client code! 2 years ago
Vitaliy Filippov 28be049909 Dump only actual part of the journal by default 2 years ago
Vitaliy Filippov 78fbaacf1f External jerasure's w into defines
In fact, w=8 looks better than w=32, so it may be changed in the future
2 years ago
Vitaliy Filippov 1526c5a213 Add lp_solve into dependencies 2 years ago
Vitaliy Filippov c7cc414c90 Skip removed descriptors in epoll (this is possible in real clusters) 2 years ago
Vitaliy Filippov f4ea313707 Fix cl->read_op being freed without calling the completion callback 2 years ago
Vitaliy Filippov b88b76f316 Parallel usage of multiple network interfaces was a sick fantasy 2 years ago
Vitaliy Filippov 4a17a61d1f Make rm_inode work with incomplete and degraded objects, allow to wait before deleting objects 2 years ago
Vitaliy Filippov ccabbbfbcb For reference: include a spec patch for building QEMU 4.2 or CentOS 7 3 years ago
Vitaliy Filippov 26dac57083 State that jerasure is now supported 3 years ago
Vitaliy Filippov 44a53d8352 Huh. Fix rpath for packages 3 years ago
Vitaliy Filippov 9d80bd2d98 Build with jerasure, split some build scripts 3 years ago
Vitaliy Filippov 322a38a144 Fix non-preserved real_pg_count leading to inability to change pools online 3 years ago
Vitaliy Filippov 1018764c91 Fix write->delete->write bugs, add & fix some debugging output 3 years ago
Vitaliy Filippov a45e0e5e67 Use custom decoding instead of just jerasure_matrix_decode()
- Cache the decoding matrix
- Don't do unnecessary erasures->erased conversion during decoding
- Avoid extra memory allocations during decoding
- Don't always reconstruct coding chunks
- Reconstruct chunks one-by-one, without overlapping ranges
3 years ago
Vitaliy Filippov 44656fbf67 Allow writes with low version numbers after a delete 3 years ago
Vitaliy Filippov 089f138e0c Allow situations where the journal contains a big_write(v1) after delete(v2) and v1 < v2
Fixes a crash in the following scenario:
- client issues a delete request (object version is at least 2)
- OSD has time to flush it to the metadata, but doesn't have time to move the journal start pointer on disk
- client overwrites the same object and it gets the version number 1 again
- OSD is restarted and sees delete(v=2), big_write(v=1) in the journal
- dirty_db sequence gets broken and OSD crashes with assert("Writes and deletes shouldn't happen at the same time")
3 years ago
Vitaliy Filippov bcc8e697f9 Delete PGs when deleting pools
(All OSD crash with "Online PG count change not allowed" if you try to delete an active pool though)
3 years ago
Vitaliy Filippov a4c46ba745 Add jerasure EC support (reed_sol_van, others are slower) (not tested yet) 3 years ago
Vitaliy Filippov 5596ad8997 Use custom QEMU build for CentOS 7 3 years ago
Vitaliy Filippov 59c29b0cee Fix RPATH for CentOS builds, add additional repos into the CentOS installation instructions 3 years ago
Vitaliy Filippov 959089b919 Enable progress_notify=true for etcd watches 3 years ago
Vitaliy Filippov d3e7749616 Final fixes for packaging 3 years ago
Vitaliy Filippov b56f8820ec Container packaging for Debian 11 Bullseye, CentOS 7 and CentOS 8 3 years ago
Vitaliy Filippov 4bd2bd48eb Build Vitastor packages, too 3 years ago