code: @Override
  	public boolean write(T record) throws IOException {
  		// check whether we need a new memory segment for the sort index
  		if (this.currentSortBufferOffset > this.lastEntryOffset) {
  			if (memoryAvailable()) {
  				this.currentSortBufferSegment = nextMemorySegment();
  				this.sortBuffer.add(this.currentSortBufferSegment);
  				this.outView.set(this.currentSortBufferSegment);
  				this.currentSortBufferOffset = 0;
  				this.sortBufferBytes += this.segmentSize;
  			}
  			else {
  				return false;
  			}
  		}
  		
  		// serialize the record into the data buffers
  		try {
  			this.comparator.writeWithKeyNormalization(record, this.outView);
  			this.numRecords++;
  			this.currentSortBufferOffset += this.recordSize;
  			return true;
  		} catch (EOFException eofex) {
  			throw new IOException("Error: Serialization consumes more bytes than announced by the serializer.");
  		}
  	}
docs: Writes a given record to this sort buffer. The written record will be appended and take
  the last logical position.
  
  @param record The record to be written.
  @return True, if the record was successfully written, false, if the sort buffer was full.
  @throws IOException Thrown, if an error occurred while serializing the record into the buffers.