package util
- Alphabetic
- Public
- All
Type Members
-
class
JRateLimiter extends ThreadSafeRateLimiter
Java-friendly version of ThreadSafeRateLimiter.
-
trait
LimitCallback[T <: AnyRef] extends AnyRef
Used by JRateLimiter in lieu of call-by-name from java.
-
class
RateLimiter extends AnyRef
Used to rate-limit calls to a work function, e.g.
Used to rate-limit calls to a work function, e.g. that writes to a db.
Note you can disable the rate limiter by setting the frequency to 0.
The math is as follows (mod some conversions between seconds and nano-seconds):
After n samples, we can computer Ri as the "immediate rate" like:
Ri = (n-1) / (timestamp(n) - timestamp(0))
which is essentially the 1/average interval.
Given a target rate, Rt ("maxFreqHz"), we can compute it like:
Rt = n / (S + (timestamp(n) - timestamp(0))
S here is how long to sleep before we invoke the next operation. Solving for S:
S = n / Rt - (timestamp(n) - timestamp(0))
-
class
SingletonCache[K] extends AnyRef
For objects that need their lifecycle to be managed and can't be just throw-away.
For objects that need their lifecycle to be managed and can't be just throw-away. E.g. for when ConcurrentHashMap.putIfAbsent(new Something()) may result in a Something instance that need to be closed if another thread's putIfAbsent was successful.
In this case it's easier to not create unnecessary instances in the first place.
-
class
ThreadSafeRateLimiter extends RateLimiter
Fairly heavy-handed thread safe version of the above.
Fairly heavy-handed thread safe version of the above. There's not a lot of point to trying to avoid locking here, since the whole point of this thing is to block writes, so we might as well keep it simple.
-
trait
VersionUtil extends AnyRef
Used to get hold of the version of a particular item in the manifest.
-
trait
ExponentialBackoff extends AnyRef
To avoid tight loops around errors.
To avoid tight loops around errors.
- Annotations
- @deprecated
- Deprecated
(Since version 0.1.0) Use the more flexible Retry functions
Value Members
-
object
BlobUtils
Prepares an object to be sent over the wire
-
object
Retry
Helper to retry potentially failing functions
Helper to retry potentially failing functions
- Since
10/Apr/2015 16:55
- object Throwables
- object VersionUtil extends VersionUtil
-
object
ZipUtils
Util to zip/unzip an object/binary blob in/to a binary blob/object.
Util to zip/unzip an object/binary blob in/to a binary blob/object.
Actual impl of the compression is plain GZIP classes from the Java JDK.