hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matteo Bertozzi (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15632) Undo the checking of lastStoreFlushTimeMap.isEmpty() introduced in HBASE-13145
Date Mon, 11 Apr 2016 18:27:25 GMT

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

Matteo Bertozzi commented on HBASE-15632:

In HBASE-13145 the check was added because the test was creating the table without families,
which was later fixed by HBASE-15456.

lastStoreFlushTimeMap should contains at least 1 value (N families) after HRegion.initialize()
the PeriodicMemstoreFlusher should only run on the region, if the region is marked online.

region online should happen after HRegion.initialize() is called.

so, I'm +1 on removing it. we should remove that check and avoid to hide the problem if there
is any case where we add the region to the online servers before calling initialize()

> Undo the checking of lastStoreFlushTimeMap.isEmpty() introduced in HBASE-13145
> ------------------------------------------------------------------------------
>                 Key: HBASE-15632
>                 URL: https://issues.apache.org/jira/browse/HBASE-15632
>             Project: HBase
>          Issue Type: Improvement
>          Components: regionserver
>    Affects Versions: 2.0.0
>            Reporter: huaxiang sun
>            Assignee: huaxiang sun
>            Priority: Minor
> HBASE-13145 introduce the following check
> {code}
> diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
> index 215069c..8f73af5 100644
> --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
> +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
> @@ -1574,7 +1574,8 @@ public class HRegion implements HeapSize, PropagatingConfigurationObserver
{ //
>     */
>    @VisibleForTesting
>    public long getEarliestFlushTimeForAllStores() {
> -    return Collections.min(lastStoreFlushTimeMap.values());
> +    return lastStoreFlushTimeMap.isEmpty() ? Long.MAX_VALUE : Collections.min(lastStoreFlushTimeMap
> +        .values());
>    }
>  {code}
> I think the reason for the check is that table creation without family is allowed before
HBASE-15456. With HBASE-15456, table creation without family is not allowed. We have one user
claimed that they run into the same HRegionServer$PeriodicMemstoreFlusher exception, and the
table was created with family. The log was not kept so could not find more info there.  By
checking the code, it seems impossible. Can we undo this check so the real issue is not hidden
in case there is one, [~Apache9]?

This message was sent by Atlassian JIRA

View raw message