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

Sijie Guo commented on BOOKKEEPER-336:
--------------------------------------

{quote}
 Would like to know your opinion on this. As we had talked about to have a 
separate scheduling algo for the perf oriented strategies?
{quote}

@Rekesh, @Ivan:

I think we still need a clean interface ReadStrategy to allow the possibility 
to provide different read strategies. For code maintain, it would be better to 
have only one read strategy in codebase.

{quote}
To do this, we maintain a array of int in PendingReadOp, int[] responseTimes = 
new int[ensembleSize]; 
The response time can be UNKNOWN, PENDING, or a positive integer.
Initially all will be initialized to UNKNOWN. When a read request is made to a 
bookie, we check the response time. If it is UNKNOWN, we make the request to 
the bookie, and to the next bookie also. If is PENDING, we do not send to the 
bookie, but we do send to the next bookie. If it is a positive int, we check it 
against the threshold and send to the next bookie also if it exceeds the 
threshold.
{quote}

it did the 'timeout' part as my previous comment. If we choose bookie to start 
reading according to the response time, it would be kind of 're-order'. the 
idea matches my previous comment. I am OK with it.

                
> bookie readEntries is taking more time if the ensemble has failed bookie(s)
> ---------------------------------------------------------------------------
>
>                 Key: BOOKKEEPER-336
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-336
>             Project: Bookkeeper
>          Issue Type: Bug
>    Affects Versions: 4.1.0
>            Reporter: Brahma Reddy Battula
>            Assignee: Rakesh R
>         Attachments: BOOKKEEPER-336.1.patch, BOOKKEEPER-336.patch
>
>
> Scenario:
> 1) Start three bookies. Create ledger with ensemblesize=3, quorumsize=2
> 2) Add 100 entries to this ledger
> 3) Make first bookie down and read the entries from 0-99
> Output: Each entry is going to fetch from the failed bookie and is waiting 
> for the bookie connection timeout, only after failure going to next bookie.
> This is affecting the read entry performance.
> Impact: Namenode switching time will be affected by adding this failed bookie 
> readTimeOut also.

--
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