Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Plain View
HBase, mail # dev - Calling o/s.flush() in HLog.sync()?


Copy link to this message
-
Calling o/s.flush() in HLog.sync()?
Himanshu Vashishtha 2013-11-05, 05:11
Looking at ProtobufLogWriter class, it looks like the call to flush() in
the sync method is a noop.

https://github.com/apache/hbase/blob/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/ProtobufLogWriter.java#L134

The underlying output stream is DFSOutputStream, which doesn't implement
flush().

And, it calls sync() anyway, which ensures the data is written to DN's
(cache).

Previously with SequenceFile$Writer, it writes data to the outputstream
(using Writables#write), and invoke sync/hflush.
https://github.com/apache/hadoop-common/blob/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/SequenceFile.java#L1314

Is there a reason we have this call here? Please let me know if I miss any
context.

Thanks,
Himanshu
+
Haosong Huang 2013-11-05, 09:08
+
Himanshu Vashishtha 2013-11-06, 01:22
+
Haosong Huang 2013-11-08, 14:57
+
Ted Yu 2013-11-07, 22:56
+
Jonathan Hsieh 2013-11-15, 07:37