Ted Yu created HBASE-10069:
------------------------------

             Summary: Potential duplicate calls to log#appendNoSync() in 
HRegion#doMiniBatchMutation()
                 Key: HBASE-10069
                 URL: https://issues.apache.org/jira/browse/HBASE-10069
             Project: HBase
          Issue Type: Task
            Reporter: Ted Yu
            Priority: Minor


In HRegion#doMiniBatchMutation():
{code}
        if (nonceGroup != currentNonceGroup || nonce != currentNonce) {
          if (walEdit.size() > 0) {
            assert isInReplay;
            txid = this.log.appendNoSync(this.getRegionInfo(), 
htableDescriptor.getTableName(),
                  walEdit, m.getClusterIds(), now, htableDescriptor, 
this.sequenceId, true,
                  currentNonceGroup, currentNonce);
            hasWalAppends = true;
          }
          currentNonceGroup = nonceGroup;
          currentNonce = nonce;
        }

        // Add WAL edits by CP
        WALEdit fromCP = batchOp.walEditsFromCoprocessors[i];
        if (fromCP != null) {
          for (KeyValue kv : fromCP.getKeyValues()) {
            walEdit.add(kv);
          }
        }
...
      Mutation mutation = batchOp.getMutation(firstIndex);
      if (walEdit.size() > 0) {
        txid = this.log.appendNoSync(this.getRegionInfo(), 
this.htableDescriptor.getTableName(),
              walEdit, mutation.getClusterIds(), now, this.htableDescriptor, 
this.sequenceId,
              true, currentNonceGroup, currentNonce);
        hasWalAppends = true;
      }
{code}
If fromCP is null, there may not be new edits added to walEdit.
But log#appendNoSync() would be called one more time at line 2368.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to