Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.20.2, 0.21.0
-
None
-
None
Description
If you run distcp with '-update' option, for each of the files present on source cluster setup invokes a separate RPC to destination cluster to fetch file info.
Usually this overhead is not very noticeable when both cluster are geographically close to each other. But if the latency is large, setup could take couple of orders of magnitude longer.
E.g. : source has 10k directories, each with about 10 files, round trip latency between source and destination is 75 ms (typical for coast-to-coast clusters).
If we run distcp on source cluster, set up would take about 2.5 hours irrespective of whether destination has these files or not. '-lsr' on the same dest dir from source cluster would take up to 12 min (depending on how many directories already exist on dest).
- A fairly simple fix to how setup() iterates should bring the set up time to same as '-lsr'. I will have a patch for this.. (though 12 min is too large).
- A more scalable option is to differ update check to mappers.