@Override public void setParentPointer(long block) { leaveProperties.setParentBlock(block); leaveProperties.setModified(true); }
protected void removeKeyInternal(Key key) throws JasDBStorageException { leaves.remove(key); leaveProperties.setModified(true); }
@Override public void removeKey(Key key) throws JasDBStorageException { leaves.remove(key); leaveProperties.setModified(true); memorySize -= key.size(); handleBlockUnderflow(); }
public LeaveBlockImpl(BlockPersister persister, DataBlock dataBlock, long parentBlock, boolean modified) { this.leaves = new OrderedBalancedTree<>(); this.leaveProperties = new LeaveBlockProperties(dataBlock, -1, -1, parentBlock); this.leaveProperties.setModified(modified); this.lockManager = new ReadWriteLock(); this.persister = persister; }
@Override public void updateKey(Key key) throws JasDBStorageException { Key foundKey = leaves.get(key); foundKey.setKeys(key.getKeys()); leaveProperties.setModified(true); }
public void insertKey(Key key) throws JasDBStorageException { leaves.put(key, key); memorySize += key.size(); leaveProperties.setModified(true); handleBlockOverflow(); }
@Override public LeaveBlock loadBlock(DataBlock dataBlock) throws JasDBStorageException { LOG.debug("Loading block: {}", dataBlock); LeaveBlockImpl leaveBlock = createBlock(-1, dataBlock); LeaveBlockProperties properties = leaveBlock.getProperties(); properties.setModified(false); int amountOfKeys = dataBlock.getHeader().getInt(AMOUNT_KEY_INDEX); long nextBlock = dataBlock.getHeader().getLong(NEXT_LEAVE_INDEX); long previousBlock = dataBlock.getHeader().getLong(PREVIOUS_LEAVE_INDEX); long parent = dataBlock.getHeader().getLong(PARENT_BLOCK_INDEX); int offset = 0; DataBlock currentBlock = dataBlock; for(int i=0; i<amountOfKeys; i++) { KeyLoadResult loadedKeyResult = keyInfo.loadKey(offset, currentBlock); leaveBlock.addKey(loadedKeyResult.getLoadedKey()); currentBlock = loadedKeyResult.getEndBlock(); offset = loadedKeyResult.getNextOffset(); } properties.setNextBlock(nextBlock); properties.setPreviousBlock(previousBlock); properties.setModified(false); properties.setParentBlock(parent); return leaveBlock; }