Class

com.datastax.spark.connector.writer

RateLimiter

Related Doc: package writer

Permalink

class RateLimiter extends AnyRef

A leaking bucket rate limiter. It can be used to limit rate of anything, but typically it is used to limit rate of data transfer.

It starts with an empty bucket. When packets arrive, they are added to the bucket. The bucket has a constant size and is leaking at a constant rate. If the bucket overflows, the thread is delayed by the amount of time proportional to the amount of the overflow.

This class is thread safe and lockless.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. RateLimiter
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new RateLimiter(rate: Long, bucketSize: Long, time: () ⇒ Long = System.currentTimeMillis, sleep: (Long) ⇒ Any = Thread.sleep)

    Permalink

    rate

    maximum allowed long-term rate per 1000 units of time

    bucketSize

    maximum acceptable "burst"

    time

    source of time; typically 1 unit = 1 ms

    sleep

    a function to call to slow down the calling thread; must use the same time units as time

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String

    Permalink
    Implicit information
    This member is added by an implicit conversion from RateLimiter to any2stringadd[RateLimiter] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (RateLimiter, B)

    Permalink
    Implicit information
    This member is added by an implicit conversion from RateLimiter to ArrowAssoc[RateLimiter] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  6. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  7. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. def ensuring(cond: (RateLimiter) ⇒ Boolean, msg: ⇒ Any): RateLimiter

    Permalink
    Implicit information
    This member is added by an implicit conversion from RateLimiter to Ensuring[RateLimiter] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  9. def ensuring(cond: (RateLimiter) ⇒ Boolean): RateLimiter

    Permalink
    Implicit information
    This member is added by an implicit conversion from RateLimiter to Ensuring[RateLimiter] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  10. def ensuring(cond: Boolean, msg: ⇒ Any): RateLimiter

    Permalink
    Implicit information
    This member is added by an implicit conversion from RateLimiter to Ensuring[RateLimiter] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  11. def ensuring(cond: Boolean): RateLimiter

    Permalink
    Implicit information
    This member is added by an implicit conversion from RateLimiter to Ensuring[RateLimiter] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  12. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  13. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  14. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  15. def formatted(fmtstr: String): String

    Permalink
    Implicit information
    This member is added by an implicit conversion from RateLimiter to StringFormat[RateLimiter] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  16. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  17. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  18. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  19. def maybeSleep(packetSize: Long): Unit

    Permalink

    Processes a single packet.

    Processes a single packet. If the packet is bigger than the current amount of space available in the bucket, this method will sleep for appropriate amount of time, in order to not exceed the target rate.

  20. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  21. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  22. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  23. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  24. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  25. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. def [B](y: B): (RateLimiter, B)

    Permalink
    Implicit information
    This member is added by an implicit conversion from RateLimiter to ArrowAssoc[RateLimiter] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from RateLimiter to any2stringadd[RateLimiter]

Inherited by implicit conversion StringFormat from RateLimiter to StringFormat[RateLimiter]

Inherited by implicit conversion Ensuring from RateLimiter to Ensuring[RateLimiter]

Inherited by implicit conversion ArrowAssoc from RateLimiter to ArrowAssoc[RateLimiter]

Ungrouped