You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "stack (Updated) (JIRA)" <ji...@apache.org> on 2011/11/23 02:06:39 UTC

[jira] [Updated] (HBASE-4853) HBASE-4789 does overzealous pruning of seqids

     [ https://issues.apache.org/jira/browse/HBASE-4853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

stack updated HBASE-4853:
-------------------------

    Attachment: 4853.txt

Here is patch that changes the blanket purge of our region from lastseqwritten map on flush completion to only remove it when no edits have come in in meantime (as it used to be in 0.90.x).
                
> HBASE-4789 does overzealous pruning of seqids
> ---------------------------------------------
>
>                 Key: HBASE-4853
>                 URL: https://issues.apache.org/jira/browse/HBASE-4853
>             Project: HBase
>          Issue Type: Bug
>            Reporter: stack
>            Priority: Critical
>         Attachments: 4853.txt
>
>
> Working w/ J-D on failing replication test turned up hole in seqids made by the patch over in hbase-4789.  With this patch in place we see lots of instances of the suspicious: 'Last sequenceid written is empty. Deleting all old hlogs'
> At a minimum, these lines need removing:
> {code}
> diff --git a/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java b/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java
> index 623edbe..a0bbe01 100644
> --- a/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java
> +++ b/src/main/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java
> @@ -1359,11 +1359,6 @@ public class HLog implements Syncable {
>        // Cleaning up of lastSeqWritten is in the finally clause because we
>        // don't want to confuse getOldestOutstandingSeqNum()
>        this.lastSeqWritten.remove(getSnapshotName(encodedRegionName));
> -      Long l = this.lastSeqWritten.remove(encodedRegionName);
> -      if (l != null) {
> -        LOG.warn("Why is there a raw encodedRegionName in lastSeqWritten? name=" +
> -          Bytes.toString(encodedRegionName) + ", seqid=" + l);
> -       }
>        this.cacheFlushLock.unlock();
>      }
>    }
> {code}
> ... but above is no good w/o figuring why WALs are not being rotated off.

--
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