public ByteBuffer GetValue() { if (!IsValidKey()) { return(ByteBuffer.NewEmpty()); } var nodeIdxPair = _stack[_stack.Count - 1]; var leafMember = ((IBTreeLeafNode)nodeIdxPair.Node).GetMemberValue(nodeIdxPair.Idx); return(_keyValueDB.ReadValue(leafMember.ValueFileId, leafMember.ValueOfs, leafMember.ValueSize)); }
public ByteBuffer GetValue() { if (!IsValidKey()) { return(ByteBuffer.NewEmpty()); } var nodeIdxPair = _stack[_stack.Count - 1]; var leafMember = ((IBTreeLeafNode)nodeIdxPair.Node).GetMemberValue(nodeIdxPair.Idx); try { return(_keyValueDB.ReadValue(leafMember.ValueFileId, leafMember.ValueOfs, leafMember.ValueSize)); } catch (BTDBException ex) { throw new BTDBException($"GetValue failed in TrId:{BtreeRoot.TransactionId},TRL:{BtreeRoot.TrLogFileId},Ofs:{BtreeRoot.TrLogOffset},ComUlong:{BtreeRoot.CommitUlong} and LastTrId:{_keyValueDB.LastCommited.TransactionId},ComUlong:{_keyValueDB.LastCommited.CommitUlong} OldestTrId:{_keyValueDB.OldestRoot.TransactionId},TRL:{_keyValueDB.OldestRoot.TrLogFileId},ComUlong:{_keyValueDB.OldestRoot.CommitUlong} innerMessage:{ex.Message}", ex); } }
public ByteBuffer GetValue() { if (!IsValidKey()) { return(ByteBuffer.NewEmpty()); } var nodeIdxPair = _stack[_stack.Count - 1]; var leafMember = ((IBTreeLeafNode)nodeIdxPair.Node).GetMemberValue(nodeIdxPair.Idx); try { return(_keyValueDB.ReadValue(leafMember.ValueFileId, leafMember.ValueOfs, leafMember.ValueSize)); } catch (BTDBException ex) { var oldestRoot = (IBTreeRootNode)_keyValueDB.ReferenceAndGetOldestRoot(); var lastCommited = (IBTreeRootNode)_keyValueDB.ReferenceAndGetLastCommitted(); // no need to dereference roots because we know it is managed throw new BTDBException($"GetValue failed in TrId:{BtreeRoot.TransactionId},TRL:{BtreeRoot.TrLogFileId},Ofs:{BtreeRoot.TrLogOffset},ComUlong:{BtreeRoot.CommitUlong} and LastTrId:{lastCommited.TransactionId},ComUlong:{lastCommited.CommitUlong} OldestTrId:{oldestRoot.TransactionId},TRL:{oldestRoot.TrLogFileId},ComUlong:{oldestRoot.CommitUlong} innerMessage:{ex.Message}", ex); } }