synchronized public Value remove(Transaction tx, Key key) throws IOException { assertLoaded(); HashBin<Key,Value> bin = getBin(tx, key); int originalSize = bin.size(); Value result = bin.remove(key); int newSize = bin.size(); if (newSize != originalSize) { store(tx, bin); metadata.size--; if (newSize == 0) { metadata.binsActive--; } } if (metadata.binsActive <= this.decreaseThreshold) { newSize = Math.max(minimumBinCapacity, metadata.binCapacity/2); if(metadata.binCapacity!=newSize) { resize(tx, newSize); } } return result; }
synchronized public Value remove(Transaction tx, Key key) throws IOException { assertLoaded(); HashBin<Key,Value> bin = getBin(tx, key); int originalSize = bin.size(); Value result = bin.remove(key); int newSize = bin.size(); if (newSize != originalSize) { store(tx, bin); metadata.size--; if (newSize == 0) { metadata.binsActive--; } } if (metadata.binsActive <= this.decreaseThreshold) { newSize = Math.max(minimumBinCapacity, metadata.binCapacity/2); if(metadata.binCapacity!=newSize) { resize(tx, newSize); } } return result; }
synchronized public Value remove(Transaction tx, Key key) throws IOException { assertLoaded(); HashBin<Key,Value> bin = getBin(tx, key); int originalSize = bin.size(); Value result = bin.remove(key); int newSize = bin.size(); if (newSize != originalSize) { store(tx, bin); metadata.size--; if (newSize == 0) { metadata.binsActive--; } } if (metadata.binsActive <= this.decreaseThreshold) { newSize = Math.max(minimumBinCapacity, metadata.binCapacity/2); if(metadata.binCapacity!=newSize) { resize(tx, newSize); } } return result; }
synchronized public Value remove(Transaction tx, Key key) throws IOException { assertLoaded(); HashBin<Key,Value> bin = getBin(tx, key); int originalSize = bin.size(); Value result = bin.remove(key); int newSize = bin.size(); if (newSize != originalSize) { store(tx, bin); metadata.size--; if (newSize == 0) { metadata.binsActive--; } } if (metadata.binsActive <= this.decreaseThreshold) { newSize = Math.max(minimumBinCapacity, metadata.binCapacity/2); if(metadata.binCapacity!=newSize) { resize(tx, newSize); } } return result; }