Vitaliy Filippov
|
dcc9e75c63
|
Wait for write completion before fsync in blockstore_init
|
2020-01-29 16:40:21 +03:00 |
Vitaliy Filippov
|
47663bd1dc
|
Add (empty) osd_primary.cpp, rename osd_read to osd_receive, add FIXMEs for fsync
|
2020-01-28 22:40:50 +03:00 |
Vitaliy Filippov
|
2b09710d6f
|
Implement blockstore rollback operation
Rollback operation is required for the primary OSD to kill unstable
object versions in OSD peers so they don't occupy journal space
|
2020-01-24 20:18:14 +03:00 |
Vitaliy Filippov
|
d0ab2a20b2
|
Make fsync flags separate for data, metadata and journal
|
2020-01-17 13:41:37 +03:00 |
Vitaliy Filippov
|
43f6cfeb73
|
Extract alignments to options
|
2020-01-16 00:54:25 +03:00 |
Vitaliy Filippov
|
36d8c8724f
|
Fix sparse reads using bitmap, fix journal replay (we could sometimes lose its end)
|
2020-01-12 23:38:33 +03:00 |
Vitaliy Filippov
|
cf819eb442
|
Implement sparse block bitmap to avoid zero-fill
|
2020-01-12 02:55:32 +03:00 |
Vitaliy Filippov
|
bf3eecc159
|
Extract 512 to constants
|
2020-01-06 14:11:47 +03:00 |
Vitaliy Filippov
|
a7e74670a5
|
Split blockstore implementation and interface header
|
2019-12-15 14:57:18 +03:00 |
Vitaliy Filippov
|
76caecf7c7
|
Inmemory metadata mode
|
2019-12-02 15:42:42 +03:00 |
Vitaliy Filippov
|
f4d06ba102
|
OP_DELETE flushing
|
2019-12-02 02:41:14 +03:00 |
Vitaliy Filippov
|
00eeedae90
|
Add "fsync disabled" mode
|
2019-12-01 16:41:07 +03:00 |
Vitaliy Filippov
|
76655929c4
|
Add readonly flag
|
2019-12-01 16:41:07 +03:00 |
Vitaliy Filippov
|
9260cd263a
|
Verify data crc32 when reading journal
|
2019-11-30 23:32:10 +03:00 |
Vitaliy Filippov
|
2039df76a5
|
Fix journal reading and make it more similar to writing :)
|
2019-11-30 02:27:31 +03:00 |
Vitaliy Filippov
|
40781c67b2
|
Trim journal on start
|
2019-11-29 02:13:32 +03:00 |
Vitaliy Filippov
|
45f34fb3b2
|
Fix linear overwrite, make metadata writes ordered, ignore older entries when recovering journal
|
2019-11-28 22:36:38 +03:00 |
Vitaliy Filippov
|
b6fff5a77e
|
Fix metadata area size calculation, print free space, wait for free space
FIXME: Now it crashes with -ENOSPC on linear overwrite
|
2019-11-28 20:23:27 +03:00 |
Vitaliy Filippov
|
9fa0d3325f
|
Support inmemory journal
|
2019-11-28 18:06:50 +03:00 |
Vitaliy Filippov
|
e1ac4dba23
|
Fix safe stop procedure
|
2019-11-28 02:27:17 +03:00 |
Vitaliy Filippov
|
35a6ed728d
|
Fix another stall due to bad unstable_writes tracking, do not try to write beyond the end of the journal
|
2019-11-28 00:28:08 +03:00 |
Vitaliy Filippov
|
2630e2e3b9
|
Fix metadata partition length, fix journal allocation at the end
|
2019-11-27 19:39:18 +03:00 |
Vitaliy Filippov
|
876231d26b
|
no new
|
2019-11-27 18:14:01 +03:00 |
Vitaliy Filippov
|
ce5cd13bc8
|
Use fdatasync (just for testing over an FS)
|
2019-11-27 02:41:30 +03:00 |
Vitaliy Filippov
|
ff7469ee91
|
Make allocator a class
|
2019-11-27 00:50:57 +03:00 |
Vitaliy Filippov
|
a6770f619a
|
Fix crash while reading metadata
|
2019-11-26 12:06:42 +03:00 |
Vitaliy Filippov
|
50cf3667fa
|
Track unstable writes
|
2019-11-25 01:16:34 +03:00 |
Vitaliy Filippov
|
82a2b8e7d9
|
Fix some extra bugs and it seems now it is even able to trim the journal
|
2019-11-22 12:08:44 +03:00 |
Vitaliy Filippov
|
7e87290fca
|
Clear second sector of the journal, init iov for callbacks
|
2019-11-21 22:06:00 +03:00 |
Vitaliy Filippov
|
201eeb8516
|
Rewrite metadata_init to the same "goto-coroutine" style
|
2019-11-21 21:51:52 +03:00 |
Vitaliy Filippov
|
2b12428cb1
|
Debug OP_STABLE so the basic case passes without problem
|
2019-11-21 02:09:18 +03:00 |
Vitaliy Filippov
|
299b7288d5
|
Fix journal loading
|
2019-11-21 00:52:52 +03:00 |
Vitaliy Filippov
|
eb55b2fe20
|
Initialize sector 0 of the journal
|
2019-11-19 20:03:19 +03:00 |
Vitaliy Filippov
|
b5f04c58ff
|
Rewrite journal_init to the "goto-coroutine" style
|
2019-11-19 19:50:58 +03:00 |
Vitaliy Filippov
|
8c690c76ec
|
Wakeup ring loop
|
2019-11-18 14:08:11 +03:00 |
Vitaliy Filippov
|
e40a71b2ce
|
Check result to be equal to iov_len
|
2019-11-18 02:09:34 +03:00 |
Vitaliy Filippov
|
c2de733e35
|
Copy io_uring_prep_* to my_uring_prep_* so they do not clear user_data
|
2019-11-17 21:39:30 +03:00 |
Vitaliy Filippov
|
eec1c35ea4
|
Begin to debug ... all of this stuff :)
|
2019-11-16 02:32:29 +03:00 |
Vitaliy Filippov
|
a4aaa3c7c7
|
First implementation of journal trimming
In theory it's possible to start testing blockstore at this point!
|
2019-11-15 16:12:55 +03:00 |
Vitaliy Filippov
|
71194f014a
|
Update dirty_db and clean_db after flushing an entry
|
2019-11-15 02:26:18 +03:00 |
Vitaliy Filippov
|
0627dd0f5e
|
Used journal sector tracking
|
2019-11-15 02:04:19 +03:00 |
Vitaliy Filippov
|
bc549553e4
|
Rename dirty_entry.size to len, remove some unneeded methods and fields, read metadata correctly
|
2019-11-14 01:13:07 +03:00 |
Vitaliy Filippov
|
1c6b9778a4
|
Handle all io_uring events using lambdas
|
2019-11-13 22:46:42 +03:00 |
Vitaliy Filippov
|
db66b3916e
|
Begin metadata read-modify-write
|
2019-11-13 16:07:29 +03:00 |
Vitaliy Filippov
|
ae77a228c7
|
Rename big_write.block to location
|
2019-11-12 20:58:27 +03:00 |
Vitaliy Filippov
|
ff57dd420e
|
Rename object_db to clean_db
|
2019-11-10 22:41:40 +03:00 |
Vitaliy Filippov
|
40890aeec5
|
Rename dirty_queue to dirty_db and make it a single std::map
|
2019-11-08 00:20:10 +03:00 |
Vitaliy Filippov
|
5330461029
|
Move blockstore journal fields to journal_t, implement multiple write buffers for journal sectors
|
2019-11-07 23:42:24 +03:00 |
Vitaliy Filippov
|
3f5ad16748
|
Fix ringloop, implement first version of handle_event for reads
|
2019-11-05 23:06:06 +03:00 |
Vitaliy Filippov
|
82cf0a170e
|
Port everything to ring_loop
|
2019-11-05 02:43:21 +03:00 |