Class/Object

com.twitter.finagle.exp

BackupRequestFilter

Related Docs: object BackupRequestFilter | package exp

Permalink

class BackupRequestFilter[Req, Rep] extends SimpleFilter[Req, Rep]

Issue a backup request after a threshold time has elapsed, useful for curtailing tail latencies in distributed systems. See [1] for details.

Several stats are exported through the given stats receiver exposing the filter's operating behavior:

[1]: Dean, J. and Barroso, L.A. (2013), The Tail at Scale, Communications of the ACM, Vol. 56 No. 2, Pages 74-80, http://cacm.acm.org/magazines/2013/2/160173-the-tail-at-scale/fulltext

Note

A filter alone cannot guarantee that a request is dispatched onto a different endpoint from the original. Eventually, this should be implemented as a sort of queueing policy.

,

Care must be taken to ensure that application of this filter preserves semantics since a request may be issued twice (ie. they are idempotent).

Linear Supertypes
SimpleFilter[Req, Rep], Filter[Req, Rep, Req, Rep], (Req, Service[Req, Rep]) ⇒ Future[Rep], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. BackupRequestFilter
  2. SimpleFilter
  3. Filter
  4. Function2
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new BackupRequestFilter(quantile: Int, clipDuration: Duration, timer: Timer, statsReceiver: StatsReceiver, history: Duration)

    Permalink

Value Members

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

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

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def agnosticAndThen(next: TypeAgnostic): Filter[Req, Rep, Req, Rep]

    Permalink
    Definition Classes
    Filter
  5. def andThen(factory: ServiceFactory[Req, Rep]): ServiceFactory[Req, Rep]

    Permalink
    Definition Classes
    Filter
  6. def andThen(service: Service[Req, Rep]): Service[Req, Rep]

    Permalink
    Definition Classes
    Filter
  7. def andThen[Req2, Rep2](next: Filter[Req, Rep, Req2, Rep2]): Filter[Req, Rep, Req2, Rep2]

    Permalink
    Definition Classes
    Filter
  8. def andThenIf[Req2 >: Req, Rep2 <: Rep](condAndFilter: (Boolean, Filter[Req, Rep, Req2, Rep2])): Filter[Req, Rep, Req2, Rep2]

    Permalink
    Definition Classes
    Filter
  9. def apply(req: Req, service: Service[Req, Rep]): Future[Rep]

    Permalink
    Definition Classes
    BackupRequestFilter → Filter → Function2
  10. final def asInstanceOf[T0]: T0

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  12. def curried: (Req) ⇒ (Service[Req, Rep]) ⇒ Future[Rep]

    Permalink
    Definition Classes
    Function2
    Annotations
    @unspecialized()
  13. final def eq(arg0: AnyRef): Boolean

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

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  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. final def ne(arg0: AnyRef): Boolean

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

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

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

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

    Permalink
    Definition Classes
    Function2 → AnyRef → Any
  24. def tupled: ((Req, Service[Req, Rep])) ⇒ Future[Rep]

    Permalink
    Definition Classes
    Function2
    Annotations
    @unspecialized()
  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( ... )

Inherited from SimpleFilter[Req, Rep]

Inherited from Filter[Req, Rep, Req, Rep]

Inherited from (Req, Service[Req, Rep]) ⇒ Future[Rep]

Inherited from AnyRef

Inherited from Any

Ungrouped