docs: public DataAppendResult append(StoreTxLogPosition txLog, byte[] dataBytes) throws IOException {
  
          int length = dataBytes.length;
  
          DataAppendResult result = new DataAppendResult();
  
          synchronized (this) {
  
              if (length > maxDataEntrySize) {
                  throw new DBException("Value size can not great than " + maxDataEntrySize);
              }
              if (fileHeader.getFileLength() + length >= fileSize) {
                  fileHeader.markFull();
                  throw new CapacityNotEnoughException();
              }
  
              ReadableByteChannel src = Channels.newChannel(new UnsafeByteArrayInputStream(dataBytes));
  
              long position = fileHeader.getFileLength();
  
              fileChannel.transferFrom(src, position, length);
  
              result.setFileId(fileId);
              result.setFromIndex(position);
              result.setLength(length);
  
              fileHeader.setFileLength(fileHeader.getFileLength() + length);
  
              fileHeader.getTotalNum().incrementAndGet();
              fileHeader.getAliveNum().incrementAndGet();
  
              this.lastTxLogPosition = txLog;
          }
  
          return result;
      }