question: public LogSeqNum append ( Constant [ ] rec ) { logMgrLock . lock ( ) ; try { int recsize = pointerSize * 2 ; for ( Constant c : rec ) recsize += Page . size ( c ) ; if ( currentPos + recsize >= BLOCK_SIZE ) { flush ( ) ; appendNewBlock ( ) ; } LogSeqNum lsn = currentLSN ( ) ; for ( Constant c : rec ) appendVal ( c ) ; finalizeRecord ( ) ; lastLsn = lsn ; return lsn ; } finally { logMgrLock . unlock ( ) ; } }
target:  Appends a log record to the file. The record contains an arbitrary array of values. The method also writes an integer to the end of each log record whose value is the offset of the corresponding integer for the previous log record. These integers allow log records to be read in reverse order.