Class

com.twitter.algebird

AdaptiveCache

Related Doc: package algebird

Permalink

class AdaptiveCache[K, V] extends StatefulSummer[Map[K, V]]

This is a wrapper around SummingCache that attempts to grow the capacity by up to some maximum, as long as there's enough RAM. It determines that there's enough RAM to grow by maintaining a SentinelCache which keeps caching and summing the evicted values. Once the SentinelCache has grown to the same size as the current cache, plus some margin, without running out of RAM, then this indicates that we have enough headroom to double the capacity.

Source
AdaptiveCache.scala
Linear Supertypes
StatefulSummer[Map[K, V]], Buffered[Map[K, V], Map[K, V]], Serializable, AnyRef, Any
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AdaptiveCache
  2. StatefulSummer
  3. Buffered
  4. Serializable
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new AdaptiveCache(maxCapacity: Int, growthMargin: Double = 3.0)(implicit arg0: Semigroup[V])

    Permalink

Type Members

  1. case class CacheStats(hits: Int, cacheGrowth: Int, sentinelGrowth: Int) extends Product with Serializable

    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. final def asInstanceOf[T0]: T0

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

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

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. def flush: Option[Map[K, V]]

    Permalink
    Definition Classes
    AdaptiveCacheBuffered
  10. final def getClass(): Class[_]

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

    Permalink
    Definition Classes
    AnyRef → Any
  12. def isFlushed: Boolean

    Permalink
    Definition Classes
    AdaptiveCacheBuffered
  13. final def isInstanceOf[T0]: Boolean

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

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

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

    Permalink
    Definition Classes
    AnyRef
  17. def put(m: Map[K, V]): Option[Map[K, V]]

    Permalink
    Definition Classes
    AdaptiveCacheBuffered
  18. def putWithStats(m: Map[K, V]): (CacheStats, Option[Map[K, V]])

    Permalink
  19. def semigroup: MapMonoid[K, V]

    Permalink
    Definition Classes
    AdaptiveCacheStatefulSummer
  20. final def synchronized[T0](arg0: ⇒ T0): T0

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

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

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from StatefulSummer[Map[K, V]]

Inherited from Buffered[Map[K, V], Map[K, V]]

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped