[ 
https://issues.apache.org/jira/browse/RATIS-2390?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Andika updated RATIS-2390:
-------------------------------
    Component/s: server

> Granular segment lock for SegmentedRaftLog
> ------------------------------------------
>
>                 Key: RATIS-2390
>                 URL: https://issues.apache.org/jira/browse/RATIS-2390
>             Project: Ratis
>          Issue Type: Improvement
>          Components: RaftLog, server
>            Reporter: Ivan Andika
>            Priority: Major
>              Labels: performance
>
> Currently, SegmentedRaftLog uses RaftLogBase.lock for all its operations even 
> those that only operates on certain segments (e.g. purge, appends). It might 
> be possible to reduce contention by having a unique lock per segment.
> For example, operations that need to operate on segments only need to hold 
> read lock on RaftLogBase.lock and subsequently try to hold SegmentedRaftLog 
> segment locks. We can implement something like writeLock(TermIndex fromIndex, 
> TermIndex toIndex) and SegmentedRaftLog should only pick the segments locks 
> for that range.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to