-
1080cbdf12
Fix used journal sector tracking again
Vitaliy Filippov
2019-11-27 01:20:09 +03:00
-
6ac1d5db08
Fix allocator bug
Vitaliy Filippov
2019-11-27 01:12:25 +03:00
-
ff7469ee91
Make allocator a class
Vitaliy Filippov
2019-11-27 00:50:57 +03:00
-
b8e53f8c67
Fix op validation, fix journal sector usage tracking
Vitaliy Filippov
2019-11-26 20:37:12 +03:00
-
a6770f619a
Fix crash while reading metadata
Vitaliy Filippov
2019-11-26 12:06:42 +03:00
-
a8f250c68f
fio engine starts now
Vitaliy Filippov
2019-11-26 02:18:37 +03:00
-
a7dc759f74
Compile fio engine
Vitaliy Filippov
2019-11-26 00:02:54 +03:00
-
3e46728321
Continue fio engine
Vitaliy Filippov
2019-11-25 22:35:44 +03:00
-
b67406e764
Start fio engine
Vitaliy Filippov
2019-11-25 02:31:48 +03:00
-
d0fdcbd7ff
Add optimized crc32c
Vitaliy Filippov
2019-11-25 02:14:06 +03:00
-
be3015169f
Safe stop procedure
Vitaliy Filippov
2019-11-25 01:29:07 +03:00
-
50cf3667fa
Track unstable writes
Vitaliy Filippov
2019-11-25 01:16:34 +03:00
-
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 +03:00
-
7e87290fca
Clear second sector of the journal, init iov for callbacks
Vitaliy Filippov
2019-11-21 22:04:44 +03:00
-
201eeb8516
Rewrite metadata_init to the same "goto-coroutine" style
Vitaliy Filippov
2019-11-21 21:51:52 +03:00
-
2b12428cb1
Debug OP_STABLE so the basic case passes without problem
Vitaliy Filippov
2019-11-21 02:09:12 +03:00
-
299b7288d5
Fix journal loading
Vitaliy Filippov
2019-11-20 00:46:44 +03:00
-
eb55b2fe20
Initialize sector 0 of the journal
Vitaliy Filippov
2019-11-19 20:03:19 +03:00
-
b5f04c58ff
Rewrite journal_init to the "goto-coroutine" style
Vitaliy Filippov
2019-11-19 19:49:52 +03:00
-
3bfa2f5f39
Fix io_uring submission, journal sector selection
Vitaliy Filippov
2019-11-19 18:07:40 +03:00
-
8c690c76ec
Wakeup ring loop
Vitaliy Filippov
2019-11-18 14:08:11 +03:00
-
b6174075de
Fix write iov_len check
Vitaliy Filippov
2019-11-18 13:37:32 +03:00
-
5b8df6768b
Try to submit a test write operation
Vitaliy Filippov
2019-11-18 02:36:53 +03:00
-
debaf6c943
Print init messages
Vitaliy Filippov
2019-11-17 22:28:48 +03:00
-
e40a71b2ce
Check result to be equal to iov_len
Vitaliy Filippov
2019-11-17 22:27:29 +03:00
-
d9d6a4f9c4
Forgot to pass cqe result :)
Vitaliy Filippov
2019-11-17 22:26:55 +03:00
-
c2de733e35
Copy io_uring_prep_* to my_uring_prep_* so they do not clear user_data
Vitaliy Filippov
2019-11-17 21:39:30 +03:00
-
2f429b17dd
io_uring timeout testing
Vitaliy Filippov
2019-11-17 17:45:39 +03:00
-
eec1c35ea4
Begin to debug ... all of this stuff :)
Vitaliy Filippov
2019-11-16 02:12:27 +03:00
-
da2fe69879
Allow to open regular files
Vitaliy Filippov
2019-11-16 01:53:17 +03:00
-
a4aaa3c7c7
First implementation of journal trimming
Vitaliy Filippov
2019-11-15 14:09:41 +03:00
-
c7d9dc027b
Remove extra states as they seem useless
Vitaliy Filippov
2019-11-15 14:02:37 +03:00
-
c38c8ab029
Prevent two parallel flushes of the same object
Vitaliy Filippov
2019-11-15 13:58:35 +03:00
-
71194f014a
Update dirty_db and clean_db after flushing an entry
Vitaliy Filippov
2019-11-15 02:03:57 +03:00
-
0627dd0f5e
Used journal sector tracking
Vitaliy Filippov
2019-11-14 21:15:59 +03:00
-
f1e236c6e8
Sync metadata & data after copying from journal
Vitaliy Filippov
2019-11-14 02:29:34 +03:00
-
bc549553e4
Rename dirty_entry.size to len, remove some unneeded methods and fields, read metadata correctly
Vitaliy Filippov
2019-11-14 01:13:07 +03:00
-
1c6b9778a4
Handle all io_uring events using lambdas
Vitaliy Filippov
2019-11-13 21:17:04 +03:00
-
7739f628cb
c++ lambda size test
Vitaliy Filippov
2019-11-13 21:17:17 +03:00
-
214da03735
Move flusher into a separate file
Vitaliy Filippov
2019-11-13 17:45:37 +03:00
-
75398414d1
Add grouping flusher class
Vitaliy Filippov
2019-11-13 17:41:25 +03:00
-
db66b3916e
Begin metadata read-modify-write
Vitaliy Filippov
2019-11-13 14:04:12 +03:00
-
ae77a228c7
Rename big_write.block to location
Vitaliy Filippov
2019-11-12 20:55:17 +03:00
-
bb55a7fbf4
Zero-fill new objects and write them to the main storage
Vitaliy Filippov
2019-11-12 19:30:28 +03:00
-
4afa95b0e3
FSM is a dreadful unreadable thing, reimplement using gotos
Vitaliy Filippov
2019-11-12 18:16:03 +03:00
-
34451b6e44
Try to implement journal flusher as a FSM
Vitaliy Filippov
2019-11-12 13:52:27 +03:00
-
ab20aef941
test queue with random removal
Vitaliy Filippov
2019-11-12 12:12:23 +03:00
-
f892104aed
Begin journal flusher
Vitaliy Filippov
2019-11-12 12:02:11 +03:00
-
5ac3910cef
Test deque
Vitaliy Filippov
2019-11-12 12:01:39 +03:00
-
badb47bc80
Test with random
Vitaliy Filippov
2019-11-11 21:27:31 +03:00
-
e807d7433e
Add stop method stub
Vitaliy Filippov
2019-11-11 21:22:28 +03:00
-
71552adf79
Do not use deque, test cpp-btree
Vitaliy Filippov
2019-11-11 19:34:41 +03:00
-
46e96c5128
Remove duplicate journal buffer submission code
Vitaliy Filippov
2019-11-11 18:24:04 +03:00
-
1f04db7d68
Begin to implement stabilize as a batch operation
Vitaliy Filippov
2019-11-11 14:10:23 +03:00
-
d2d8d6e7fb
Comments about stabilize operation, track unsynced_writes correctly
Vitaliy Filippov
2019-11-11 02:53:19 +03:00
-
8edb9e9d6f
Remove duplicate journal writing code (and fix it at the same time)
Vitaliy Filippov
2019-11-11 00:28:14 +03:00
-
ff57dd420e
Rename object_db to clean_db
Vitaliy Filippov
2019-11-10 15:17:21 +03:00
-
69581e6d0c
Send STABLE entry to the journal
Vitaliy Filippov
2019-11-10 15:00:01 +03:00
-
890335bff6
Begin implementation of the STABLE operation
Vitaliy Filippov
2019-11-10 14:37:45 +03:00
-
7aabe11ef9
Switch object states after sync
Vitaliy Filippov
2019-11-10 13:49:26 +03:00
-
64185f7a1f
Move enqueue_write to _write.cpp
Vitaliy Filippov
2019-11-10 13:27:59 +03:00
-
e5caffb6ac
Allow to read specific versions
Vitaliy Filippov
2019-11-10 13:26:56 +03:00
-
2d0334f9b9
Remove in_progress_ops
Vitaliy Filippov
2019-11-10 12:48:09 +03:00
-
ae56fe1067
Finish sync algorithm in theory
Vitaliy Filippov
2019-11-10 12:46:58 +03:00
-
24f5d71595
Move handle_event code into _read.cpp, _write.cpp; move sync code into _sync.cpp
Vitaliy Filippov
2019-11-10 01:40:48 +03:00
-
8e634d5b74
Continue sync implementation
Vitaliy Filippov
2019-11-09 02:16:44 +03:00
-
7456f0f7e2
Remove duplicate code
Vitaliy Filippov
2019-11-08 19:54:31 +03:00
-
153de65ce7
Begin sync implementation
Vitaliy Filippov
2019-11-08 14:10:24 +03:00
-
90f081f398
Check for op->wait_for conditions
Vitaliy Filippov
2019-11-08 11:36:08 +03:00
-
a5f2d8b85e
Ack writes
Vitaliy Filippov
2019-11-08 02:16:31 +03:00
-
40890aeec5
Rename dirty_queue to dirty_db and make it a single std::map
Vitaliy Filippov
2019-11-08 00:19:17 +03:00
-
5330461029
Move blockstore journal fields to journal_t, implement multiple write buffers for journal sectors
Vitaliy Filippov
2019-11-07 16:58:30 +03:00
-
84c62840bd
Begin write algorithm
Vitaliy Filippov
2019-11-07 02:24:12 +03:00
-
2f18a3d19e
Begin implementation of enqueue/dequeue
Vitaliy Filippov
2019-11-06 19:27:48 +03:00
-
3f5ad16748
Fix ringloop, implement first version of handle_event for reads
Vitaliy Filippov
2019-11-05 14:10:23 +03:00
-
82cf0a170e
Port everything to ring_loop
Vitaliy Filippov
2019-11-05 02:43:21 +03:00
-
351366d228
Add ring_loop
Vitaliy Filippov
2019-11-05 02:12:04 +03:00
-
c959948c82
Finish journal reader
Vitaliy Filippov
2019-11-04 15:46:33 +03:00
-
e1c92d2227
Begin journal init reader
Vitaliy Filippov
2019-11-04 01:42:40 +03:00
-
9babacb00a
Move init into a separate file
Vitaliy Filippov
2019-11-03 22:04:25 +03:00
-
f4705d81d7
Split into multiple files, begin init_loop, adjust read
Vitaliy Filippov
2019-11-03 01:34:29 +03:00
-
db3b810588
journal structures + read fulfill
Vitaliy Filippov
2019-11-01 02:47:57 +03:00
-
f1b2d3d3b4
unoptimized crc32 and xor
Vitaliy Filippov
2019-10-31 20:53:10 +03:00
-
03335d3533
Blockstore: device opening
Vitaliy Filippov
2019-10-31 13:49:46 +03:00
-
e91952e89e
Hierarchical bitmap allocator
Vitaliy Filippov
2019-10-28 01:22:01 +03:00