code: private static void sortKeyPrefixArrayAtByte(
        LongArray array, long numRecords, long[] counts, int byteIdx, long inIndex, long outIndex,
        boolean desc, boolean signed) {
      assert counts.length == 256;
      long[] offsets = transformCountsToOffsets(
        counts, numRecords, array.getBaseOffset() + outIndex * 8L, 16, desc, signed);
      Object baseObject = array.getBaseObject();
      long baseOffset = array.getBaseOffset() + inIndex * 8L;
      long maxOffset = baseOffset + numRecords * 16L;
      for (long offset = baseOffset; offset < maxOffset; offset += 16) {
        long key = Platform.getLong(baseObject, offset);
        long prefix = Platform.getLong(baseObject, offset + 8);
        int bucket = (int)((prefix >>> (byteIdx * 8)) & 0xff);
        long dest = offsets[bucket];
        Platform.putLong(baseObject, dest, key);
        Platform.putLong(baseObject, dest + 8, prefix);
        offsets[bucket] += 16;
      }
    }
docs: Specialization of sortAtByte() for key-prefix arrays.