Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id BA75E200BBE for ; Fri, 11 Nov 2016 09:44:00 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id B92F8160AF5; Fri, 11 Nov 2016 08:44:00 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 0C7B9160AE4 for ; Fri, 11 Nov 2016 09:43:59 +0100 (CET) Received: (qmail 40672 invoked by uid 500); 11 Nov 2016 08:43:59 -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 40660 invoked by uid 99); 11 Nov 2016 08:43:59 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 11 Nov 2016 08:43:59 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 7C6072C4C76 for ; Fri, 11 Nov 2016 08:43:58 +0000 (UTC) Date: Fri, 11 Nov 2016 08:43:58 +0000 (UTC) From: "Phil Yang (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Comment Edited] (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 archived-at: Fri, 11 Nov 2016 08:44:00 -0000 [ https://issues.apache.org/jira/browse/HBASE-15484?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15656513#comment-15656513 ] Phil Yang edited comment on HBASE-15484 at 11/11/16 8:43 AM: ------------------------------------------------------------- For caching we had some discussion in HBASE-16987 and HBASE-16973. Using size/time limit is more direct than setCache for users because usually they setLimit because they want to limit size/time, and now by default we set cache to max_value. Paging in cell level is a possible scene. It is different from "limit" which Duo mentions because limit means we can stop and close the scanner, but batch means we should pause and wait next call. Since we have size/time limit at server side, a large row will not result in OOM at server even users don't setBatch. If users indeed need setBatch to limit the max number of cells for one Result returns, I think we can keep setBatch interface but change it to a client-only logic. In server we only consider size/time limit, and if we return more than batch cells, we can cache the rest of them in client? By this changing, we can decrease the number of RPC requests without OOM/Timeout risk. [~stack] [~carp84] [~mantonov] FYI, you also had some ideas about scanning in HBASE-16973 :) Thanks. was (Author: yangzhe1991): For caching we had some discussion in HBASE-16987 and HBASE-16973. Using size/time limit is more direct than setCache for users because usually they setLimit because they want to limit size/time, and now by default we set cache to max_value. Paging in cell level is a possible scene. It is different from "limit" which Duo mentions because limit means we can stop and close the scanner, but batch means we should pause and wait next call. Since we have size/time limit at server side, a large row will not result in OOM at server even users don't setBatch. If users indeed need setBatch to limit the max number of cells for one Result returns, I think we can keep setBatch interface but change it to a client-only logic. In server we only consider size/time limit, and if we return more than batch cells, we can cache them in client? By this changing, we can decrease the number of RPC requests without OOM/Timeout risk. [~stack] [~carp84] [~mantonov] FYI, you also had some ideas about scanning in HBASE-16973 :) Thanks. > 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 > Fix For: 2.0.0 > > Attachments: HBASE-15484-v1.patch, HBASE-15484-v2.patch, HBASE-15484-v3.patch, HBASE-15484-v4.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