Vitaliy Filippov
57e2c503f7
Rename osd_t::c_cli to msgr
2 years ago
Vitaliy Filippov
715bc8d53d
Release 0.6.2
...
- Fix a possible crash during SYNC when journal fsyncs are enabled
- Fix a memory leak in the chained read implementation
2 years ago
Vitaliy Filippov
0af077701c
Fix a possible crash during SYNC when journal fsyncs are enabled
2 years ago
Vitaliy Filippov
cac976ce25
Fix a memory leak in the chained read implementation
2 years ago
Vitaliy Filippov
acf0646542
Build common sources once
2 years ago
Vitaliy Filippov
ede1c1d667
Release 0.6.1
...
A bugfix for the new "chained read from snapshot" feature
2 years ago
Vitaliy Filippov
38bd51c97f
Remove aio_context assertion, it seems it is unneeded
2 years ago
Vitaliy Filippov
966fb763ca
Oooops, fix chained reads
2 years ago
Vitaliy Filippov
0b41ffc08d
Release 0.6.0
...
Warning: upgrading from 0.5.x is currently not supported!
Please create an issue if you really need upgrade capability.
New features:
- Snapshots and Copy-on-Write clones
- Inode (image) names
- Inode I/O and space statistics
- Write throttling for smoothing random write workloads in SSD+HDD configurations
2 years ago
Vitaliy Filippov
64eeb79051
Prevent 0.6.x OSDs from talking to 0.5.x
...
The new protocol is almost compatible - it has bitmaps, but also it has
a "bitmap_length" field. It's not hard to make 0.5-0.6 OSDs and clients
compatible, but for now I just assume nobody needs it.
If I'm wrong and anybody requests to upgrade their production 0.5.x system
to 0.6.x I'll fix it.
2 years ago
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
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
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
7aeb2cbac7
Capture all by value in qemu_proxy
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
6909807068
Allow to start the OSD just to flush the journal completely
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
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
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
Vitaliy Filippov
f6d705383a
Fix client connection recovery bugs, add dirty_ops limit
2 years ago