Skip to content

Commit

Permalink
Suppress verbose log during table iterator get (#193)
Browse files Browse the repository at this point in the history
* If no record exists in the iterator range, the very first get may
return failure, and that is expected. We should not leave an error
log for that case, as it may be very verbose.
  • Loading branch information
greensky00 authored Jan 28, 2025
1 parent 8fe16e2 commit 6515172
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
1 change: 1 addition & 0 deletions src/table_file.h
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,7 @@ class TableFile {
uint64_t maxSeq;

bool safeMode;
bool prevNextHappened;
};

Status updateSnapshot();
Expand Down
17 changes: 15 additions & 2 deletions src/table_file_iterator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ TableFile::Iterator::Iterator()
, minSeq(NOT_INITIALIZED)
, maxSeq(NOT_INITIALIZED)
, safeMode(false)
, prevNextHappened(false)
{}

TableFile::Iterator::~Iterator() {
Expand Down Expand Up @@ -178,7 +179,13 @@ Status TableFile::Iterator::get(Record& rec_out) {
return Status::KEY_NOT_FOUND;
}
// Otherwise, error.
_log_err(tFile->myLog, "fdb_iterator_get failed: %d", fs);

// NOTE: If it is the very first get without moving the cursor,
// an error is expected if no record exists in the range.
// Tolerate this case.
if (prevNextHappened) {
_log_err(tFile->myLog, "fdb_iterator_get failed: %d", fs);
}
return toJungleStatus(fs);
}

Expand Down Expand Up @@ -243,7 +250,11 @@ Status TableFile::Iterator::getMeta(Record& rec_out,
return Status::KEY_NOT_FOUND;
}
// Otherwise, error.
_log_err(tFile->myLog, "fdb_iterator_get failed: %d", fs);

// NOTE: Same as `get()`.
if (prevNextHappened) {
_log_err(tFile->myLog, "fdb_iterator_get_metaonly failed: %d", fs);
}
return toJungleStatus(fs);
}

Expand Down Expand Up @@ -285,6 +296,7 @@ Status TableFile::Iterator::prev() {
assert(fs == FDB_RESULT_SUCCESS);
return Status::OUT_OF_RANGE;
}
prevNextHappened = true;
return Status();
}

Expand All @@ -298,6 +310,7 @@ Status TableFile::Iterator::next() {
assert(fs == FDB_RESULT_SUCCESS);
return Status::OUT_OF_RANGE;
}
prevNextHappened = true;
return Status();
}

Expand Down

0 comments on commit 6515172

Please sign in to comment.