Currently join operator (io.trino.operator.join.HashBuilderOperator) is unspilling partition by partition using io.trino.spiller.FileSingleStreamSpiller. However, io.trino.spiller.FileSingleStreamSpiller is single threaded. In case of HashBuilderOperator it should be unspilling each partition in parallel.