hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Phil Yang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15378) Scanner can not handle a heartbeat message with no results
Date Mon, 07 Mar 2016 04:46:40 GMT

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

Phil Yang commented on HBASE-15378:
-----------------------------------

We will continue the loop if it is heartbeat and cache is empty. If cache is not empty, we
can return cached data to user.
{code}
if (callable.isHeartbeatMessage()) {
        if (cache.size() > 0) {
          // Caller of this method just wants a Result. If we see a heartbeat message, it
means
          // processing of the scan is taking a long time server side. Rather than continue
to
          // loop until a limit (e.g. size or caching) is reached, break out early to avoid
causing
          // unnecesary delays to the caller
          if (LOG.isTraceEnabled()) {
            LOG.trace("Heartbeat message received and cache contains Results." + " Breaking
out of scan loop");
          }
          break;
        }
        continue;
      }
{code}


> Scanner can not handle a heartbeat message with no results
> ----------------------------------------------------------
>
>                 Key: HBASE-15378
>                 URL: https://issues.apache.org/jira/browse/HBASE-15378
>             Project: HBase
>          Issue Type: Bug
>          Components: dataloss, Scanners
>    Affects Versions: 1.2.0, 1.1.3
>            Reporter: Phil Yang
>            Assignee: Phil Yang
>            Priority: Critical
>         Attachments: HBASE-15378-v1.txt, HBASE-15378-v2.txt, HBASE-15378-v3.txt
>
>
> When a RS scanner get a TIME_LIMIT_REACHED_MID_ROW state, they will stop scanning and
send back what it has read to client and mark the message as a heartbeat message. If there
is no cell has been read, it will be an empty response. 
> However, ClientScanner only handles the situation that the client gets an empty heartbeat
and its cache is not empty. If the cache is empty too, it will be regarded as end-of-region
and open a new scanner for next region.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message