From 39d97f389207d4a294750ae4ff975682fc5b47e2 Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Mon, 24 Aug 2009 21:13:32 +0000 Subject: [PATCH] Revert "CASSANDRA-370 avoid opening multiple writers for the current file; the buffered nature of the global logWriter_ could cause problems" git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@807381 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/cassandra/db/CommitLog.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/java/org/apache/cassandra/db/CommitLog.java b/src/java/org/apache/cassandra/db/CommitLog.java index 9ad515cb11..27691657dd 100644 --- a/src/java/org/apache/cassandra/db/CommitLog.java +++ b/src/java/org/apache/cassandra/db/CommitLog.java @@ -246,6 +246,16 @@ public class CommitLog return CommitLogHeader.serializer().deserialize(new DataInputStream(byteStream)); } + /* + * Write the serialized commit log header into the specified commit log. + */ + private static void writeCommitLogHeader(String commitLogFileName, byte[] bytes) throws IOException + { + RandomAccessFile logWriter = CommitLog.createWriter(commitLogFileName); + writeCommitLogHeader(logWriter, bytes); + logWriter.close(); + } + /* * This is invoked on startup via the ctor. It basically * writes a header with all bits set to zero. @@ -499,7 +509,7 @@ public class CommitLog * perform & operation and then turn on with the new position. */ commitLogHeader.turnOn(id, cLogCtx.position); - writeCommitLogHeader(logWriter_, commitLogHeader.toByteArray()); + writeCommitLogHeader(cLogCtx.file, commitLogHeader.toByteArray()); break; } else @@ -515,9 +525,7 @@ public class CommitLog } else { - RandomAccessFile logWriter = CommitLog.createWriter(oldFile); - writeCommitLogHeader(logWriter, oldCommitLogHeader.toByteArray()); - logWriter.close(); + writeCommitLogHeader(oldFile, oldCommitLogHeader.toByteArray()); } } }