mcvsubbu commented on a change in pull request #3671: Make different PinotFS
concrete classes have the same behaviors
URL: https://github.com/apache/incubator-pinot/pull/3671#discussion_r255703103
##########
File path:
pinot-hadoop-filesystem/src/main/java/org/apache/pinot/filesystem/HadoopPinotFS.java
##########
@@ -105,31 +118,87 @@ public boolean move(URI srcUri, URI dstUri, boolean
overwrite)
@Override
public boolean copy(URI srcUri, URI dstUri)
throws IOException {
- Path source = new Path(srcUri);
- Path target = new Path(dstUri);
- RemoteIterator<LocatedFileStatus> sourceFiles =
_hadoopFS.listFiles(source, true);
- if (sourceFiles != null) {
- while (sourceFiles.hasNext()) {
- boolean succeeded =
- FileUtil.copy(_hadoopFS, sourceFiles.next().getPath(), _hadoopFS,
target, true, _hadoopConf);
- if (!succeeded) {
- return false;
+ if (!exists(srcUri)) {
Review comment:
One thing that occurs to me as I review something like this, is that for
some (slow) FS, the latency of making each call may be so bad, that we are
better off calling some native file system method and you get what you get.
Going this route is relatively easy, and we just need to make sure that Pinot's
requirements are met in all file system (i.e. if Pinot uses the case of copying
from a dir to a file and that case works fine across everything, then that is
alll we need).
Let us discuss a bit more before we put in too much work to unify file
systems.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]