/** * Returns a new or recycled _Node instance, latched exclusively, with an undefined id and a * clean state. * * @param anyNodeId id of any node, for spreading allocations around */ _Node allocLatchedNode(long anyNodeId) throws IOException { return allocLatchedNode(anyNodeId, 0); }
/** * Returns a new or recycled _Node instance, latched exclusively, with an undefined id and a * clean state. * * @param anyNodeId id of any node, for spreading allocations around */ _Node allocLatchedNode(long anyNodeId) throws IOException { return allocLatchedNode(anyNodeId, 0); }
/** * Returns a new or recycled _Node instance, latched exclusively, with an undefined id and a * clean state. * * @param anyNodeId id of any node, for spreading allocations around */ _Node allocLatchedNode(long anyNodeId) throws IOException { return allocLatchedNode(anyNodeId, 0); }
@Override public _Node allocLatchedNode(_LocalDatabase db, int mode) throws IOException { _Node node = db.allocLatchedNode(ThreadLocalRandom.current().nextLong(), mode); long nodeId = node.mId; if (nodeId < 0) { // Recycle the id. nodeId = -nodeId; mFreePageCount.decrement(); } else { nodeId = allocPage(); } node.mId = nodeId; return node; }
@Override public _Node allocLatchedNode(_LocalDatabase db, int mode) throws IOException { _Node node = db.allocLatchedNode(ThreadLocalRandom.current().nextLong(), mode); long nodeId = node.mId; if (nodeId < 0) { // Recycle the id. nodeId = -nodeId; mFreePageCount.decrement(); } else { nodeId = allocPage(); } node.mId = nodeId; return node; }
@Override public _Node allocLatchedNode(_LocalDatabase db, int mode) throws IOException { _Node node = db.allocLatchedNode(ThreadLocalRandom.current().nextLong(), mode); long nodeId = node.mId; if (nodeId < 0) { // Recycle the id. nodeId = -nodeId; mFreePageCount.decrement(); } else { nodeId = allocPage(); } node.mId = nodeId; return node; }
@Override public _Node allocLatchedNode(_LocalDatabase db, int mode) throws IOException { long nodeId = allocPage(); try { _Node node = db.allocLatchedNode(nodeId, mode); node.mId = nodeId; return node; } catch (Throwable e) { try { recyclePage(nodeId); } catch (Throwable e2) { e.addSuppressed(e2); } throw e; } }
/** * @param nodeId must not be zero * @return non-null _Node with exclusive latch held */ private _Node removeInode(long nodeId) throws IOException { _Node node = nodeMapGetAndRemove(nodeId); if (node == null) { node = allocLatchedNode(nodeId, _NodeUsageList.MODE_UNEVICTABLE); /*P*/ // [ // node.type(TYPE_FRAGMENT); /*P*/ // ] readNode(node, nodeId); } return node; }
/** * @param nodeId must not be zero * @return non-null _Node with exclusive latch held */ private _Node removeInode(long nodeId) throws IOException { _Node node = nodeMapGetAndRemove(nodeId); if (node == null) { node = allocLatchedNode(nodeId, _NodeContext.MODE_UNEVICTABLE); /*P*/ // [ // node.type(TYPE_FRAGMENT); /*P*/ // ] readNode(node, nodeId); } return node; }
/** * @param nodeId must not be zero * @return non-null _Node with exclusive latch held */ private _Node removeInode(long nodeId) throws IOException { _Node node = nodeMapGetAndRemove(nodeId); if (node == null) { node = allocLatchedNode(nodeId, _NodeUsageList.MODE_UNEVICTABLE); /*P*/ // [ // node.type(TYPE_FRAGMENT); /*P*/ // ] readNode(node, nodeId); } return node; }
@Override public _Node allocLatchedNode(_LocalDatabase db, int mode) throws IOException { long nodeId = allocPage(); try { _Node node = db.allocLatchedNode(nodeId, mode); node.mId = nodeId; return node; } catch (Throwable e) { try { recyclePage(nodeId); } catch (Throwable e2) { Utils.suppress(e, e2); } throw e; } }
@Override public _Node allocLatchedNode(_LocalDatabase db, int mode) throws IOException { long nodeId = allocPage(); try { _Node node = db.allocLatchedNode(nodeId, mode); node.mId = nodeId; return node; } catch (Throwable e) { try { recyclePage(nodeId); } catch (Throwable e2) { Utils.suppress(e, e2); } throw e; } }
/** * @return latched, unevictable node */ private static _Node readUndoLogNode(_LocalDatabase db, long nodeId) throws IOException { _Node node = db.allocLatchedNode(nodeId, _NodeUsageList.MODE_UNEVICTABLE); try { node.read(db, nodeId); if (node.type() != _Node.TYPE_UNDO_LOG) { throw new CorruptDatabaseException ("Not an undo log node type: " + node.type() + ", id: " + nodeId); } return node; } catch (Throwable e) { node.makeEvictableNow(); node.releaseExclusive(); throw e; } } }
/** * @return latched, unevictable node */ private static _Node readUndoLogNode(_LocalDatabase db, long nodeId) throws IOException { _Node node = db.allocLatchedNode(nodeId, _NodeContext.MODE_UNEVICTABLE); try { node.read(db, nodeId); if (node.type() != _Node.TYPE_UNDO_LOG) { throw new CorruptDatabaseException ("Not an undo log node type: " + node.type() + ", id: " + nodeId); } return node; } catch (Throwable e) { node.makeEvictableNow(); node.releaseExclusive(); throw e; } } }
/** * @return latched, unevictable node */ private static _Node readUndoLogNode(_LocalDatabase db, long nodeId) throws IOException { _Node node = db.allocLatchedNode(nodeId, _NodeUsageList.MODE_UNEVICTABLE); try { node.read(db, nodeId); if (node.type() != _Node.TYPE_UNDO_LOG) { throw new CorruptDatabaseException ("Not an undo log node type: " + node.type() + ", id: " + nodeId); } return node; } catch (Throwable e) { node.makeEvictableNow(); node.releaseExclusive(); throw e; } } }
if (rootId == 0) { _Node rootNode = allocLatchedNode(treeId, _NodeUsageList.MODE_UNEVICTABLE); rootNode = allocLatchedNode(rootId, _NodeUsageList.MODE_UNEVICTABLE);
if (rootId == 0) { _Node rootNode = allocLatchedNode(treeId, _NodeContext.MODE_UNEVICTABLE); rootNode = allocLatchedNode(rootId, _NodeContext.MODE_UNEVICTABLE);
node = allocLatchedNode(nodeId); node.mId = nodeId;
node = allocLatchedNode(nodeId); node.mId = nodeId;
node = allocLatchedNode(nodeId); node.mId = nodeId;