From: <mar...@us...> - 2010-09-23 16:09:19
|
Revision: 3616 http://bigdata.svn.sourceforge.net/bigdata/?rev=3616&view=rev Author: martyncutcher Date: 2010-09-23 16:09:13 +0000 (Thu, 23 Sep 2010) Log Message: ----------- Fix nwrites stats when using BuffereWrite Modified Paths: -------------- branches/JOURNAL_HA_BRANCH/bigdata/src/java/com/bigdata/io/writecache/BufferedWrite.java branches/JOURNAL_HA_BRANCH/bigdata/src/java/com/bigdata/io/writecache/WriteCache.java Modified: branches/JOURNAL_HA_BRANCH/bigdata/src/java/com/bigdata/io/writecache/BufferedWrite.java =================================================================== --- branches/JOURNAL_HA_BRANCH/bigdata/src/java/com/bigdata/io/writecache/BufferedWrite.java 2010-09-23 14:00:36 UTC (rev 3615) +++ branches/JOURNAL_HA_BRANCH/bigdata/src/java/com/bigdata/io/writecache/BufferedWrite.java 2010-09-23 16:09:13 UTC (rev 3616) @@ -55,34 +55,38 @@ m_data = DirectBufferPool.INSTANCE.acquire(); } - public void write(final long offset, final ByteBuffer data, final IReopenChannel<FileChannel> opener) throws IOException { + public int write(final long offset, final ByteBuffer data, final IReopenChannel<FileChannel> opener) throws IOException { + int nwrites = 0; + m_dataWrites++; int data_len = data.remaining(); int slot_len = m_store.getSlotSize(data_len); if (slot_len > m_data.remaining()) { - flush(opener); + nwrites += flush(opener); } if (m_startAddr == -1) { m_startAddr = m_endAddr = offset; } else if (m_endAddr != offset) { // if this is NOT a contiguous write then flush existing content - flush(opener); + nwrites += flush(opener); m_startAddr = m_endAddr = offset; } m_data.put(data); m_endAddr += slot_len; long pos = m_endAddr - m_startAddr; m_data.position((int) pos); + + return nwrites; } - public void flush(final IReopenChannel<FileChannel> opener) throws IOException { + public int flush(final IReopenChannel<FileChannel> opener) throws IOException { m_dataBytes += m_data.position(); m_data.flip(); - FileChannelUtility.writeAll(opener, m_data, m_startAddr); + final int nwrites = FileChannelUtility.writeAll(opener, m_data, m_startAddr); m_fileWrites++; m_data.position(0); @@ -90,6 +94,8 @@ m_startAddr = -1; m_endAddr = 0; + + return nwrites; } public String getStats(StringBuffer buf, boolean reset) { Modified: branches/JOURNAL_HA_BRANCH/bigdata/src/java/com/bigdata/io/writecache/WriteCache.java =================================================================== --- branches/JOURNAL_HA_BRANCH/bigdata/src/java/com/bigdata/io/writecache/WriteCache.java 2010-09-23 14:00:36 UTC (rev 3615) +++ branches/JOURNAL_HA_BRANCH/bigdata/src/java/com/bigdata/io/writecache/WriteCache.java 2010-09-23 16:09:13 UTC (rev 3616) @@ -1659,7 +1659,7 @@ if (m_bufferedWrite == null) { nwrites += FileChannelUtility.writeAll(opener, view, offset); } else { - m_bufferedWrite.write(offset, view, opener); + nwrites += m_bufferedWrite.write(offset, view, opener); } // if (log.isInfoEnabled()) // log.info("writing to: " + offset); @@ -1667,7 +1667,7 @@ } if (m_bufferedWrite != null) { - m_bufferedWrite.flush(opener); + nwrites += m_bufferedWrite.flush(opener); if (log.isTraceEnabled()) log.trace(m_bufferedWrite.getStats(null, true)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |