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
|
d5386aa958
|
Check presence in sync_to_repeat
|
2020-01-16 02:16:35 +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
|
b3f2102f33
|
Add queue stall tracking
|
2020-01-10 01:23:46 +03:00 |
Vitaliy Filippov
|
bf3eecc159
|
Extract 512 to constants
|
2020-01-06 14:11:47 +03:00 |
Vitaliy Filippov
|
4677ace4cc
|
Allow zero-length overwrites
|
2019-12-21 19:04:36 +03:00 |
Vitaliy Filippov
|
19abe6227e
|
Fix submission ring overflow & ring_data_t reuse conflicts
|
2019-12-17 11:26:17 +03:00 |
Vitaliy Filippov
|
a7e74670a5
|
Split blockstore implementation and interface header
|
2019-12-15 14:57:18 +03:00 |
Vitaliy Filippov
|
02a0eb49c2
|
Begin reply code
|
2019-12-14 20:51:49 +03:00 |
Vitaliy Filippov
|
aaea3e1f99
|
Fix read_fulfill, use vector
|
2019-12-03 12:09:30 +03:00 |
Vitaliy Filippov
|
1f7381e220
|
Do not use goto resume_0 due to some strange -O3 bug which leads to hangs (it seems it optimizes flush_queue.size() away)
|
2019-12-03 02:23:29 +03:00 |
Vitaliy Filippov
|
fd13965b90
|
Force start when journal is full
|
2019-12-03 02:23:29 +03:00 |
Vitaliy Filippov
|
2963ad98ec
|
Start to flush only when there are <sync_threshold> journal entries to flush
|
2019-12-03 00:20:13 +03:00 |
Vitaliy Filippov
|
aa3b252327
|
Fsync data before writing metadata
|
2019-12-03 00:20:13 +03:00 |
Vitaliy Filippov
|
a165909745
|
FIXME
|
2019-12-02 18:16:23 +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
|
14b2f49f4d
|
FIXME
|
2019-12-01 16:43:21 +03:00 |
Vitaliy Filippov
|
00eeedae90
|
Add "fsync disabled" mode
|
2019-12-01 16:41:07 +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
|
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
|
d56cb290ee
|
Two FIXMEs
|
2019-11-28 01:00:22 +03:00 |
Vitaliy Filippov
|
95396e2c83
|
Note read errors
|
2019-11-28 00:37:20 +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
|
9ba243b3ee
|
Add debug prints
|
2019-11-27 18:07:51 +03:00 |
Vitaliy Filippov
|
e2b91968c5
|
Fix sync confirmations and some pipeline-stall bugs
|
2019-11-27 18:07:38 +03:00 |
Vitaliy Filippov
|
95b0395493
|
Remove trim_interval=1
|
2019-11-27 02:47:01 +03:00 |
Vitaliy Filippov
|
ce5cd13bc8
|
Use fdatasync (just for testing over an FS)
|
2019-11-27 02:41:30 +03:00 |
Vitaliy Filippov
|
9568354d78
|
Fix old_clean_loc treatment (cannot persist sparse_hash_map iterator)
|
2019-11-27 02:16:43 +03:00 |
Vitaliy Filippov
|
2831d40edb
|
Fix repeated syncs
|
2019-11-27 02:04:46 +03:00 |
Vitaliy Filippov
|
ff7469ee91
|
Make allocator a class
|
2019-11-27 00:50:57 +03:00 |
Vitaliy Filippov
|
be3015169f
|
Safe stop procedure
|
2019-11-25 01:29:07 +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
|
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
|
c38c8ab029
|
Prevent two parallel flushes of the same object
|
2019-11-15 13:58:35 +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 |