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]
