Commit Graph

40 Commits (d2b37e083a14824514629db67add327db0756f35)

Author SHA1 Message Date
Vitaliy Filippov d2b37e083a Test: replace EPOLLIN with blocking sockets + io_uring reads 2020-03-01 17:23:14 +03:00
Vitaliy Filippov 56765ab750 Send all iovecs at once 2020-02-29 02:27:19 +03:00
Vitaliy Filippov fd05e13bc4 Use EPOLLET
Its latency is slightly better, too
2020-02-29 01:56:59 +03:00
Vitaliy Filippov c41fd7ea18 Measure sending subops with data 2020-02-29 01:46:03 +03:00
Vitaliy Filippov c6334afc94 Measure OSD op/subop latency
Something is wrong: loopback RTT between OSDs is sometimes as high as 70us (should be 20us or less probably)
2020-02-28 12:26:49 +03:00
Vitaliy Filippov 2be4824a7a Fix a small memory leak and BS_OP_SYNC mishandling, now fio does not hang during primary-osd test 2020-02-28 01:46:39 +03:00
Vitaliy Filippov a406c62a71 Implement basic primary-sync-stabilize 2020-02-25 20:10:21 +03:00
Vitaliy Filippov 74673c761f Make basic primary-write work 2020-02-25 02:55:58 +03:00
Vitaliy Filippov 09588a349f Transform primary_r/w into "coroutines" 2020-02-24 02:40:52 +03:00
Vitaliy Filippov 4c0178f180 Fix some memory freeing 2020-02-24 01:04:23 +03:00
Vitaliy Filippov 5dd04abbac Make bs_op pointer 2020-02-23 23:46:00 +03:00
Vitaliy Filippov 4a52a15564 Rename osd_op_t.op to req 2020-02-23 23:21:17 +03:00
Vitaliy Filippov 1100ad44bd Cancel outbound operations when disconnecting a peer 2020-02-11 21:17:10 +03:00
Vitaliy Filippov a66b34e04d Implement event-driven PG peering 2020-02-11 13:41:34 +03:00
Vitaliy Filippov 97d3fc593c Test and fix primary-read 2020-02-09 19:17:32 +03:00
Vitaliy Filippov ec50957c41 WIP primary OSD read 2020-01-30 22:06:46 +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 8c05ee252c Test object list sorting, begin peering code 2020-01-21 22:33:02 +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 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 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 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 3061b8cf51 Add sync&stabilize test operation 2019-12-15 15:30:51 +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 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
Vitaliy Filippov 00ee6b7961 Accept connections 2019-12-12 11:32:20 +03:00
Vitaliy Filippov a8deb7d88c Begin OSD 2019-12-11 14:18:19 +03:00