[ 
https://issues.apache.org/jira/browse/KAFKA-385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13434655#comment-13434655
 ] 

Joel Koshy commented on KAFKA-385:
----------------------------------

I'm about to upload a rebased patch so I'd like to incorporate as much of this 
as I can.

> 1. Can we make the reporters pluggable? We shouldn't hard code those, you 
> should just give something like 
  metrics.reporters=com.xyz.MyReporter, com.xyz.YourReporter 

These (and ConsoleReporter) are the only reporters currently available. It 
would be good to make it pluggable, but their constructors are different. i.e., 
I don't think it is possible to do this without using a spring-like framework.

> 2. Please remove the reference to scala class names from the logging (e.g. 
> DelayedProduce)

I don't follow this comment - can you clarify? Which file are you referring to?

> 3. How are you measuring the performance impact of the change you made to 
> synchronization?

I did not - I can measure the satisfaction time with and without the 
synchronization but I doubt it would add much overhead. Also, we have to add 
synchronization one way or the other - either inside the purgatory or outside 
(i.e,. burden the client's usage).

> 4. It would be good to cut-and-paste the scala timer class they provide in 
> the scala wrapper. That is really nice. 

They == ? Not clear on this - can you clarify?

> 5. Size. 
I think the overhead is the following: 
8 byte pointer to the value 
12 byte object header 
8 byte value 
Total: 28 bytes 

> This is too much memory for something that should just be monitoring. I think 
> we should not do per-key histograms. 

This is certainly a concern. So with the scenario I have in my previous 
comment, this would be > 13MB per broker and > double that if I use 
exponentially decaying sampling. That said, there is only one per-key histogram 
(which is the follower catch up time). OTOH since the main use I can think of 
is to see which followers are slower we can achieve that with grep's in the 
log. So I guess the visual benefit comes at a prohibitive memory cost.

                
> RequestPurgatory enhancements - expire/checkSatisfy issue; add jmx beans
> ------------------------------------------------------------------------
>
>                 Key: KAFKA-385
>                 URL: https://issues.apache.org/jira/browse/KAFKA-385
>             Project: Kafka
>          Issue Type: Bug
>            Reporter: Joel Koshy
>            Assignee: Joel Koshy
>              Labels: bugs
>             Fix For: 0.8
>
>         Attachments: example_dashboard.jpg, graphite_explorer.jpg, 
> KAFKA-385-v1.patch, KAFKA-385-v2.patch
>
>
> As discussed in KAFKA-353:
> 1 - There is potential for a client-side race condition in the 
> implementations of expire and checkSatisfied. We can just synchronize on the 
> DelayedItem.
> 2 - Would be good to add jmx beans to facilitate monitoring RequestPurgatory 
> stats.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to