You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Danny Yeshurun (JIRA)" <ji...@apache.org> on 2013/01/30 17:39:12 UTC

[jira] [Created] (KAFKA-744) Bad response time for fetch request

Danny Yeshurun created KAFKA-744:
------------------------------------

             Summary: Bad response time for fetch request
                 Key: KAFKA-744
                 URL: https://issues.apache.org/jira/browse/KAFKA-744
             Project: Kafka
          Issue Type: Bug
            Reporter: Danny Yeshurun


Getting a response to a fetch request from an empty partition after the first time takes lots of time.
example:
Post a fetch request to topic 'test' partition 0 which has no data in it, you get the response in ~0.0005 sec. When posting the same request for the second time (still no data the response time is ~0.04 sec.
Following is a simplistic php script that demonstrate the problem (note that the time is measured for the 1st read)

$host = "your-kafka-ip:port";

$socket = stream_socket_client($host);
if (!$socket) {
    print "can't connect\n";
    exit;
}
$topic = 'test';
$data = pack('n', 1); // fetch
$data .= pack('n', strlen($topic)) . $topic;//short string
$data .= pack('N', 0);//partition
$data .= str_repeat(chr(0), 8);//offset
$data .= pack('N', 1000); //max size
$requestSize = strlen($data);
for ($i = 0; $i < 10; $i++) {
    fwrite($socket, pack('N', $requestSize));
    fwrite($socket, $data);
    $ts = microtime(true);
    $bytes32 = fread($socket, 4);
    $ts = microtime(true) - $ts;
    print "> {$ts}\n";
    $responseSize = current(unpack('N', $bytes32));
    $bytes16 = fread($socket,2);
}


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira