zhixinwen opened a new pull request, #3075:
URL: https://github.com/apache/kvrocks/pull/3075

   This should solve: https://github.com/apache/kvrocks/issues/3070
   
   Key changes:
   - Use mutimap to save wait_context, so given a seq number, it is faster to 
check which waits would be unblocked.
   - Use shared lock to reduce lock contention.
   - When master send change to replica, it would check if any wait can be 
unblocked. If yes, it would send a `replconf getack` right after the change.
   - `last_replconf_getack_seq_` is kept by master, so it would send 
unnecessary replconf getack` for the same wait_context
   - When there is no wait, replica send ack every 1s.
   
   Test shows this mechanism has similar replication speed compared to the code 
before https://github.com/apache/kvrocks/pull/3061 was committed. It also shows 
comparable performance with https://github.com/apache/kvrocks/pull/3061 when 
every write request is followed by a `WAIT`.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to