public boolean requiresCommit(IRootBlockView block) { return getNextOffset() > block.getNextOffset(); }
public boolean isReadOnly() { assertOpen(); return readOnly; }
final public void destroy() { if (open) close(); deleteResources(); }
/** * The maximum size of a record for the address manager less 4 bytes iff * checksums are enabled. */ public int getMaxRecordSize() { return getAddressManager().getMaxByteCount() - (useChecksums() ? 4 : 0); }
/** * Unit test for {@link AbstractBufferStrategy#overflow(long)}. The test * verifies that the extent and the user extent are correctly updated after * an overflow. */ public void test_overflow() { final TemporaryRawStore store = (TemporaryRawStore) getStore(); try { final AbstractBufferStrategy bufferStrategy = (AbstractBufferStrategy) store .getBufferStrategy(); 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 needed = Bytes.kilobyte32; bufferStrategy.force(true); assertTrue("overflow()", bufferStrategy.overflow(needed)); assertTrue("extent", extent + needed <= bufferStrategy.getExtent()); assertTrue("userExtent", userExtent + needed <= bufferStrategy .getUserExtent()); assertEquals(nextOffset, bufferStrategy.getNextOffset()); } finally { store.close(); } }
.getBufferStrategy(); final long userExtent = bufferStrategy.getUserExtent(); final long extent = bufferStrategy.getExtent(); final long initialExtent = bufferStrategy.getInitialExtent(); final long nextOffset = bufferStrategy.getNextOffset(); if(bufferStrategy.getBufferMode()==BufferMode.Mapped) { bufferStrategy.overflow(needed); assertTrue("overflow()",bufferStrategy.overflow(needed)); .getExtent()); .getUserExtent()); assertEquals(nextOffset,bufferStrategy.getNextOffset());
.getBufferStrategy(); final long userExtent = bufferStrategy.getUserExtent(); final long extent = bufferStrategy.getExtent(); final long initialExtent = bufferStrategy.getInitialExtent(); final long nextOffset = bufferStrategy.getNextOffset(); assertEquals("extent", extent, bufferStrategy.getExtent()); .getUserExtent()); final ByteBuffer b = bufferStrategy.read(addr); final long addr2 = bufferStrategy.write(tmp2); .getExtent()); .getUserExtent()); assertEquals(b, bufferStrategy.read(addr)); assertEquals(b2, bufferStrategy.read(addr2));
/** * Test verifies that a write up to the remaining extent does not trigger an * overflow. */ public void test_writeNoExtend() { final TemporaryRawStore store = (TemporaryRawStore) getStore(); try { final AbstractBufferStrategy bufferStrategy = (AbstractBufferStrategy) store .getBufferStrategy(); 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); // no change in extent. assertEquals("extent", extent, bufferStrategy.getExtent()); // no change in user extent. assertEquals("userExtent", userExtent, bufferStrategy .getUserExtent()); } finally { store.close(); } }
final long userExtent = getUserExtent(); getMinimumExtension())); truncate(newExtent); ResourceManager.extendJournal(getFile() == null ? null : getFile() .toString(), newExtent);
/** * Releases the buffer. */ public void close() { super.close(); // release the buffer. buffer = null; }
/** * Extended to discard the write cache. * <p> * Note: The file is NOT closed and re-opened in a read-only mode in order * to avoid causing difficulties for concurrent readers. */ public void closeForWrites() { // sets the [readOnly] flag. super.closeForWrites(); // discard the write cache. releaseWriteCache(); }
/** * Need to override commit to ensure the writeCache is flushed prior to * writing the root block. * * For the DiskOnlyStrategy flushing the writeCache also ensures the backing * file is created if the file is temporary. * * Note that the internal call to flush the writeCache must be synchronized * or concurrent writers to the cache will cause problems. */ @Override public void commit() { if (writeCache != null) { synchronized (this) { flushWriteCache(); } } super.commit(); }
public void abort() { super.abort();
/** * Unit test for {@link AbstractBufferStrategy#overflow(long)}. The test * verifies that the extent and the user extent are correctly updated after * an overflow. */ public void test_overflow() { final TemporaryRawStore store = (TemporaryRawStore) getStore(); try { final AbstractBufferStrategy bufferStrategy = (AbstractBufferStrategy) store .getBufferStrategy(); 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 needed = Bytes.kilobyte32; bufferStrategy.force(true); assertTrue("overflow()", bufferStrategy.overflow(needed)); assertTrue("extent", extent + needed <= bufferStrategy.getExtent()); assertTrue("userExtent", userExtent + needed <= bufferStrategy .getUserExtent()); assertEquals(nextOffset, bufferStrategy.getNextOffset()); } finally { store.close(); } }
.getBufferStrategy(); final long userExtent = bufferStrategy.getUserExtent(); final long extent = bufferStrategy.getExtent(); final long initialExtent = bufferStrategy.getInitialExtent(); final long nextOffset = bufferStrategy.getNextOffset(); if(bufferStrategy.getBufferMode()==BufferMode.Mapped) { bufferStrategy.overflow(needed); assertTrue("overflow()",bufferStrategy.overflow(needed)); .getExtent()); .getUserExtent()); assertEquals(nextOffset,bufferStrategy.getNextOffset());
.getBufferStrategy(); final long userExtent = bufferStrategy.getUserExtent(); final long extent = bufferStrategy.getExtent(); final long initialExtent = bufferStrategy.getInitialExtent(); final long nextOffset = bufferStrategy.getNextOffset(); assertEquals("extent", extent, bufferStrategy.getExtent()); .getUserExtent()); final ByteBuffer b = bufferStrategy.read(addr); final long addr2 = bufferStrategy.write(tmp2); .getExtent()); .getUserExtent()); assertEquals(b, bufferStrategy.read(addr)); assertEquals(b2, bufferStrategy.read(addr2));
/** * Test verifies that a write up to the remaining extent does not trigger an * overflow. */ public void test_writeNoExtend() { final TemporaryRawStore store = (TemporaryRawStore) getStore(); try { final AbstractBufferStrategy bufferStrategy = (AbstractBufferStrategy) store .getBufferStrategy(); 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); // no change in extent. assertEquals("extent", extent, bufferStrategy.getExtent()); // no change in user extent. assertEquals("userExtent", userExtent, bufferStrategy .getUserExtent()); } finally { store.close(); } }
final long userExtent = getUserExtent(); getMinimumExtension())); truncate(newExtent); ResourceManager.extendJournal(getFile() == null ? null : getFile() .toString(), newExtent);
/** * The maximum size of a record for the address manager less 4 bytes iff * checksums are enabled. */ public int getMaxRecordSize() { return getAddressManager().getMaxByteCount() - (useChecksums() ? 4 : 0); }
/** * Releases the buffer. */ public void close() { super.close(); // release the buffer. buffer = null; }