object PanicMode
Panic mode is when the LB gives up trying to find a healthy node. The LB sends the request to the last pick even if the node is unhealthy. For a given request, panic mode is enabled when the percent of nodes that are unhealthy exceeds the panic threshold. This percent is approximate. For pick2-based load balancers (P2C* and Aperture*), interpret this as 1% of requests or less will panic when the threshold is reached. When the percent of unhealthy nodes exceeds the threshold, the number of requests that panic increases exponentially. For round robin, this panic threshold percent does not apply because it is not a pick two based algorithm. Panic mode is disabled for heap LB.
Please, note that this doesn't mean that 1% of requests will fail since Finagle clients have additional layers of requeues above the load balancer.
- Alphabetic
- By Inheritance
- PanicMode
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val FiftyPercentUnhealthy: StaticPanicMode
- val FortyPercentUnhealthy: StaticPanicMode
- val MajorityUnhealthy: StaticPanicMode
- val Paranoid: StaticPanicMode
Example: If the proportion of unhealthy nodes is 0.5, then the probability of picking two unhealthy nodes with P2C is 0.5*0.5 = 25%.
Example: If the proportion of unhealthy nodes is 0.5, then the probability of picking two unhealthy nodes with P2C is 0.5*0.5 = 25%. How many times do we repeat P2C until the probability is ε (0.01 or 1%)?
Answer: 3.3 times because 0.25^3.3 = 0.01. Round up to maxEffort=4. When 50% is unhealthy, there's a 1% chance the LB picks all unhealthy nodes 4 times in a row. This means 1% of requests panic.
- val TenPercentUnhealthy: StaticPanicMode
- val ThirtyPercentUnhealthy: StaticPanicMode
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- implicit val param: Stack.Param[PanicMode]
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()