private boolean isMaxCapacity(int capacity) { return LHashCapacities.isMaxCapacity(capacity, doubleSizedArrays()); }
private boolean isMaxCapacity(int capacity) { return LHashCapacities.isMaxCapacity(capacity, doubleSizedArrays()); }
private boolean isMaxCapacity(int capacity) { return LHashCapacities.isMaxCapacity(capacity, doubleSizedArrays()); }
final void postInsertHook() { if (++size > maxSize) { /* if LHash hash */ int capacity = capacity(); if (!isMaxCapacity(capacity)) { rehash(capacity << 1); } /* elif !(LHash hash) */ tryRehashForExpansion(grownCapacity()); /* endif */ } }
final void postInsertHook() { if (++size > maxSize) { /* if LHash hash */ int capacity = capacity(); if (!isMaxCapacity(capacity)) { rehash(capacity << 1); } /* elif !(LHash hash) */ tryRehashForExpansion(grownCapacity()); /* endif */ } }
private void internalInit(final int capacity) { // capacity is power of two. assert (capacity & (capacity - 1)) == 0; initTimer.start(); this.capacity = capacity; this.maxSize = !LHashCapacities.isMaxCapacity(capacity, false) ? config.maxSize(capacity) : capacity - 1; this.batches = (int) Math.ceil( capacity / (MAX_VALUES_PER_BATCH * 1.0d) ); final ControlBlock[] newControlBlocks = new ControlBlock[batches]; tableControlAddresses = new long[batches]; capacityMask = capacity - 1; try(RollbackCloseable rollbackable = new RollbackCloseable()) { for(int i =0; i < batches; i++){ newControlBlocks[i] = new ControlBlock(allocator, MAX_VALUES_PER_BATCH); rollbackable.add(newControlBlocks[i]); tableControlAddresses[i] = newControlBlocks[i].getMemoryAddress(); final long addr = newControlBlocks[i].getMemoryAddress(); final long max = addr + MAX_VALUES_PER_BATCH * CONTROL_WIDTH; for(long l = addr; l < max; l+= LBlockHashTable.CONTROL_WIDTH){ PlatformDependent.putLong(l, LBlockHashTable.LFREE); } } this.controlBlocks = newControlBlocks; rollbackable.commit(); } catch (Exception e) { throw Throwables.propagate(e); } initTimer.stop(); }
final int newMaxSize = !LHashCapacities.isMaxCapacity(capacity, false) ? config.maxSize(capacity) : capacity - 1; final int newBatches = (int) Math.ceil( capacity / (MAX_VALUES_PER_BATCH * 1.0d) );
initTimer.start(); this.capacity = capacity; this.maxSize = !LHashCapacities.isMaxCapacity(capacity, false) ? config.maxSize(capacity) : capacity - 1; this.batches = (int) Math.ceil( capacity / (MAX_VALUES_PER_BATCH * 1.0d) ); final FixedBlockVector[] newFixedBlocks = new FixedBlockVector[batches];
private void resetToMinimumSizeHelper() throws Exception { controlBlocks[0].reset(); fixedBlocks[0].reset(); variableBlocks[0].reset(); currentOrdinal = 0; gaps = 0; capacity = MAX_VALUES_PER_BATCH; maxSize = !LHashCapacities.isMaxCapacity(capacity, false) ? config.maxSize(capacity) : capacity - 1; batches = 1; openVariableAddresses[0] = initVariableAddresses[0]; initControlBlock(tableControlAddresses[0]); listener.resetToMinimumSize(); }