code: boolean beginRecord() throws IOException, DurableDataLogException {
          try {
              if (this.currentEntry != null && !this.prefetchedEntry) {
                  endRecord();
              }
  
              fetchNextEntry();
              return true;
          } catch (NoMoreRecordsException ex) {
              // We've reached the end of the DataFrameInputStream. We are done.
              return false;
          }
      }
docs: Indicates that a new record is to be expected. When invoked, if in the middle of a record, it will be skipped over
  and the DataFrameInputStream will be positioned at the beginning of the next record.
  
  @return True if a new record can be read, false if we reached the end of the DataFrameInputStream and can no longer
  read.
  @throws IOException If an IO Exception occurred.
  @throws DurableDataLogException If a non-IO Exception has occurred, usually thrown by the underlying DurableDataLog.