Vitaliy Filippov
d6524670e1
Introduce data distribution locality
2 years ago
Vitaliy Filippov
d0c2e31312
Add a test for snapshots, fix bugs. Now the test passes
2 years ago
Vitaliy Filippov
691f066055
Actual snapshot support (untested)
2 years ago
Vitaliy Filippov
0aa2dd2890
Send bitmaps with primary-reads, actually read bitmaps for READ ops
2 years ago
Vitaliy Filippov
18c72f4835
Correct reenterability fix (now verified with a test)
...
It's rather funny but 0.5.12 has to be re-published again
2 years ago
Vitaliy Filippov
efb3678606
Fix qemu-img broken in 0.5.11
...
Caused by the lack of reenterability of the main cluster_client function
2 years ago
Vitaliy Filippov
f6d705383a
Fix client connection recovery bugs, add dirty_ops limit
2 years ago
Vitaliy Filippov
a48e2bbf18
Fix write replay ordering when immediate_commit != all
...
Previous implementation didn't respect write ordering and could lead
to corrupted data when restarting writes after an OSD outage
Also rework cluster_client queueing logic and add tests for it to verify the correct behaviour
2 years ago
Vitaliy Filippov
3e162d95a0
Remove http_client.h include from etcd_state_client.h
2 years ago
Vitaliy Filippov
54f2353f24
Use bitmap granularity for alignment checks
2 years ago
Vitaliy Filippov
e47f6fba60
Remove cluster_client_t::stop()
2 years ago
Vitaliy Filippov
e1355cbc74
Report failed operation name in cluster_client
2 years ago
Vitaliy Filippov
ad577c4aac
Add PING operation and timeouts to detect OSD failures when a host goes down
2 years ago
Vitaliy Filippov
bf9a175efc
Move C/C++ sources to src subdirectory
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
9dd20a31aa
Do not use pg_minsize in the client code!
2 years ago
Vitaliy Filippov
530975aed7
Make it also build with GCC 8 and on Debian Buster
2 years ago
Vitaliy Filippov
9abf3c17c9
Correct fix for "Pool %u PG %u configuration is invalid" during startup
...
Establish watcher connection after loading PGs
2 years ago
Vitaliy Filippov
d952c24979
Use timeout in rw callback
2 years ago
Vitaliy Filippov
ece14a7d65
Hide "Connected with..." client messages by default
2 years ago
Vitaliy Filippov
15dba96375
Implement inode removal tool. Removes multiple objects from multiple OSDs in parallel
2 years ago
Vitaliy Filippov
3d05aa9362
Make it build with GCC 10, fio 3.20+ (atomics...) and QEMU 5.1
2 years ago
Vitaliy Filippov
9f2a948712
Make pg_stripe_size a per-pool config
2 years ago
Vitaliy Filippov
1967269c13
Resume operations in cluster_client when PGs are loaded (fixes a hang in qemu-img)
2 years ago
Vitaliy Filippov
0471b09b9c
Add license notices to all source code files
2 years ago
Vitaliy Filippov
73e26dbbea
Add up_wait_retry_interval to config and fix it so it actually works
2 years ago
Vitaliy Filippov
44973e7f27
Fix replicated pool bugs
2 years ago
Vitaliy Filippov
68c3e96e46
Add pool setting to fio and qemu drivers
2 years ago
Vitaliy Filippov
e051db5a73
Check for unsuccessful memory allocations
2 years ago
Vitaliy Filippov
4cdad634b5
Add pool support to the cluster client
2 years ago
Vitaliy Filippov
9b33f598d3
Fix two more cluster client bugs
...
1) Sync could delete an unfinished write due to the lack of ordering (fixed by introducing syncing_writes)
2) Writes could be postponed indefinitely due to bad resuming of operations after a sync
3 years ago
Vitaliy Filippov
592bcd3699
Fix QEMU driver bugs (QEMU and qemu-img now work! hooray!)
3 years ago
Vitaliy Filippov
d68370304e
Support iovecs in cluster_client_t
3 years ago
Vitaliy Filippov
8736b3ad32
Add destructors, make ringloop optional in cluster_client_t
3 years ago
Vitaliy Filippov
62343c8022
Allow to turn synchronous recvmsg/sendmsg on with a config option
3 years ago
Vitaliy Filippov
badf68c039
Support iovecs for read operations
3 years ago
Vitaliy Filippov
0f6d193d73
Postpone op callbacks to the end of handle_read(), fix a bug where primary OSD could reply -EPIPE with data to a read operation
3 years ago
Vitaliy Filippov
27ee14a4e6
Fix bugs in cluster_client
3 years ago
Vitaliy Filippov
64afec03ec
In theory, implement syncs and replay for the non-immediate commit mode
3 years ago
Vitaliy Filippov
437dc5b630
Implement a FIO engine for testing cluster I/O
3 years ago
Vitaliy Filippov
2187d06eac
Add a parameter to pass the initial config to client
3 years ago
Vitaliy Filippov
c573bc6bb3
(Probably almost) implement cluster client
3 years ago
Vitaliy Filippov
2f6cf605a1
Rename cluster_client to osd_messenger
3 years ago
Vitaliy Filippov
45b1c2fbf1
Fix canceling of write operations on PG re-peer (which led to use-after-free, too...)
3 years ago
Vitaliy Filippov
0aca6e9ca8
Extract peer connect and read-write loop into a separate file (to be shared with the client library)
3 years ago