Description
Migrate from the low-level libevent API to the higher-level eventbuffer API. This brings a number of advantages:
- Simplification of our connection management including buffer management. This includes the potential fewer copies of data to/from buffers to the underlying socket.
- Reduced syscalls - with libevent managing the TCP send buffers, it can coalesce multiple chunks of data to be sent out into a single sendmsg syscall etc.
- Simplification of TLS state machine handling - eventbuffer API has native support for TLS so we can simply delegate to that API and remove our own TLS statemachine.
Attachments
Issue Links
For Gerrit Dashboard: MB-26887 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
86312,17 | MB-26887: Move to bufferevent [1/7] | master | kv_engine | Status: ABANDONED | 0 | 0 |
86313,45 | MB-26887: Ditch memcacheds read buffer [7/8] | master | kv_engine | Status: ABANDONED | 0 | -1 |
86314,46 | MB-26887: Add new methods to copy or chain data to send pipe [3/8] | master | kv_engine | Status: ABANDONED | 0 | -1 |
86315,48 | MB-26887: Remove the use of sendmsg [2/8] | master | kv_engine | Status: ABANDONED | 0 | +1 |
86316,44 | MB-26887: let bufferevent release dynamic buffer [4/8] | master | kv_engine | Status: ABANDONED | 0 | -1 |
86317,40 | MB-26887: Stop using the extra write buffer [6/8] | master | kv_engine | Status: ABANDONED | 0 | -1 |
86725,34 | MB-26887: Stop using the connection write buffer for DCP [5/8] | master | kv_engine | Status: ABANDONED | 0 | +1 |
87908,59 | MB-26887: Move to bufferevent [1/8] | master | kv_engine | Status: ABANDONED | 0 | +1 |
95503,4 | MB-26887: Reenable bucket delete tests [8/8] | master | kv_engine | Status: ABANDONED | 0 | -1 |
100028,107 | MB-26887: Move to bufferevent [1/7] | master | kv_engine | Status: MERGED | +2 | +1 |
100029,107 | MB-26887: Remove the use of sendmsg [2/7] | master | kv_engine | Status: MERGED | +2 | +1 |
100030,110 | MB-26887: Add new methods to copy or chain data to send pipe [3/7] | master | kv_engine | Status: MERGED | +2 | +1 |
100031,107 | MB-26887: let bufferevent release dynamic buffer [4/7] | master | kv_engine | Status: MERGED | +2 | +1 |
100032,107 | MB-26887: Stop using the connection write buffer for DCP [5/7] | master | kv_engine | Status: MERGED | +2 | +1 |
100033,109 | MB-26887: Stop using the extra write buffer [6/7] | master | kv_engine | Status: MERGED | +2 | +1 |
100034,111 | MB-26887: Ditch memcacheds read buffer [7/7] | master | kv_engine | Status: MERGED | +2 | +1 |
116777,1 | Merge branch 'OoO' into clean | master | kv_engine | Status: ABANDONED | 0 | -1 |
117182,2 | Revert "MB-26887: Ditch memcacheds read buffer [7/7]" | master | kv_engine | Status: MERGED | +2 | +1 |
117192,3 | Revert "MB-26887: Stop using the extra write buffer [6/7]" | master | kv_engine | Status: MERGED | +2 | +1 |
117198,2 | MB-26887: Stop using the extra write buffer [6/7] | master | kv_engine | Status: ABANDONED | 0 | -1 |
117286,9 | MB-26887: Ditch memcacheds read buffer [7/7] | master | kv_engine | Status: MERGED | +2 | +1 |
117581,2 | MB-36827: toy-daver.xml: Use kv_engine mad-hatter-bufferevent | master | manifest | Status: MERGED | +2 | +1 |
117652,1 | MB-26887: Move to bufferevent [1/7] | mad-hatter | kv_engine | Status: ABANDONED | 0 | 0 |
117653,1 | MB-26887: Remove the use of sendmsg [2/7] | mad-hatter | kv_engine | Status: ABANDONED | 0 | -1 |