presto-main/src/main/java/io/prestosql/operator/LookupJoinOperator.java/LookupJoinOperator/spillAndMaskSpilledPositions
class LookupJoinOperator:        private Page spillAndMaskSpilledPositions(Page page, IntPredicate spillMask)
        {
            checkState(spillInProgress.isDone(), "Previous spill still in progress");
            checkSuccess(spillInProgress, "spilling failed");

            if (!spiller.isPresent()) {
                spiller = Optional.of(partitioningSpillerFactory.create(
                        probeTypes,
                        getPartitionGenerator(),
                        spillContext.newLocalSpillContext(),
                        memoryTrackingContext.newAggregateSystemMemoryContext()));
            }

            PartitioningSpillResult result = spiller.get().partitionAndSpill(page, spillMask);
            spillInProgress = result.getSpillingFuture();
            return result.getRetained();
        }