[
https://issues.apache.org/jira/browse/KAFKA-3973?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15391502#comment-15391502
]
Ismael Juma commented on KAFKA-3973:
------------------------------------
Also, MemoryMeasurer has the following enum:
{code}
public static enum Guess {
/* If instrumentation is not available, error when measuring */
NEVER,
/* If instrumentation is available, use it, otherwise guess the size
using predefined specifications */
FALLBACK_SPEC,
/* If instrumentation is available, use it, otherwise guess the size
using sun.misc.Unsafe */
FALLBACK_UNSAFE,
/* If instrumentation is available, use it, otherwise guess the size
using sun.misc.Unsafe; if that is unavailable,
* guess using predefined specifications.*/
FALLBACK_BEST,
/* Always guess the size of measured objects using predefined
specifications*/
ALWAYS_SPEC,
/* Always guess the size of measured objects using sun.misc.Unsafe */
ALWAYS_UNSAFE
}
{code}
Which option did you test, the instrumentation one (that required a Java agent
to be configured)?
> Investigate feasibility of caching bytes vs. records
> ----------------------------------------------------
>
> Key: KAFKA-3973
> URL: https://issues.apache.org/jira/browse/KAFKA-3973
> Project: Kafka
> Issue Type: Sub-task
> Components: streams
> Reporter: Eno Thereska
> Assignee: Bill Bejeck
> Fix For: 0.10.1.0
>
> Attachments: CachingPerformanceBenchmarks.java, MemoryLRUCache.java
>
>
> Currently the cache stores and accounts for records, not bytes or objects.
> This investigation would be around measuring any performance overheads that
> come from storing bytes or objects. As an outcome we should know whether 1)
> we should store bytes or 2) we should store objects.
> If we store objects, the cache still needs to know their size (so that it can
> know if the object fits in the allocated cache space, e.g., if the cache is
> 100MB and the object is 10MB, we'd have space for 10 such objects). The
> investigation needs to figure out how to find out the size of the object
> efficiently in Java.
> If we store bytes, then we are serialising an object into bytes before
> caching it, i.e., we take a serialisation cost. The investigation needs
> measure how bad this cost can be especially for the case when all objects fit
> in cache (and thus any extra serialisation cost would show).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)