public void createMetaEntryForValue(final Txn<ByteBuffer> txn,
                                        final ByteBuffer keyBuffer,
                                        final StagingValue refDataValue) {

        try (PooledByteBuffer pooledValueBuffer = getPooledValueBuffer()) {
            final ByteBuffer valueBuffer = pooledValueBuffer.getByteBuffer();
            serializeValue(pooledValueBuffer.getByteBuffer(), new ValueStoreMeta(refDataValue.getTypeId()));

            PutOutcome putOutcome = put(txn, keyBuffer, valueBuffer, false);

            if (!putOutcome.isSuccess()) {
                throw new RuntimeException(LogUtil.message(
                        "Put failed for key [{}], value [{}], may be an entry already",
                        ByteBufferUtils.byteBufferInfo(keyBuffer),
                        refDataValue));
            }
        }
    }
This store holds meta data about the corresponding entries in {@link ValueStoreDb}.
It shares the same key as {@link ValueStoreDb} and each entry in here has a corresponding
entry in {@link ValueStoreDb}.
<p>
The type part of the value defines the data type of the value in {@link ValueStoreDb}.
The referenceCount part is used to keep track of the number of key/value or range/value
entries that are associated with an entry in {@link ValueStoreDb}.
<p>
key        | value
(hash|id)  | (type|referenceCount)
---------------------------------------------
(1234|00)  | (0|001)
(1234|01)  | (0|001)
(4567|00)  | (0|001)
(7890|00)  | (1|001)
stroom-pipeline/src/main/java/stroom/pipeline/refdata/store/offheapstore/databases/ValueStoreMetaDb.java