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

Rakesh R commented on BOOKKEEPER-336:
-------------------------------------

@Ivan Thanks a lot for the new idea. Just few clarifications.

bq. I'd prefer to only have one implementation of the reading schedule
@Flavio @Sijie
Would like to know your opinion on this. As we had talked about to have a 
separate scheduling algo for the perf oriented strategies?


bq.When making a read request, if the last response time for the replica is 
greater than a configured threshold, make the read request for the next replica 
also.

You are suggesting to have parallel reads and whoever wins will send the result 
back to the client. Also collect statistics of the previous reads.

Will the parallel read (to the quorum bookies) makes the bkserver busy/exhaust 
with many read requests ?


bq.To do this, we maintain a array of int in PendingReadOp, int[] responseTimes 
= new int[ensembleSize]; 

Since PendingReadOp is for single entry, bookie statistics should be maintained 
behind and in the bkclient like, 
HashSet bkResponseTimes <InetAddress, Integer> = new HashSet <InetAddress, 
Integer>(). 
When reading, it justs initialize the PendingReadOp with previous 
statistics(UNKNOWN/PENDING/+ve integer) and will send the requests to the 
bookie which has good response time. Also I feel, the bookies can be reordered 
based on the statistics by sending request to the good/fast bookies first.
                
> 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