public bool CreateOrUpdateKeyValue(ByteBuffer key, ByteBuffer value) { MakeWrittable(); uint valueFileId; uint valueOfs; int valueSize; _keyValueDB.WriteCreateOrUpdateCommand(_prefix, key, value, out valueFileId, out valueOfs, out valueSize); var ctx = new CreateOrUpdateCtx { KeyPrefix = _prefix, Key = key, ValueFileId = valueFileId, ValueOfs = valueOfs, ValueSize = valueSize, Stack = _stack }; BtreeRoot.CreateOrUpdate(ctx); _keyIndex = ctx.KeyIndex; if (ctx.Created && _prefixKeyCount >= 0) { _prefixKeyCount++; } return(ctx.Created); }