Bharath Vissapragada has posted comments on this change.

Change subject: IMPALA-4172/IMPALA-3653: Improvements to block metadata loading
......................................................................


Patch Set 2:

(16 comments)

http://gerrit.cloudera.org:8080/#/c/5148/2/fe/src/main/java/org/apache/impala/catalog/DiskIdMapper.java
File fe/src/main/java/org/apache/impala/catalog/DiskIdMapper.java:

Line 27:  * This class encapsulates the logic required for mapping HDFS
> Much fluff, simplify to: Maps HDFS storage-UUIDs to per-host 0-based, seque
Done


Line 29:  * by the backend.
> required by Impala backends
Done


Line 31: public class DiskIdMapper {
> Make this a singleton to clarify the intended use.
Done


Line 36:     // This is intentionally implemented as a static object to share 
the storageIDs across
> move this part to the class comment
Done


Line 38:     // consistent across all the tables, without which, we can 
potentially confuse the
> also mention that the static solution requires the least amount of memory
Done


Line 48:     private static ConcurrentHashMap<String, AtomicInteger>
> Don't think we need a ConcurrentHashMap or AtomicInteger here, because when
Used a stricter locking scheme, but as we discussed offline, this can still 
have contention in the initial metadata load. Added a TODO for that.


http://gerrit.cloudera.org:8080/#/c/5148/2/fe/src/main/java/org/apache/impala/catalog/HdfsTable.java
File fe/src/main/java/org/apache/impala/catalog/HdfsTable.java:

Line 294:   // Keeps track of all the parition paths that are filtered to add 
block metadata.
> this comment style for classes and functions
Oops, done.


Line 368:         if 
(!pathMd.filteredParitionPaths.contains(fileStatus.getPath())) continue;
> Looks like this contains() and the indexOf() below can become very expensiv
The new PS design revamps the whole thing. We don't do indexOf() searches 
anymore.


Line 423:     for (int i=0; i < fileMd.pathFds.size(); ++i) {
> i = 0 (add spaces)
Done


Line 458:       // Only build the storage IDs fs instances that support the 
BlockLocation API.
> ... for fs instances ...
Done


Line 720:   private void loadAllPartitions(
> After reading through this a few times I'm still confused about the high-le
The new PS implements a similar logic. We can sync-up on that if required.


Line 777:         if (dirsToLoad.contains(partDir) ||
> positive is more readable to me
Done


http://gerrit.cloudera.org:8080/#/c/5148/2/fe/src/main/java/org/apache/impala/common/FileSystemUtil.java
File fe/src/main/java/org/apache/impala/common/FileSystemUtil.java:

Line 275:    * Returns true if the filesystem supports BlockLocation API.
> What API is it specifically? LocatedFileStatus.getBlockLocations()?
Yes, all methods returning 'BlockLocation's.


Line 277:   public static boolean supportsBlockLocationAPI(FileSystem fs) {
> supportsBlockLocationApi
Done


Line 406:   public static boolean isPathChild(Path p1, Path p2) {
> isChildPath(Path p, Path parent)
Done


Line 408:     Path parentDir = p1.getParent();
> I think this can be improved by using the Path.getDepth(). You can do getPa
good idea. Done.


-- 
To view, visit http://gerrit.cloudera.org:8080/5148
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ie127658172e6e70dae441374530674a4ac9d5d26
Gerrit-PatchSet: 2
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Bharath Vissapragada <bhara...@cloudera.com>
Gerrit-Reviewer: Alex Behm <alex.b...@cloudera.com>
Gerrit-Reviewer: Bharath Vissapragada <bhara...@cloudera.com>
Gerrit-Reviewer: Mostafa Mokhtar <mmokh...@cloudera.com>
Gerrit-HasComments: Yes

Reply via email to