[ https://issues.apache.org/jira/browse/KAFKA-1316?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14020901#comment-14020901 ]
Jay Kreps commented on KAFKA-1316: ---------------------------------- I updated this patch to 1. Address a number of comments. 2. Get all the unit tests passing (there were a couple of bugs that caused tests to sporadically hang) I think overall there are two levels of feedback here. The first is to iron out whether the API actually makes sense and is convenient (i.e. is what we are trying to do worth doing) and then figure out any additional stylistic or correctness issues (i.e. have we done it well). The current approach has two layers. The network layer is in org.apache.kafka.clients.network and has the selector and logic for sending and receiving size-delimited byte arrays across a bunch of connections. The new NetworkClient/KafkaClient layer (name could be improved) is basically adding on top of this several concerns: 1. Serialization 2. Cluster metadata management 3. Connection management So let's really put some thought into seeing if we have these layers right and have the right apis. > Refactor Sender > --------------- > > Key: KAFKA-1316 > URL: https://issues.apache.org/jira/browse/KAFKA-1316 > Project: Kafka > Issue Type: Sub-task > Components: producer > Reporter: Jay Kreps > Assignee: Jay Kreps > Attachments: KAFKA-1316.patch, KAFKA-1316_2014-06-03_11:15:38.patch, > KAFKA-1316_2014-06-03_14:33:33.patch, KAFKA-1316_2014-06-07_11:20:38.patch > > > Currently most of the logic of the producer I/O thread is in Sender.java. > However we will need to do a fair number of similar things in the new > consumer. Specifically: > - Track in-flight requests > - Fetch metadata > - Manage connection lifecycle > It may be possible to refactor some of this into a helper class that can be > shared with the consumer. This will require some detailed thought. -- This message was sent by Atlassian JIRA (v6.2#6252)