Manno15 commented on a change in pull request #2181:
URL: https://github.com/apache/accumulo/pull/2181#discussion_r660769786
##########
File path:
server/tserver/src/main/java/org/apache/accumulo/tserver/log/RecoveryLogsIterator.java
##########
@@ -56,42 +56,57 @@
private final List<Scanner> scanners;
private final Iterator<Entry<Key,Value>> iter;
+ public RecoveryLogsIterator(ServerContext context, List<Path>
recoveryLogDirs,
+ boolean checkFirstKEy) throws IOException {
+ this(context, recoveryLogDirs, null, null, checkFirstKEy);
+ }
+
/**
* Scans the files in each recoveryLogDir over the range [start,end].
*/
- RecoveryLogsIterator(ServerContext context, List<Path> recoveryLogDirs,
LogFileKey start,
+ public RecoveryLogsIterator(ServerContext context, List<Path>
recoveryLogDirs, LogFileKey start,
LogFileKey end, boolean checkFirstKey) throws IOException {
List<Iterator<Entry<Key,Value>>> iterators = new
ArrayList<>(recoveryLogDirs.size());
scanners = new ArrayList<>();
- Range range = LogFileKey.toRange(start, end);
+ Range range = start != null ? LogFileKey.toRange(start, end) : null;
var vm = context.getVolumeManager();
for (Path logDir : recoveryLogDirs) {
LOG.debug("Opening recovery log dir {}", logDir.getName());
- List<Path> logFiles = getFiles(vm, logDir);
var fs = vm.getFileSystemByPath(logDir);
- // only check the first key once to prevent extra iterator creation and
seeking
- if (checkFirstKey) {
- validateFirstKey(context, fs, logFiles, logDir);
- }
-
- for (Path log : logFiles) {
- var scanner =
RFile.newScanner().from(log.toString()).withFileSystem(fs)
- .withTableProperties(context.getConfiguration()).build();
-
- scanner.setRange(range);
+ // if path passed in is actually a file, read a single RFile
+ if (vm.getFileStatus(logDir).isFile()) {
Review comment:
I will look for alternatives. Have to work around a few inconsistencies
with the old stuff and new.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]