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.
2021-02-25 23:55:33 +03:00
Vitaliy Filippov
4a17a61d1f
Make rm_inode work with incomplete and degraded objects, allow to wait before deleting objects
2020-12-28 16:38:08 +03:00
Vitaliy Filippov
a4c46ba745
Add jerasure EC support (reed_sol_van, others are slower) (not tested yet)
2020-12-04 11:47:27 +03:00
Vitaliy Filippov
5335c8de8e
Do not use unordered_map for list_ops/list_results
2020-10-17 23:30:16 +00:00
Vitaliy Filippov
0471b09b9c
Add license notices to all source code files
2020-09-17 23:07:06 +03:00
Vitaliy Filippov
168cc2c803
Add pool support to OSD, part 1
...
This just fixes all the code so it builds and works like before,
but doesn't yet bring the support for replicated pools.
2020-09-04 17:04:17 +03:00
Vitaliy Filippov
a7929931eb
Implement PG epochs to prevent the "version split"
...
The "version split" is when:
- A block is written to 1 OSD out of 3, all of them die
- OSDs 2 and 3 come up, the same block is written to both of them
- The remaining OSD comes up. Now all 3 OSDs have the same version of the same object,
but with different data.
2020-07-04 00:55:27 +03:00
Vitaliy Filippov
f6a01a4819
Extract "state-watching" etcd client into a separate file
2020-05-22 12:38:40 +03:00
Vitaliy Filippov
e8149e5848
Implement OSD_OP_DELETE
2020-05-05 00:39:51 +03:00
Vitaliy Filippov
6355b968f4
Track osd_set history and all_peers separately
2020-05-04 15:28:07 +03:00
Vitaliy Filippov
7b57eeeeb3
Implement PG state locking and PG moving in response to etcd events
2020-04-29 22:23:38 +03:00
Vitaliy Filippov
f95299b769
Take PG history into account when starting PGs
2020-04-19 00:20:18 +03:00
Vitaliy Filippov
37b27c3025
Implement basic OSD status reporting to Consul
2020-04-14 14:52:06 +03:00
Vitaliy Filippov
dfb6e15eaa
Implement graceful stopping of PGs
2020-04-03 13:03:42 +03:00
Vitaliy Filippov
92c800bb64
Forget unstable writes when re-peering, rename parity_block_size -> pg_stripe_size, pg_parity_size -> pg_block_size
2020-03-31 02:09:25 +03:00
Vitaliy Filippov
8a8b619875
Handle secondary OSD connection errors [in theory]
2020-03-30 19:51:34 +03:00
Vitaliy Filippov
250f22c0b6
Implement basic degraded object recovery (integrated into primary_write)
2020-03-25 01:17:50 +03:00
Vitaliy Filippov
036f4c5bf3
Fix unstable flushing, include extra OSDs with old object versions in osd_set
2020-03-23 20:28:47 +03:00
Vitaliy Filippov
fd8e1a8418
Slightly reorganize object state check code
2020-03-23 00:42:17 +03:00
Vitaliy Filippov
a08e0bfacd
Treat misplaced and degraded as separate state parts
2020-03-23 00:40:31 +03:00
Vitaliy Filippov
1ec9794376
Extract flushing into a separate file
2020-03-15 18:39:31 +03:00
Vitaliy Filippov
d8164e9d84
Print PG states on every change
2020-03-14 22:19:45 +03:00
Vitaliy Filippov
21d0b06959
Implement flushing (stabilize/rollback) of unstable entries on start of the PG
2020-03-14 02:49:34 +03:00
Vitaliy Filippov
e19d9fde5f
Fix peering_pg, begin tests
2020-03-06 02:02:49 +03:00
Vitaliy Filippov
b27ad550cf
Use btree_map instead of sparsepp
2020-03-04 17:12:27 +03:00
Vitaliy Filippov
1733de2db6
Test & fix single-PG primary OSD
...
- Add support for benchmarking single primary OSD in fio_sec_osd
- Do not wait for the next event in flushers (return resume_0 back)
- Fix flushing of zero-length writes
- Print PG object count when peering
- Print journal free space when starting and when congested
2020-02-26 19:05:29 +03:00
Vitaliy Filippov
74673c761f
Make basic primary-write work
2020-02-25 02:55:58 +03:00
Vitaliy Filippov
4c0178f180
Fix some memory freeing
2020-02-24 01:04:23 +03:00
Vitaliy Filippov
ffe073473a
Remove hardcode of the EC(2+1) scheme, now it supports EC(k+1), fix some bugs
2020-02-13 19:13:17 +03:00
Vitaliy Filippov
a66b34e04d
Implement event-driven PG peering
2020-02-11 13:41:34 +03:00
Vitaliy Filippov
235d15422c
Mostly finish primary-OSD-read
2020-02-03 14:18:21 +03:00
Vitaliy Filippov
9fb2d3f840
Fill out the rest of the degraded read logic; now we need to make it a "coroutine"
2020-02-02 00:05:56 +03:00
Vitaliy Filippov
ec50957c41
WIP primary OSD read
2020-01-30 22:06:46 +03:00
Vitaliy Filippov
1447c44b68
Calculate required stabilize/rollback actions, add more map perf tests
2020-01-27 01:34:30 +03:00
Vitaliy Filippov
98efdb78bd
Extract object state calculation to a separate file and slightly test it
2020-01-24 12:56:51 +03:00