[ 
https://issues.apache.org/jira/browse/HBASE-7801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13627477#comment-13627477
 ] 

Anoop Sam John commented on HBASE-7801:
---------------------------------------

1.{code}
-      byte [] row = delete.getRow();
+      delete.getRow();
{code}

We can avoid this line fully right? Good that u make some cleanup also. :)

2.{code}
 // do what CF defaults to
 +  if (!isDeferredLogSyncEnabled()) {
{code}
We can say do what table defaults to?
Even here also
{code}
+public enum Durability {
+  /**
+   * Use the column family's default setting to determine durability.
+   * This must remain the first option.
+   */
+  USE_DEFAULT,
{code}

3.As per code in syncOrDefer() when all the Mutations in the Mini batch says 
for SKIP_WAL, we should not call the sync.
{code}
+      case SKIP_WAL:
+        // nothing do to
+        break;
{code}
But see the code in doMiniBatchMutation()
{code}
+      Durability durability = Durability.USE_DEFAULT;
...
+        Durability tmpDur = m.getDurability(); 
+        if (tmpDur == Durability.SKIP_WAL) {
           if (m instanceof Put) {
             recordPutWithoutWal(m.getFamilyMap());
           }
           continue;
+        } else if (tmpDur.ordinal() > durability.ordinal()) {
+          durability = tmpDur;
         }
{code}
This is correct for not considering one Mutation's SKIP_WAL to affect with the 
USE_DEFAULT of others. But when all the Mutation say SKIP_WAL, still finally 
the durability = Durability.USE_DEFAULT and will cause a log sync?


Excellent work Lars.

                
> Allow a deferred sync option per Mutation.
> ------------------------------------------
>
>                 Key: HBASE-7801
>                 URL: https://issues.apache.org/jira/browse/HBASE-7801
>             Project: HBase
>          Issue Type: Sub-task
>    Affects Versions: 0.94.6, 0.95.0
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.98.0, 0.94.7, 0.95.1
>
>         Attachments: 7801-0.94-v1.txt, 7801-0.94-v2.txt, 7801-0.94-v3.txt, 
> 7801-0.96-full-v2.txt, 7801-0.96-full-v3.txt, 7801-0.96-full-v4.txt, 
> 7801-0.96-full-v5.txt, 7801-0.96-v1.txt, 7801-0.96-v6.txt, 7801-0.96-v7.txt, 
> 7801-0.96-v8.txt, 7801-0.96-v9.txt
>
>
> Won't have time for parent. But a deferred sync option on a per operation 
> basis comes up quite frequently.
> In 0.96 this can be handled cleanly via protobufs and 0.94 we can have a 
> special mutation attribute.
> For batch operation we'd take the safest sync option of any of the mutations. 
> I.e. if there is at least one that wants to be flushed we'd sync the batch, 
> if there's none of those but at least one that wants deferred flush we defer 
> flush the batch, etc.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to