Package org.apache.lucene.index
Class MergeRateLimiter
- java.lang.Object
-
- org.apache.lucene.store.RateLimiter
-
- org.apache.lucene.index.MergeRateLimiter
-
public class MergeRateLimiter extends RateLimiter
This is theRateLimiter
thatIndexWriter
assigns to each running merge, to giveMergeScheduler
s ionice like control.- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.lucene.store.RateLimiter
RateLimiter.SimpleRateLimiter
-
-
Constructor Summary
Constructors Constructor Description MergeRateLimiter(MergePolicy.OneMergeProgress mergeProgress)
Sole constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
getMBPerSec()
The current MB per second rate limit.long
getMinPauseCheckBytes()
How many bytes caller should add up itself before invokingRateLimiter.pause(long)
.long
getTotalBytesWritten()
Returns total bytes written by this merge.long
getTotalPausedNS()
Total NS merge was paused to rate limit IO.long
getTotalStoppedNS()
Total NS merge was stopped.long
pause(long bytes)
Pauses, if necessary, to keep the instantaneous IO rate at or below the target.void
setMBPerSec(double mbPerSec)
Sets an updated MB per second rate limit.
-
-
-
Constructor Detail
-
MergeRateLimiter
public MergeRateLimiter(MergePolicy.OneMergeProgress mergeProgress)
Sole constructor.
-
-
Method Detail
-
setMBPerSec
public void setMBPerSec(double mbPerSec)
Description copied from class:RateLimiter
Sets an updated MB per second rate limit. A subclass is allowed to perform dynamic updates of the rate limit during use.- Specified by:
setMBPerSec
in classRateLimiter
-
getMBPerSec
public double getMBPerSec()
Description copied from class:RateLimiter
The current MB per second rate limit.- Specified by:
getMBPerSec
in classRateLimiter
-
getTotalBytesWritten
public long getTotalBytesWritten()
Returns total bytes written by this merge.
-
pause
public long pause(long bytes) throws MergePolicy.MergeAbortedException
Description copied from class:RateLimiter
Pauses, if necessary, to keep the instantaneous IO rate at or below the target.Note: the implementation is thread-safe
- Specified by:
pause
in classRateLimiter
- Returns:
- the pause time in nano seconds
- Throws:
MergePolicy.MergeAbortedException
-
getTotalStoppedNS
public long getTotalStoppedNS()
Total NS merge was stopped.
-
getTotalPausedNS
public long getTotalPausedNS()
Total NS merge was paused to rate limit IO.
-
getMinPauseCheckBytes
public long getMinPauseCheckBytes()
Description copied from class:RateLimiter
How many bytes caller should add up itself before invokingRateLimiter.pause(long)
. NOTE: The value returned by this method may change over time and is not guaranteed to be constant throughout the lifetime of the RateLimiter. Users are advised to refresh their local values with calls to this method to ensure consistency.- Specified by:
getMinPauseCheckBytes
in classRateLimiter
-
-