Dan Burkert created KUDU-2020:
---------------------------------

             Summary: tserver failure causes multiple tablet copy operations 
per under-replicated tablet
                 Key: KUDU-2020
                 URL: https://issues.apache.org/jira/browse/KUDU-2020
             Project: Kudu
          Issue Type: Bug
          Components: tserver
    Affects Versions: 1.3.1
            Reporter: Dan Burkert


Combing through logs of a cluster recovering from tserver failure and reading 
the tablet copy code revealed that if a tserver's tablet copy threadpool is 
full (which defaults to 10 slots), and a duplicate tablet copy request is 
received from a leader, the tablet server will respond with a THROTTLED error 
instead of an ALREADY_INPROGRESS error.  If this situation continues for 300 
seconds, the leader will eject the replica, which has the effect of starting 
anothe tablet copy on another tserver.  Meanwhile, the original tablet copy may 
still be making progress in the first follower tserver.

As a result, a single tablet can be in the process of being copied multiple 
times if a cluster is undergoing many tablet copies, for instance if a tserver 
with hundreds of tablets fails.

It's expected that a cluster which is recovering from tserver failure would 
have roughly equal aggregate read and write IO throughput, however because of 
this bug, the recovering cluster exhibited significantly more write disk 
throughput than read, since many tablet copies were served from cache.  
Attached is a representative graph.  The spike around 5:07 is when fsyncs were 
disabled cluster wide (fsync tablet copy overhead is being tracked in 
KUDU-1726).

Thanks to Adar and Todd for helping me track this down.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to