Class RateLimiter.SimpleRateLimiter

  • Enclosing class:
    RateLimiter

    public static class RateLimiter.SimpleRateLimiter
    extends RateLimiter
    Simple class to rate limit IO.
    • Constructor Detail

      • SimpleRateLimiter

        public SimpleRateLimiter​(double mbPerSec)
        mbPerSec is the MB/sec max IO rate
    • Method Detail

      • setMBPerSec

        public void setMBPerSec​(double mbPerSec)
        Sets an updated mb per second rate limit.
        Specified by:
        setMBPerSec in class RateLimiter
      • getMBPerSec

        public double getMBPerSec()
        The current mb per second rate limit.
        Specified by:
        getMBPerSec in class RateLimiter
      • pause

        public long pause​(long bytes)
        Pauses, if necessary, to keep the instantaneous IO rate at or below the target. Be sure to only call this method when bytes > getMinPauseCheckBytes(), otherwise it will pause way too long!
        Specified by:
        pause in class RateLimiter
        Returns:
        the pause time in nano seconds