This website requires JavaScript.
9af000e9de
Init storage note
Vitaliy Filippov
2019-12-15 15:11:26 +0300
71635f2327
Use std::hash<object_id> instead of oid_hash
Vitaliy Filippov
2019-12-15 14:54:00 +0300
a7e74670a5
Split blockstore implementation and interface header
Vitaliy Filippov
2019-12-15 14:49:10 +0300
749ab6e2c6
Rename blockstore_operation to blockstore_op_t
Vitaliy Filippov
2019-12-15 14:11:03 +0300
f2e9749c93
Fix disconnection detection
Vitaliy Filippov
2019-12-15 01:52:08 +0300
49f8011917
Add osd header and osd executable
Vitaliy Filippov
2019-12-15 01:11:51 +0300
d3c6314d01
Finish reply code, make it compile
Vitaliy Filippov
2019-12-14 20:51:41 +0300
02a0eb49c2
Begin reply code
Vitaliy Filippov
2019-12-13 22:53:59 +0300
e052959d7b
Remove "packets"
Vitaliy Filippov
2019-12-13 20:16:08 +0300
f6eb4326b3
Begin op enqueueing into the blockstore
Vitaliy Filippov
2019-12-13 20:12:31 +0300
283d03ef18
Fix "address already in use" in test example, begin client read loop
Vitaliy Filippov
2019-12-13 14:05:11 +0300
6239f6748a
io_uring recvmsg test
Vitaliy Filippov
2019-12-13 00:02:48 +0300
00ee6b7961
Accept connections
Vitaliy Filippov
2019-12-12 11:32:20 +0300
a8deb7d88c
Begin OSD
Vitaliy Filippov
2019-12-11 14:18:19 +0300
a68bf129c4
Begin OSD ops header
Vitaliy Filippov
2019-12-10 12:07:24 +0300
a180b4961f
Hide block_* fields
Vitaliy Filippov
2019-12-10 00:13:57 +0300
aaea3e1f99
Fix read_fulfill, use vector
Vitaliy Filippov
2019-12-03 12:09:30 +0300
a2ed38fb6b
Fix segfault
Vitaliy Filippov
2019-12-03 02:27:25 +0300
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)
Vitaliy Filippov
2019-12-03 02:14:25 +0300
fd13965b90
Force start when journal is full
Vitaliy Filippov
2019-12-03 01:45:10 +0300
2963ad98ec
Start to flush only when there are <sync_threshold> journal entries to flush
Vitaliy Filippov
2019-12-03 00:18:57 +0300
aa3b252327
Fsync data before writing metadata
Vitaliy Filippov
2019-12-02 23:16:19 +0300
a165909745
FIXME
Vitaliy Filippov
2019-12-02 18:16:23 +0300
d24860b51a
Allow to specify blockstore block size in fio options
Vitaliy Filippov
2019-12-02 15:50:55 +0300
76caecf7c7
Inmemory metadata mode
Vitaliy Filippov
2019-12-02 02:44:56 +0300
f4d06ba102
OP_DELETE flushing
Vitaliy Filippov
2019-12-02 02:11:23 +0300
a7a0946ba8
WIP OP_DELETE
Vitaliy Filippov
2019-12-01 17:25:59 +0300
14b2f49f4d
FIXME
Vitaliy Filippov
2019-11-30 23:56:24 +0300
00eeedae90
Add "fsync disabled" mode
Vitaliy Filippov
2019-11-30 23:55:30 +0300
76655929c4
Add readonly flag
Vitaliy Filippov
2019-11-30 23:39:10 +0300
9260cd263a
Verify data crc32 when reading journal
Vitaliy Filippov
2019-11-30 23:32:10 +0300
2039df76a5
Fix journal reading and make it more similar to writing :)
Vitaliy Filippov
2019-11-30 02:27:31 +0300
40781c67b2
Trim journal on start
Vitaliy Filippov
2019-11-29 02:13:30 +0300
45f34fb3b2
Fix linear overwrite, make metadata writes ordered, ignore older entries when recovering journal
Vitaliy Filippov
2019-11-28 22:36:38 +0300
b6fff5a77e
Fix metadata area size calculation, print free space, wait for free space
Vitaliy Filippov
2019-11-28 20:23:26 +0300
9fa0d3325f
Support inmemory journal
Vitaliy Filippov
2019-11-28 14:41:03 +0300
e1ac4dba23
Fix safe stop procedure
Vitaliy Filippov
2019-11-28 02:27:17 +0300
d56cb290ee
Two FIXMEs
Vitaliy Filippov
2019-11-28 01:00:22 +0300
cbf5173d1b
Allow to specify device paths in fio options
Vitaliy Filippov
2019-11-28 00:50:52 +0300
95396e2c83
Note read errors
Vitaliy Filippov
2019-11-28 00:37:15 +0300
35a6ed728d
Fix another stall due to bad unstable_writes tracking, do not try to write beyond the end of the journal
Vitaliy Filippov
2019-11-28 00:26:53 +0300
2630e2e3b9
Fix metadata partition length, fix journal allocation at the end
Vitaliy Filippov
2019-11-27 19:39:15 +0300
876231d26b
no new
Vitaliy Filippov
2019-11-27 18:14:01 +0300
9ba243b3ee
Add debug prints
Vitaliy Filippov
2019-11-27 18:07:08 +0300
e2b91968c5
Fix sync confirmations and some pipeline-stall bugs
Vitaliy Filippov
2019-11-27 18:04:52 +0300
78807eb244
Fix journal space check (do not overwrite the beginning of the journal)
Vitaliy Filippov
2019-11-27 11:35:11 +0300
ffff742078
Use tcmalloc
Vitaliy Filippov
2019-11-27 11:26:43 +0300
95b0395493
Remove trim_interval=1
Vitaliy Filippov
2019-11-27 02:47:01 +0300
ce5cd13bc8
Use fdatasync (just for testing over an FS)
Vitaliy Filippov
2019-11-27 02:33:33 +0300
06634054c9
Note to add no-fsync mode in the future
Vitaliy Filippov
2019-11-27 02:23:35 +0300
74d8ea2f01
Calculate data crc32c
Vitaliy Filippov
2019-11-27 02:20:38 +0300
9568354d78
Fix old_clean_loc treatment (cannot persist sparse_hash_map iterator)
Vitaliy Filippov
2019-11-27 02:16:43 +0300
2831d40edb
Fix repeated syncs
Vitaliy Filippov
2019-11-27 02:04:46 +0300
1080cbdf12
Fix used journal sector tracking again
Vitaliy Filippov
2019-11-27 01:20:09 +0300
6ac1d5db08
Fix allocator bug
Vitaliy Filippov
2019-11-27 01:12:25 +0300
ff7469ee91
Make allocator a class
Vitaliy Filippov
2019-11-27 00:50:57 +0300
b8e53f8c67
Fix op validation, fix journal sector usage tracking
Vitaliy Filippov
2019-11-26 20:37:12 +0300
a6770f619a
Fix crash while reading metadata
Vitaliy Filippov
2019-11-26 12:06:42 +0300
a8f250c68f
fio engine starts now
Vitaliy Filippov
2019-11-26 02:18:37 +0300
a7dc759f74
Compile fio engine
Vitaliy Filippov
2019-11-26 00:02:54 +0300
3e46728321
Continue fio engine
Vitaliy Filippov
2019-11-25 22:35:44 +0300
b67406e764
Start fio engine
Vitaliy Filippov
2019-11-25 02:31:48 +0300
d0fdcbd7ff
Add optimized crc32c
Vitaliy Filippov
2019-11-25 02:14:06 +0300
be3015169f
Safe stop procedure
Vitaliy Filippov
2019-11-25 01:29:07 +0300
50cf3667fa
Track unstable writes
Vitaliy Filippov
2019-11-25 01:16:34 +0300
82a2b8e7d9
Fix some extra bugs and it seems now it is even able to trim the journal
Vitaliy Filippov
2019-11-21 23:45:19 +0300
7e87290fca
Clear second sector of the journal, init iov for callbacks
Vitaliy Filippov
2019-11-21 22:04:44 +0300
201eeb8516
Rewrite metadata_init to the same "goto-coroutine" style
Vitaliy Filippov
2019-11-21 21:51:52 +0300
2b12428cb1
Debug OP_STABLE so the basic case passes without problem
Vitaliy Filippov
2019-11-21 02:09:12 +0300
299b7288d5
Fix journal loading
Vitaliy Filippov
2019-11-20 00:46:44 +0300
eb55b2fe20
Initialize sector 0 of the journal
Vitaliy Filippov
2019-11-19 20:03:19 +0300
b5f04c58ff
Rewrite journal_init to the "goto-coroutine" style
Vitaliy Filippov
2019-11-19 19:49:52 +0300
3bfa2f5f39
Fix io_uring submission, journal sector selection
Vitaliy Filippov
2019-11-19 18:07:40 +0300
8c690c76ec
Wakeup ring loop
Vitaliy Filippov
2019-11-18 14:08:11 +0300
b6174075de
Fix write iov_len check
Vitaliy Filippov
2019-11-18 13:37:32 +0300
5b8df6768b
Try to submit a test write operation
Vitaliy Filippov
2019-11-18 02:36:53 +0300
debaf6c943
Print init messages
Vitaliy Filippov
2019-11-17 22:28:48 +0300
e40a71b2ce
Check result to be equal to iov_len
Vitaliy Filippov
2019-11-17 22:27:29 +0300
d9d6a4f9c4
Forgot to pass cqe result :)
Vitaliy Filippov
2019-11-17 22:26:55 +0300
c2de733e35
Copy io_uring_prep_* to my_uring_prep_* so they do not clear user_data
Vitaliy Filippov
2019-11-17 21:39:30 +0300
2f429b17dd
io_uring timeout testing
Vitaliy Filippov
2019-11-17 17:45:39 +0300
eec1c35ea4
Begin to debug ... all of this stuff :)
Vitaliy Filippov
2019-11-16 02:12:27 +0300
da2fe69879
Allow to open regular files
Vitaliy Filippov
2019-11-16 01:53:17 +0300
a4aaa3c7c7
First implementation of journal trimming
Vitaliy Filippov
2019-11-15 14:09:41 +0300
c7d9dc027b
Remove extra states as they seem useless
Vitaliy Filippov
2019-11-15 14:02:37 +0300
c38c8ab029
Prevent two parallel flushes of the same object
Vitaliy Filippov
2019-11-15 13:58:35 +0300
71194f014a
Update dirty_db and clean_db after flushing an entry
Vitaliy Filippov
2019-11-15 02:03:57 +0300
0627dd0f5e
Used journal sector tracking
Vitaliy Filippov
2019-11-14 21:15:59 +0300
f1e236c6e8
Sync metadata & data after copying from journal
Vitaliy Filippov
2019-11-14 02:29:34 +0300
bc549553e4
Rename dirty_entry.size to len, remove some unneeded methods and fields, read metadata correctly
Vitaliy Filippov
2019-11-14 01:13:07 +0300
1c6b9778a4
Handle all io_uring events using lambdas
Vitaliy Filippov
2019-11-13 21:17:04 +0300
7739f628cb
c++ lambda size test
Vitaliy Filippov
2019-11-13 21:17:17 +0300
214da03735
Move flusher into a separate file
Vitaliy Filippov
2019-11-13 17:45:37 +0300
75398414d1
Add grouping flusher class
Vitaliy Filippov
2019-11-13 17:41:25 +0300
db66b3916e
Begin metadata read-modify-write
Vitaliy Filippov
2019-11-13 14:04:12 +0300
ae77a228c7
Rename big_write.block to location
Vitaliy Filippov
2019-11-12 20:55:17 +0300
bb55a7fbf4
Zero-fill new objects and write them to the main storage
Vitaliy Filippov
2019-11-12 19:30:28 +0300
4afa95b0e3
FSM is a dreadful unreadable thing, reimplement using gotos
Vitaliy Filippov
2019-11-12 18:16:03 +0300
34451b6e44
Try to implement journal flusher as a FSM
Vitaliy Filippov
2019-11-12 13:52:27 +0300
ab20aef941
test queue with random removal
Vitaliy Filippov
2019-11-12 12:12:23 +0300