Return-Path: X-Original-To: apmail-hbase-issues-archive@www.apache.org Delivered-To: apmail-hbase-issues-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0C69A19A42 for ; Wed, 6 Apr 2016 15:07:26 +0000 (UTC) Received: (qmail 48211 invoked by uid 500); 6 Apr 2016 15:07:25 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 48161 invoked by uid 500); 6 Apr 2016 15:07:25 -0000 Mailing-List: contact issues-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@hbase.apache.org Received: (qmail 48141 invoked by uid 99); 6 Apr 2016 15:07:25 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Apr 2016 15:07:25 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 785B62C1F58 for ; Wed, 6 Apr 2016 15:07:25 +0000 (UTC) Date: Wed, 6 Apr 2016 15:07:25 +0000 (UTC) From: "Phil Yang (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-15484) Correct the semantic of batch and partial MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/HBASE-15484?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15228425#comment-15228425 ] Phil Yang commented on HBASE-15484: ----------------------------------- I find a corner case that if we setAllowPartialResults(true) and use a sparse filter. We may receive a heartbeat with some cells, and we will load them to cache and the Result.isPartial() return true. But next rpc may return cells in next row because the rest cells of previous row are all skipped. So the last Result of a row may still be partial. I think it is acceptable but we need change the definition of isPartial(). New definition may be: Whether or not this result from scanner is a partial result. The result will never be partial unless use Scan#setAllowPartialResults(true) while scanning. If allowing partial results, the result will still not be partial if ClientScanner is sure that the Result is the last one of this row. Otherwise the result will be partial if the number of cells in this result is less than expected, which means less than batch size (if setBatch) or not a complete row (if not setBatch). > Correct the semantic of batch and partial > ----------------------------------------- > > Key: HBASE-15484 > URL: https://issues.apache.org/jira/browse/HBASE-15484 > Project: HBase > Issue Type: Bug > Affects Versions: 1.2.0, 1.1.3 > Reporter: Phil Yang > Assignee: Phil Yang > Attachments: HBASE-15484-v1.patch, HBASE-15484-v2.patch, HBASE-15484-v3.patch > > > Follow-up to HBASE-15325, as discussed, the meaning of setBatch and setAllowPartialResults should not be same. We should not regard setBatch as setAllowPartialResults. > And isPartial should be define accurately. > (Considering getBatch==MaxInt if we don't setBatch.) If result.rawcells.length