package com.sleepycat.je.txn; public class Txn { private final int READ_LOCK_OVERHEAD=MemoryBudget.HASHSET_ENTRY_OVERHEAD; private final int WRITE_LOCK_OVERHEAD=MemoryBudget.HASHMAP_ENTRY_OVERHEAD + MemoryBudget.LONG_OVERHEAD; private int accumulatedDelta=0; private void updateMemoryUsage( int delta){ inMemorySize+=delta; accumulatedDelta+=delta; if (accumulatedDelta > ACCUMULATED_LIMIT || accumulatedDelta < -ACCUMULATED_LIMIT) { envImpl.getMemoryBudget().updateMiscMemoryUsage(accumulatedDelta); accumulatedDelta=0; } } int getAccumulatedDelta(){ return accumulatedDelta; } protected void hook809() throws DatabaseException { updateMemoryUsage(MemoryBudget.TXN_OVERHEAD); original(); } protected void hook810( int delta){ delta+=READ_LOCK_OVERHEAD; updateMemoryUsage(delta); original(delta); } protected int hook811( int delta){ delta=MemoryBudget.HASHSET_OVERHEAD; return original(delta); } protected void hook812() throws DatabaseException { updateMemoryUsage(0 - READ_LOCK_OVERHEAD); original(); } protected void hook813() throws DatabaseException { updateMemoryUsage(0 - WRITE_LOCK_OVERHEAD); original(); } protected void hook814(){ updateMemoryUsage(0 - WRITE_LOCK_OVERHEAD); original(); } @MethodObject static class Txn_addLock { protected void hook815() throws DatabaseException { delta=0; original(); } protected void hook816() throws DatabaseException { _this.updateMemoryUsage(delta); original(); } protected void hook817() throws DatabaseException { delta+=_this.WRITE_LOCK_OVERHEAD; original(); } protected void hook818() throws DatabaseException { delta+=MemoryBudget.TWOHASHMAPS_OVERHEAD; original(); } protected void hook819() throws DatabaseException { delta-=_this.READ_LOCK_OVERHEAD; original(); } } }