Vitaliy Filippov
d2a3f0c6dd
Begin object state calculation
2020-01-23 22:05:27 +03:00
Vitaliy Filippov
a8bc44064d
Read object lists from peers and own blockstore
2020-01-22 02:36:14 +03:00
Vitaliy Filippov
8c05ee252c
Test object list sorting, begin peering code
2020-01-21 22:33:02 +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
0d90966739
Add last_sync checking to fio_engine, too
2020-01-16 01:03:18 +03:00
Vitaliy Filippov
43f6cfeb73
Extract alignments to options
2020-01-16 00:54:25 +03:00
Vitaliy Filippov
57ecbb2cda
Parse OSD commandline options
2020-01-15 23:20:11 +03:00
Vitaliy Filippov
8ea1ccc192
Add an OSD stub to compare sync socket I/O with io_uring + skip multiple fsyncs that fio issues
2020-01-15 22:04:58 +03:00
Vitaliy Filippov
a3d3949dce
Do not overwrite same journal sector multiple times
...
It doesn't reduce actual WA, but it reduces tail latency (Q=32, 10% / 50% / 90% / 99% / 99.95%):
- write: 766us/979us/1090us/1303us/1729us vs 1074us/1450us/2212us/3261us/4113us
- sync: 701us/881us/1188us/1762us/2540us vs 269us/955us/1663us/2638us/4146us
2020-01-15 02:53:01 +03:00
Vitaliy Filippov
111516381f
Add FIXME
2020-01-14 18:41:56 +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
5739b02de8
Add sparse read to ./blockstore_test, link blockstore to libblockstore.so
2020-01-12 19:59:19 +03:00
Vitaliy Filippov
cf819eb442
Implement sparse block bitmap to avoid zero-fill
2020-01-12 02:55:32 +03:00
Vitaliy Filippov
4b05bde3a2
Block writes earlier than sync/stabilize would be blocked, too
2020-01-10 20:05:17 +03:00
Vitaliy Filippov
b3f2102f33
Add queue stall tracking
2020-01-10 01:23:46 +03:00
Vitaliy Filippov
522a9db0e2
Enable TCP_NODELAY
2020-01-09 20:32:58 +03:00
Vitaliy Filippov
a1550bdfac
EPOLL_CTL_DEL does not require &ev
2020-01-09 18:39:58 +03:00
Vitaliy Filippov
7dba43b3c6
Allow to exclude blockstore from OSD op processing for tests
2020-01-08 12:06:05 +03:00
Vitaliy Filippov
ba23824561
Allow to disable zero fill
2020-01-06 21:02:15 +03:00
Vitaliy Filippov
bf3eecc159
Extract 512 to constants
2020-01-06 14:11:47 +03:00
Vitaliy Filippov
f3e3f8f005
Fix colocated offsets
2020-01-06 02:57:08 +03:00
Vitaliy Filippov
2709574c93
Add offset options
2020-01-06 02:12:56 +03:00
Vitaliy Filippov
d35ce8ab3d
Fix compile errors for newer gcc
2020-01-06 02:09:59 +03:00
Vitaliy Filippov
b6f0c1cde5
Async connection to peers
2020-01-04 01:23:25 +03:00
Vitaliy Filippov
b87092fcfe
Split osd.cpp into multiple files
2019-12-28 01:25:55 +03:00
Vitaliy Filippov
3134b7729a
Add PG structures, begin peer connection handling code
2019-12-27 12:05:44 +03:00
Vitaliy Filippov
8a386270bd
Use json11, add show_config operation, begin primary operations
2019-12-23 21:56:03 +03:00
Vitaliy Filippov
4677ace4cc
Allow zero-length overwrites
2019-12-21 19:04:36 +03:00
Vitaliy Filippov
4de5290619
Implement safe(?) stop
2019-12-19 22:16:04 +03:00
Vitaliy Filippov
5ebc110d35
Implement LIST operation in the OSD
2019-12-19 22:04:18 +03:00
Vitaliy Filippov
e88ad3f2ff
Implement object list operation in blockstore
2019-12-19 20:50:20 +03:00
Vitaliy Filippov
e8f7905e08
Allow to set write/delete version explicitly
2019-12-19 19:17:54 +03:00
Vitaliy Filippov
d3d21e6e0f
Rename OP_ to BS_OP_
2019-12-19 13:56:26 +03:00
Vitaliy Filippov
19abe6227e
Fix submission ring overflow & ring_data_t reuse conflicts
2019-12-17 11:26:17 +03:00
Vitaliy Filippov
4fb0579b1b
Change epoll polling
...
1) it is incorrect to call level-triggered epoll in a loop without reading everything
2) it fixes the FIXME
2019-12-17 01:56:46 +03:00
Vitaliy Filippov
c7ae3c001c
Add FIO engine for testing Blockstore through the Secondary OSD interface
2019-12-16 14:03:36 +03:00
Vitaliy Filippov
e60e6978ac
Extract object_id and obj_ver_id to separate header
2019-12-16 12:39:15 +03:00
Vitaliy Filippov
3061b8cf51
Add sync&stabilize test operation
2019-12-15 15:30:51 +03:00
Vitaliy Filippov
9af000e9de
Init storage note
2019-12-15 15:11:26 +03:00
Vitaliy Filippov
71635f2327
Use std::hash<object_id> instead of oid_hash
2019-12-15 14:57:18 +03:00
Vitaliy Filippov
a7e74670a5
Split blockstore implementation and interface header
2019-12-15 14:57:18 +03:00
Vitaliy Filippov
749ab6e2c6
Rename blockstore_operation to blockstore_op_t
2019-12-15 14:57:18 +03:00
Vitaliy Filippov
f2e9749c93
Fix disconnection detection
2019-12-15 14:57:18 +03:00
Vitaliy Filippov
49f8011917
Add osd header and osd executable
2019-12-15 01:11:51 +03:00
Vitaliy Filippov
d3c6314d01
Finish reply code, make it compile
2019-12-14 20:51:59 +03:00
Vitaliy Filippov
02a0eb49c2
Begin reply code
2019-12-14 20:51:49 +03:00
Vitaliy Filippov
e052959d7b
Remove "packets"
2019-12-13 20:16:08 +03:00
Vitaliy Filippov
f6eb4326b3
Begin op enqueueing into the blockstore
2019-12-13 20:12:31 +03:00
Vitaliy Filippov
283d03ef18
Fix "address already in use" in test example, begin client read loop
2019-12-13 14:05:15 +03:00