Return-Path: Delivered-To: apmail-hadoop-hbase-dev-archive@locus.apache.org Received: (qmail 61516 invoked from network); 30 Sep 2008 21:38:35 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 30 Sep 2008 21:38:35 -0000 Received: (qmail 75690 invoked by uid 500); 30 Sep 2008 21:38:33 -0000 Delivered-To: apmail-hadoop-hbase-dev-archive@hadoop.apache.org Received: (qmail 75674 invoked by uid 500); 30 Sep 2008 21:38:33 -0000 Mailing-List: contact hbase-dev-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: hbase-dev@hadoop.apache.org Delivered-To: mailing list hbase-dev@hadoop.apache.org Received: (qmail 75663 invoked by uid 99); 30 Sep 2008 21:38:33 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 30 Sep 2008 14:38:33 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 30 Sep 2008 21:37:39 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 720AE234C1F9 for ; Tue, 30 Sep 2008 14:37:44 -0700 (PDT) Message-ID: <390558343.1222810664466.JavaMail.jira@brutus> Date: Tue, 30 Sep 2008 14:37:44 -0700 (PDT) From: "Jim Kellerman (JIRA)" To: hbase-dev@hadoop.apache.org Subject: [jira] Commented: (HBASE-880) Improve the current client API by creating new container classes In-Reply-To: <1824320241.1221058724990.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HBASE-880?page=3Dcom.atlassian.= jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=3D12635= 866#action_12635866 ]=20 Jim Kellerman commented on HBASE-880: ------------------------------------- @Stack {quote} Neither the current API nor the 880 patch supports different timestamps fo= r update, get(column) or getRow. Are you proposing we add this? Do=C4=9Facan G=C3=BCney did over in HBASE-899. There you were thinking it w= ould not be too difficult to add? Seems reasonable to me: i.e. timestamp does not below with row but rather with column specification. {quote} It should be easy enough to add. Does it make sense for all of get/put/dele= te? {quote} I see now how my comment confused things by grouping get with put and delet= e. Pardon me. What I meant was that when updating, you should be able to mix put and delete operations on the one row and asking if this = redesign allowed that. Seems like I can make RowMutation object and do deletes and puts against the one row (You can't do get and updates in th= e one operation. That 'normal'). {quote} Yes, you can do both puts and deletes in one operation. {quote} Regards the proposal, if I want to get values for many columns - not all co= lumns on a row but some subset - how do I do it? I use a RowGetOperation instead of a GetOperation? We should have better naming, do= n't you think? Should we drop the GetOperation and instead rename current RowGetOperation as GetOperation and use it every= where? (If we do this, we won't be able to do hbase-899 as written?) {quote} I kind of struggled with this one, and it ended up the way it did since you= asked that get return Cell[] instead of RowResult. I would prefer that we drop GetOperation and rename RowGetOperation to GetOperation= , if you think that it's ok for a single get to return SortedMap instead of Cell[], it's an easy change and enables = folding AbstractGetOperation into the new GetOperation as well. I can certainly draw it up and we can see which we like better. > Improve the current client API by creating new container classes > ---------------------------------------------------------------- > > Key: HBASE-880 > URL: https://issues.apache.org/jira/browse/HBASE-880 > Project: Hadoop HBase > Issue Type: Improvement > Components: client > Reporter: Jean-Daniel Cryans > Assignee: Jean-Daniel Cryans > Fix For: 0.19.0 > > Attachments: hbase-880-patch.jpg, hbase-880-v1.patch, hbase-880-v= 2.patch, hbase_client_classes.png, proposed.jpg > > > The current API does not scale very well. For each new feature, we have t= o add many methods to take care of all the overloads. Also, the need to bat= ch row operations (gets, inserts, deletes) implies that we have to manage s= ome "entities" like we are able to do with BatchUpdate but not with the oth= er operations. The RowLock should be an attribute of such an entity. > The scope of this jira is only to replace current API with another featur= e-compatible one, other methods will be added in other issues. --=20 This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.