@Override public FileStatus[] listStatus(Path path) throws IOException { FileStatus[] statuses = super.listStatus(path); if (statuses == null) { acquirePermit("listStatus " + path); } else { acquirePermits(statuses.length / LISTING_FILES_PER_PERMIT + 1, "listStatus " + path); } return statuses; }
@Override public FileStatus[] listStatus(Path path, PathFilter filter) throws IOException { CountingPathFilterDecorator decoratedFilter = new CountingPathFilterDecorator(filter); FileStatus[] statuses = super.listStatus(path, decoratedFilter); if (statuses == null) { acquirePermit("listStatus " + path); } else { acquirePermits(decoratedFilter.getPathsProcessed().get() / LISTING_FILES_PER_PERMIT + 1, "listStatus " + path); } return statuses; }
/** * Add timer metrics to {@link DistributedFileSystem#listStatus(Path)} */ public FileStatus[] listStatus(Path path) throws IOException { try (TimerContextWithLog context = new TimerContextWithLog(listStatusTimer.time(), "listStatus", path)) { FileStatus[] statuses = super.listStatus(path); context.setResult(statuses); return statuses; } }
@Override public FileStatus[] listStatus(Path path) throws IOException { FileStatus[] statuses = super.listStatus(path); if (statuses == null) { acquirePermit("listStatus " + path); } else { acquirePermits(statuses.length / LISTING_FILES_PER_PERMIT + 1, "listStatus " + path); } return statuses; }
@Override public FileStatus[] listStatus(Path path, PathFilter filter) throws IOException { CountingPathFilterDecorator decoratedFilter = new CountingPathFilterDecorator(filter); FileStatus[] statuses = super.listStatus(path, decoratedFilter); if (statuses == null) { acquirePermit("listStatus " + path); } else { acquirePermits(decoratedFilter.getPathsProcessed().get() / LISTING_FILES_PER_PERMIT + 1, "listStatus " + path); } return statuses; }
/** * Add timer metrics to {@link DistributedFileSystem#listStatus(Path)} */ public FileStatus[] listStatus(Path path) throws IOException { try (TimerContextWithLog context = new TimerContextWithLog(listStatusTimer.time(), "listStatus", path)) { FileStatus[] statuses = super.listStatus(path); context.setResult(statuses); return statuses; } }