/** * Make sure that the journal has at least the specified number of bytes of * unused capacity remaining in the user extent. * <p> * Note: You need an exclusive write lock on the journal to extend it. * * @param minFree * The minimum #of bytes free for the user extent. * * @return The #of bytes of free space remaining in the user extent. */ public long ensureMinFree(final long minFree) { assertOpen(); if (minFree < 0L) throw new IllegalArgumentException(); final IBufferStrategy buf = _bufferStrategy; final long remaining = buf.getUserExtent() - buf.getNextOffset(); if (remaining < minFree) { buf.truncate(buf.getExtent() + minFree); } return buf.getUserExtent() - buf.getNextOffset(); }
/** * Make sure that the journal has at least the specified number of bytes of * unused capacity remaining in the user extent. * <p> * Note: You need an exclusive write lock on the journal to extend it. * * @param minFree * The minimum #of bytes free for the user extent. * * @return The #of bytes of free space remaining in the user extent. */ public long ensureMinFree(final long minFree) { assertOpen(); if (minFree < 0L) throw new IllegalArgumentException(); final IBufferStrategy buf = _bufferStrategy; final long remaining = buf.getUserExtent() - buf.getNextOffset(); if (remaining < minFree) { buf.truncate(buf.getExtent() + minFree); } return buf.getUserExtent() - buf.getNextOffset(); }
final int nwrites = (int) journal.getBufferStrategy().getUserExtent() / writeSize;
final int nwrites = (int) journal.getBufferStrategy().getUserExtent() / writeSize;
/** * Test verifies that a write up to the remaining extent does not trigger * an overflow. */ public void test_writeNoExtend() { final Journal store = (Journal) getStore(); try { final IBufferStrategy bufferStrategy = store.getBufferStrategy(); if (bufferStrategy.getBufferMode() == BufferMode.DiskRW) { return; } final long userExtent = bufferStrategy.getUserExtent(); final long extent = bufferStrategy.getExtent(); final long initialExtent = bufferStrategy.getInitialExtent(); final long nextOffset = bufferStrategy.getNextOffset(); assertEquals("extent", initialExtent, extent); final long remaining = userExtent - nextOffset; writeRandomData(store, remaining, bufferStrategy.useChecksums()); // no change in extent. assertEquals("extent", extent, bufferStrategy.getExtent()); // no change in user extent. assertEquals("userExtent", userExtent, bufferStrategy .getUserExtent()); } finally { store.destroy(); } }
/** * Test verifies that a write up to the remaining extent does not trigger * an overflow. */ public void test_writeNoExtend() { final Journal store = (Journal) getStore(); try { final IBufferStrategy bufferStrategy = store.getBufferStrategy(); if (bufferStrategy.getBufferMode() == BufferMode.DiskRW) { return; } final long userExtent = bufferStrategy.getUserExtent(); final long extent = bufferStrategy.getExtent(); final long initialExtent = bufferStrategy.getInitialExtent(); final long nextOffset = bufferStrategy.getNextOffset(); assertEquals("extent", initialExtent, extent); final long remaining = userExtent - nextOffset; writeRandomData(store, remaining, bufferStrategy.useChecksums()); // no change in extent. assertEquals("extent", extent, bufferStrategy.getExtent()); // no change in user extent. assertEquals("userExtent", userExtent, bufferStrategy .getUserExtent()); } finally { store.destroy(); } }
final long userExtent = bufferStrategy.getUserExtent(); .getUserExtent()); .getUserExtent());
final long userExtent = bufferStrategy.getUserExtent(); .getUserExtent()); .getUserExtent());