void readPayload(final Input input) {
        SearchProgressLog.increment(queryKey, SearchPhase.LMDB_DATA_STORE_READ_PAYLOAD);
        SimpleMetrics.measure("readPayload", () -> {
            // Determine how many bytes the payload contains.
            final int length = input.readInt();
            if (length > 0) {
                // If there are some bytes to read then read them.
                final byte[] bytes = input.readBytes(length);
                try (final Input in = new Input(new ByteArrayInputStream(bytes))) {
                    while (!in.end()) {
                        final int rowKeyLength = in.readInt();
                        final byte[] key = in.readBytes(rowKeyLength);
                        ByteBuffer keyBuffer = bufferFactory.acquire(key.length);
                        keyBuffer.put(key, 0, key.length);
                        keyBuffer.flip();

                        final int valueLength = in.readInt();
                        final byte[] value = in.readBytes(valueLength);
                        ByteBuffer valueBuffer = bufferFactory.acquire(value.length);
                        valueBuffer.put(value, 0, value.length);
                        valueBuffer.flip();

                        // Create a new unique key if this isn't a group key.
                        LmdbKV lmdbKV = new LmdbKV(null, keyBuffer, valueBuffer);
                        lmdbKV = lmdbRowKeyFactory.makeUnique(lmdbKV);

                        lmdbDataStore.put(lmdbKV);
                    }
                }
            }
        });
    }
Read items from the supplied input and transfer them to the data store.

@param input The input to read.
stroom-query/stroom-query-common/src/main/java/stroom/query/common/v2/LmdbPayloadCreator.java