Commit Graph

703 Commits (2a02f3c4c7329e0fd387ccbff9f2c56c336a325a)
 

Author SHA1 Message Date
Vitaliy Filippov 2a02f3c4c7 Add metadata superblock and check it on start
Refuse to start if the superblock is missing or bad version;
zero out the metadata area when initializing superblock.
2 years ago
Vitaliy Filippov f684d9101a Refuse to start with old journal version 2 years ago
Vitaliy Filippov c72fddd714 Notes about master/0.5.x 2 years ago
Vitaliy Filippov a1f2f19489 Do not increment inode statistics if the object already exists 2 years ago
Vitaliy Filippov 82c1a7ec67 Fix statistics reporting, split inode number into pool & inode 2 years ago
Vitaliy Filippov 2ab423d4ef Implement journaled write throttling for the SSD+HDD case 2 years ago
Vitaliy Filippov 4694811eab Add microsecond accuracy to set_timer 2 years ago
Vitaliy Filippov 6b988de17d Remove timerfd_interval 2 years ago
Vitaliy Filippov 37efdc2a83 Fix bitmap_set for replicated pools 2 years ago
Vitaliy Filippov 591cad09c9 Fix bitmaps for objects larger than 128K 2 years ago
Vitaliy Filippov b907ad50aa Oops, forgot to add external bitmaps to blockstore in some places 2 years ago
Vitaliy Filippov 7308d6a6c0 Note about etcd 3.4.15 2 years ago
Vitaliy Filippov 5f5b6ef150 Enable chained reads in the client 2 years ago
Vitaliy Filippov 38a3df4a0e Implement chained (optimized) read in the primary OSD code 2 years ago
Vitaliy Filippov 6950b8e3a0 Watch inode metadata revisions 2 years ago
Vitaliy Filippov 0cea3576fb Add "read bitmaps" operation to secondary OSD protocol 2 years ago
Vitaliy Filippov f01eea07d3 Add simplified interface to read blockstore bitmaps synchronously 2 years ago
Vitaliy Filippov 2c2f08aca2 Shorten some structure names 2 years ago
Vitaliy Filippov d6524670e1 Introduce data distribution locality 2 years ago
Vitaliy Filippov 879ecfa74d Fix wording 2 years ago
Vitaliy Filippov aea2d19d35 Change Telegram chat link 2 years ago
Vitaliy Filippov 04f86dc00b Fix Russian README for CMake build 2 years ago
Vitaliy Filippov 7aeb2cbac7 Capture all by value in qemu_proxy 2 years ago
Vitaliy Filippov 519f081006 Add LICENSE 2 years ago
Vitaliy Filippov e50f703e1d Add Russian version of the README 2 years ago
Vitaliy Filippov 2612d3198a Introduce image names and metadata storage in etcd
Each inode has: image name, parent inode number & pool, size and readonly flag

Snapshots are created by switching image name to a different inode number
while using the older inode as parent.
2 years ago
Vitaliy Filippov ab39ce2bbb Use clean_entry_bitmap_size instead of entry_attr_size back because of changed bitmap handling 2 years ago
Vitaliy Filippov d0c2e31312 Add a test for snapshots, fix bugs. Now the test passes 2 years ago
Vitaliy Filippov 9038d42327 Fix several snapshot I/O bugs 2 years ago
Vitaliy Filippov 691f066055 Actual snapshot support (untested) 2 years ago
Vitaliy Filippov ffe1cd4c79 Report inode I/O statistics, aggregate it in the monitor 2 years ago
Vitaliy Filippov 4ae1b84c67 Report inode space usage statistics to etcd, aggregate it in the monitor 2 years ago
Vitaliy Filippov c35963967f Add inode space usage statistics tracking to blockstore 2 years ago
Vitaliy Filippov 0aa2dd2890 Send bitmaps with primary-reads, actually read bitmaps for READ ops 2 years ago
Vitaliy Filippov 6bf88883ac Allocate bitmaps along with stripes to avoid memory fragmentation 2 years ago
Vitaliy Filippov 004f265393 Remove cryptic bitmap inlining from bs_op_t and osd_op_t, use bitmap in primary OSD code 2 years ago
Vitaliy Filippov 860ac24762 Add "external" bitmap support to the secondary OSD protocol 2 years ago
Vitaliy Filippov 6107a4d07b Add "external" bitmap support to blockstore 2 years ago
Vitaliy Filippov 95c29b9dc3 Add "external" bitmap support to osd_rmw 2 years ago
Vitaliy Filippov d99407dcec Check QEMU block-vitastor.so during the test 2 years ago
Vitaliy Filippov 6909807068 Allow to start the OSD just to flush the journal completely 2 years ago
Vitaliy Filippov ec90fe6ec1 Release 0.5.13
Another followup to 0.5.11
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 59fbcef734 Release 0.5.12
Fix qemu driver broken in 0.5.11 :)
2 years ago
Vitaliy Filippov 40b7c21fb1 Followup to 307c1731c1 - fix mark_stable 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 462650134e Release 0.5.11
Another bunch of fixes, including important ones. Now OSDs are stable in SSD+HDD
configurations and everything is mostly ready for the merge of master branch.

Features:

- Add min_flusher_count configuration (good for HDDs)
- Shuffle PGs for better data device utilisation
- Make OSDs benefit from the immediate_commit=small setting if it's applicable

Bug fixes:

- Rework client code to fix write ordering during operation replay
- Rework error handling code so OSDs don't crash in reaction to a crash of their peer OSDs
- Fix several block layer problems related to the journal, some of which
  were leading to double allocations of the same block during journal replay
- Fix monitors crashing during the removal of OSD keys from etcd
- Fix data fsyncs being incorrectly disabled when only disable_journal_fsync was set
- Always zero out unused part of request/reply headers
- Fix some theoretically possible read/write ordering issues
- Don't try to "recover" misplaced objects if it would make them degraded
- Fix heartbeats sometimes preventing OSD to establish connections
2 years ago
Vitaliy Filippov 8d87e32175 Fix msgr_op.h includes 2 years ago
Vitaliy Filippov b0b2e7df3c Fix use-after-free in keepalive_timer and rework stop_client()
The bug reproduced if fio was temporarily stopped with SIGSTOP
during write test and then resumed after 10 seconds. In this case
"pings" were failed for all clients and fio process crashed with
'use-after-free' in keepalive_timer. It happened because it called
stop_client while having a live iterator to the map.
2 years ago
Vitaliy Filippov 97efb9e299 Do not crash on PG re-peering events when operations are in progress 2 years ago