code: public void open() {
  		// sanity checks
  		if (!this.closed.compareAndSet(true, false)) {
  			throw new IllegalStateException("Hash Table cannot be opened, because it is currently not closed.");
  		}
  		
  		// create the partitions
  		final int partitionFanOut = getPartitioningFanOutNoEstimates(this.availableMemory.size()); 
  		createPartitions(partitionFanOut);
  		
  		// set up the table structure. the write behind buffers are taken away, as are one buffer per partition
  		final int numBuckets = getInitialTableSize(this.availableMemory.size(), this.segmentSize, 
  			partitionFanOut, this.avgRecordLen);
  		
  		initTable(numBuckets, (byte) partitionFanOut);
  	}
docs: Build the hash table
  
  @throws IOException Thrown, if an I/O problem occurs while spilling a partition.