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
2 years ago
Vitaliy Filippov
26dac57083
State that jerasure is now supported
2 years ago
Vitaliy Filippov
44a53d8352
Huh. Fix rpath for packages
2 years ago
Vitaliy Filippov
9d80bd2d98
Build with jerasure, split some build scripts
2 years ago
Vitaliy Filippov
322a38a144
Fix non-preserved real_pg_count leading to inability to change pools online
2 years ago
Vitaliy Filippov
1018764c91
Fix write->delete->write bugs, add & fix some debugging output
2 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
2 years ago
Vitaliy Filippov
44656fbf67
Allow writes with low version numbers after a delete
2 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")
2 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)
2 years ago
Vitaliy Filippov
a4c46ba745
Add jerasure EC support (reed_sol_van, others are slower) (not tested yet)
2 years ago
Vitaliy Filippov
5596ad8997
Use custom QEMU build for CentOS 7
2 years ago
Vitaliy Filippov
59c29b0cee
Fix RPATH for CentOS builds, add additional repos into the CentOS installation instructions
2 years ago
Vitaliy Filippov
959089b919
Enable progress_notify=true for etcd watches
2 years ago
Vitaliy Filippov
d3e7749616
Final fixes for packaging
2 years ago
Vitaliy Filippov
b56f8820ec
Container packaging for Debian 11 Bullseye, CentOS 7 and CentOS 8
2 years ago
Vitaliy Filippov
4bd2bd48eb
Build Vitastor packages, too
2 years ago
Vitaliy Filippov
a3fc9f8d7d
Add a Dockerfile to build patched QEMU for Debian (Buster)
2 years ago
Vitaliy Filippov
530975aed7
Make it also build with GCC 8 and on Debian Buster
2 years ago
Vitaliy Filippov
1446aad107
Simple patch for qemu-kvm .spec
2 years ago
Vitaliy Filippov
46479e2456
Add RPM build scripts for CentOS 8
2 years ago
Vitaliy Filippov
e41bee72a5
Lower node.js requirement to 10.x
2 years ago
Vitaliy Filippov
2e0f223ddb
Add RPM build scripts for CentOS 7
2 years ago
Vitaliy Filippov
3be7bc29d8
Make it build with QEMU 2.0, too
...
Also begin to work on rpms
2 years ago
Vitaliy Filippov
0c43ff9daf
Add scripts to copy fio and qemu includes to the source package
2 years ago
Vitaliy Filippov
64d471cf53
Add simple Debian packaging
2 years ago
Vitaliy Filippov
809b2ad8cd
Add install target
2 years ago
Vitaliy Filippov
550d4af151
Rename test.cpp to test_shit.cpp (random shit)
2 years ago
Vitaliy Filippov
cf0f23ab8e
Add patches for QEMU QAPI IDL
2 years ago
Vitaliy Filippov
a516fefa8c
Add qemu_module_dummy and qemu_stamp_xxx to qemu_driver.c
2 years ago
Vitaliy Filippov
3b7279b376
Add Ceph EC 2+1 test results
2 years ago
Vitaliy Filippov
824ea507d0
Do not try to push more segments than IOV_MAX at once as it leads to EMSGSIZE
2 years ago
Vitaliy Filippov
23ea409081
Fix "can't get SQE, will fall out of sync with EPOLLET" when overflowing the ring
...
OSDs shouldn't crash or hang with long iodepths anymore
2 years ago
Vitaliy Filippov
2ccb75974b
Fix a rare crash caused by a stopped client still being in write_ready_clients
2 years ago
Vitaliy Filippov
6561d4e040
Validate pool ID before executing the operation
...
Reply -EPIPE for non-existing pools because we assume that it means
that pool config isn't loaded yet. Previously OSD crashed on such operations
2 years ago
Vitaliy Filippov
1eda7f529d
Note about Linux 5.8+
2 years ago
Vitaliy Filippov
0a174bb313
Return success for already finished rollback operations
...
There was a FIXME and I actually hit it during tests :)
2 years ago
Vitaliy Filippov
720985e4c7
Fix NULL rmw buffer after the latest changes and add a testcase for it
2 years ago