[ https://issues.apache.org/jira/browse/HBASE-5954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13419738#comment-13419738 ]
Lars Hofhansl edited comment on HBASE-5954 at 7/21/12 4:01 AM: --------------------------------------------------------------- I think the API going multiple ways (these are not mutually exclusive): # hsync for HFiles (would guard compactions, etc, very lightweight), enabled with a config option (default on I think) # hsync all WAL edits (very expensive, but would not require client changes), enabled with a config option (default off) # hsync for tables or column families for HFiles (configured in the table/column descriptor) # hsync for tables or column families for the WAL (configured in the table/column descriptor) # WAL hsync per Put. Gives control to the application. A batch put would hsync the WAL if at least one Put in the batch was market with hsync. What about deletes? In 0.94 they are not batched; could it at the end of operation there. # WAL hsync per RPC. Could send flag with the RPC from the client. I.e. HTable would have a Put(List<Put> puts, boolean hsync) method # HTable.hsync. Client calls this when WAL must be sync'ed. Most flexible, but incurs an extra RPC to the RegionServer just to force the hsync. Comments welcome. Edit: Forgot some options. was (Author: lhofhansl): I think the API going multiple ways (these are not mutually exclusive): # hsync for HFiles (would guard compactions, etc, very lightweight), enabled with a config option (default on I think) # hsync all WAL edits (very expensive, but would not require client changes), enabled with a config option (default off) # sync per Put. Gives control to the application. A batch put would hsync the WAL if at least one Put in the batch was market with hsync. What about deletes? In 0.94 they are not batched; could it at the end of operation there. # Per RPC. Could send flag with the RPC from the client. I.e. HTable would have a Put(List<Put> puts, boolean hsync) method # HTable.hsync. Client calls this when data must be sync'ed. Most flexible, but incurs an extra RPC to the RegionServer just to force the hsync. Comments welcome. > Allow proper fsync support for HBase > ------------------------------------ > > Key: HBASE-5954 > URL: https://issues.apache.org/jira/browse/HBASE-5954 > Project: HBase > Issue Type: Improvement > Reporter: Lars Hofhansl > Assignee: Lars Hofhansl > Fix For: 0.96.0, 0.94.2 > > Attachments: 5954-trunk-hdfs-trunk-v2.txt, > 5954-trunk-hdfs-trunk-v3.txt, 5954-trunk-hdfs-trunk-v4.txt, > 5954-trunk-hdfs-trunk-v5.txt, 5954-trunk-hdfs-trunk-v6.txt, > 5954-trunk-hdfs-trunk.txt, hbase-hdfs-744.txt > > -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira