allocate DefaultPartitioner only once