owner.sync(); logFile.delete();
/** Synchronizes the indicated blocks with the owner. */ private void synchronizeBlocks(Iterator<BlockIo> blockIterator, boolean fromCore) throws IOException { // write block vector elements to the data file. while ( blockIterator.hasNext() ) { BlockIo cur = blockIterator.next(); owner.sync(cur); if (fromCore) { cur.decrementTransactionCount(); if (!cur.isInTransaction()) { owner.releaseFromTransaction(cur, true); } } } }
owner.sync(); ois.close(); logFile.delete();
/** Synchs in-core transactions to data file and opens a fresh log */ private void synchronizeLogFromMemory() throws IOException { close(); TreeSet blockList = new TreeSet( new BlockIoComparator() ); int numBlocks = 0; int writtenBlocks = 0; for (int i = 0; i < _maxTxns; i++) { if (txns[i] == null) continue; // Add each block to the blockList, replacing the old copy of this // block if necessary, thus avoiding writing the same block twice for (Iterator k = txns[i].iterator(); k.hasNext(); ) { BlockIo block = (BlockIo)k.next(); if ( blockList.contains( block ) ) { block.decrementTransactionCount(); } else { writtenBlocks++; boolean result = blockList.add( block ); } numBlocks++; } txns[i] = null; } // Write the blocks from the blockList to disk synchronizeBlocks(blockList.iterator(), true); owner.sync(); open(); }
owner.sync(); ois.close(); logFile.delete();
owner.sync(); ois.close(); logFile.delete();
owner.sync(); open();
/** Synchs in-core transactions to data file and opens a fresh log */ private void synchronizeLogFromMemory() throws IOException { close(); TreeSet<BlockIo> blockList = new TreeSet<BlockIo>( new BlockIoComparator() ); int numBlocks = 0; int writtenBlocks = 0; for (int i = 0; i < _maxTxns; i++) { if (txns[i] == null) continue; // Add each block to the blockList, replacing the old copy of this // block if necessary, thus avoiding writing the same block twice for (Iterator<BlockIo> k = txns[i].iterator(); k.hasNext(); ) { BlockIo block = k.next(); if ( blockList.contains( block ) ) { block.decrementTransactionCount(); } else { writtenBlocks++; boolean result = blockList.add( block ); } numBlocks++; } txns[i] = null; } // Write the blocks from the blockList to disk synchronizeBlocks(blockList, true); owner.sync(); open(); }
/** Synchs in-core transactions to data file and opens a fresh log */ private void synchronizeLogFromMemory() throws IOException { close(); TreeSet blockList = new TreeSet( new BlockIoComparator() ); for ( int i = 0; i < _maxTxns; i++ ) { if ( txns[i] == null ) continue; // Add each block to the blockList, replacing the old copy of this // block if necessary, thus avoiding writing the same block twice for ( Iterator k = txns[i].iterator(); k.hasNext(); ) { BlockIo block = ( BlockIo ) k.next(); if ( blockList.contains( block ) ) { block.decrementTransactionCount(); } else { blockList.add( block ); } } txns[i] = null; } // Write the blocks from the blockList to disk synchronizeBlocks( blockList.iterator(), true ); owner.sync(); open(); }
sync( blockIo ); blockIo.setClean(); free.add( blockIo );