You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Ted Yu (JIRA)" <ji...@apache.org> on 2013/12/03 00:10:35 UTC

[jira] [Created] (HBASE-10069) Potential duplicate calls to log#appendNoSync() in HRegion#doMiniBatchMutation()

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)