Author: xedin Date: Mon Dec 19 23:42:28 2011 New Revision: 1221015 URL: http://svn.apache.org/viewvc?rev=1221015&view=rev Log: Revert "fsync the directory after new sstable or commitlog segment are created"
Modified: cassandra/branches/cassandra-1.0/CHANGES.txt cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/util/SequentialWriter.java cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/CLibrary.java Modified: cassandra/branches/cassandra-1.0/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/CHANGES.txt?rev=1221015&r1=1221014&r2=1221015&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/CHANGES.txt (original) +++ cassandra/branches/cassandra-1.0/CHANGES.txt Mon Dec 19 23:42:28 2011 @@ -2,7 +2,6 @@ * fix assertion when dropping a columnfamily with no sstables (CASSANDRA-3614) * more efficient allocation of small bloom filters (CASSANDRA-3618) * CLibrary.createHardLinkWithExec() to check for errors (CASSANDRA-3101) - * fsync the directory after new sstable or commitlog segment are created (CASSANDRA-3250) * Avoid creating empty and non cleaned writer during compaction (CASSANDRA-3616) Merged from 0.8: * prevent new nodes from thinking down nodes are up forever (CASSANDRA-3626) Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/util/SequentialWriter.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/util/SequentialWriter.java?rev=1221015&r1=1221014&r2=1221015&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/util/SequentialWriter.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/io/util/SequentialWriter.java Mon Dec 19 23:42:28 2011 @@ -39,9 +39,6 @@ public class SequentialWriter extends Ou protected byte[] buffer; private final boolean skipIOCache; private final int fd; - private final int directoryFD; - // directory should be synced only after first file sync, in other words, only once per file - private boolean directorySynced = false; protected long current = 0, bufferOffset; protected int validBufferBytes; @@ -63,7 +60,6 @@ public class SequentialWriter extends Ou buffer = new byte[bufferSize]; this.skipIOCache = skipIOCache; fd = CLibrary.getfd(out.getFD()); - directoryFD = CLibrary.tryOpenDirectory(file.getParent()); stream = new DataOutputStream(this); } @@ -152,12 +148,6 @@ public class SequentialWriter extends Ou flushInternal(); out.getFD().sync(); - if (!directorySynced) - { - CLibrary.trySync(directoryFD); - directorySynced = true; - } - syncNeeded = false; } } @@ -298,7 +288,6 @@ public class SequentialWriter extends Ou CLibrary.trySkipCache(fd, 0, 0); out.close(); - CLibrary.tryCloseFD(directoryFD); } /** Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/CLibrary.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/CLibrary.java?rev=1221015&r1=1221014&r2=1221015&view=diff ============================================================================== --- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/CLibrary.java (original) +++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/CLibrary.java Mon Dec 19 23:42:28 2011 @@ -46,7 +46,6 @@ public final class CLibrary private static final int F_SETFL = 4; /* set file status flags */ private static final int F_NOCACHE = 48; /* Mac OS X specific flag, turns cache on/off */ private static final int O_DIRECT = 040000; /* fcntl.h */ - private static final int O_RDONLY = 00000000; /* fcntl.h */ private static final int POSIX_FADV_NORMAL = 0; /* fadvise.h */ private static final int POSIX_FADV_RANDOM = 1; /* fadvise.h */ @@ -85,11 +84,7 @@ public final class CLibrary // fadvice public static native int posix_fadvise(int fd, long offset, int len, int flag) throws LastErrorException; - - public static native int open(String path, int flags) throws LastErrorException; - public static native int fsync(int fd) throws LastErrorException; - public static native int close(int fd) throws LastErrorException; - + private static int errno(RuntimeException e) { assert e instanceof LastErrorException; @@ -266,73 +261,6 @@ public final class CLibrary return result; } - public static int tryOpenDirectory(String path) - { - int fd = -1; - - try - { - return open(path, O_RDONLY); - } - catch (UnsatisfiedLinkError e) - { - // JNA is unavailable just skipping Direct I/O - } - catch (RuntimeException e) - { - if (!(e instanceof LastErrorException)) - throw e; - - logger.warn(String.format("open(%s, O_RDONLY) failed, errno (%d).", path, CLibrary.errno(e))); - } - - return fd; - } - - public static void trySync(int fd) - { - if (fd == -1) - return; - - try - { - fsync(fd); - } - catch (UnsatisfiedLinkError e) - { - // JNA is unavailable just skipping Direct I/O - } - catch (RuntimeException e) - { - if (!(e instanceof LastErrorException)) - throw e; - - logger.warn(String.format("fsync(%d) failed, errno (%d).", fd, CLibrary.errno(e))); - } - } - - public static void tryCloseFD(int fd) - { - if (fd == -1) - return; - - try - { - close(fd); - } - catch (UnsatisfiedLinkError e) - { - // JNA is unavailable just skipping Direct I/O - } - catch (RuntimeException e) - { - if (!(e instanceof LastErrorException)) - throw e; - - logger.warn(String.format("close(%d) failed, errno (%d).", fd, CLibrary.errno(e))); - } - } - /** * Get system file descriptor from FileDescriptor object. * @param descriptor - FileDescriptor objec to get fd from