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 14CE8200CAE for ; Tue, 6 Jun 2017 21:57:22 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 138FA160BD3; Tue, 6 Jun 2017 19:57:22 +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 5E888160BC6 for ; Tue, 6 Jun 2017 21:57:21 +0200 (CEST) Received: (qmail 54285 invoked by uid 500); 6 Jun 2017 19:57:20 -0000 Mailing-List: contact dev-help@phoenix.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@phoenix.apache.org Delivered-To: mailing list dev@phoenix.apache.org Received: (qmail 54274 invoked by uid 99); 6 Jun 2017 19:57:20 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Jun 2017 19:57:20 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 12D861AFDEF for ; Tue, 6 Jun 2017 19:57:20 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -99.202 X-Spam-Level: X-Spam-Status: No, score=-99.202 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_WHITELIST=-100] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id icywkLwREZVo for ; Tue, 6 Jun 2017 19:57:19 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id F14CE5F5B8 for ; Tue, 6 Jun 2017 19:57:18 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 798CBE01A8 for ; Tue, 6 Jun 2017 19:57:18 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 382DB21E0A for ; Tue, 6 Jun 2017 19:57:18 +0000 (UTC) Date: Tue, 6 Jun 2017 19:57:18 +0000 (UTC) From: "Thomas D'Silva (JIRA)" To: dev@phoenix.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (PHOENIX-3907) Use LATEST_TIMESTAMP when UPDATE_CACHE_FREQUENCY is not zero MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Tue, 06 Jun 2017 19:57:22 -0000 [ https://issues.apache.org/jira/browse/PHOENIX-3907?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16039533#comment-16039533 ] Thomas D'Silva commented on PHOENIX-3907: ----------------------------------------- [~jamestaylor] StatementContext.getCurrentTime() sets the current time based on the current table reference. If I modify MetadataClient.updateCache to set the mutation result time to UNSET_TIMESTAMP, then we lose the current date optimization that prevents the rpc. I don't see an easy way to get the statement context in updateCache. Instead of modifying update cache, should I just modify MutationState.validate to set the server time stamp to UNSET_TIMESTAMP if UPDATE_CACHE_FREQUENCY is set ? This will then be used to generate the mutations. {code} - serverTimeStamp = timestamp; + // if UPDATE_CACHE_FREQUENCY is set the mutation result time is UNSET_TIMESTAMP *except* when the cached table expires + // so set the server time stamp to UNSET_TIMESTAMP to be consisent + serverTimeStamp = table.getUpdateCacheFrequency()!=0 ? QueryConstants.UNSET_TIMESTAMP : timestamp; {code} > Use LATEST_TIMESTAMP when UPDATE_CACHE_FREQUENCY is not zero > ------------------------------------------------------------ > > Key: PHOENIX-3907 > URL: https://issues.apache.org/jira/browse/PHOENIX-3907 > Project: Phoenix > Issue Type: Bug > Reporter: James Taylor > Assignee: Thomas D'Silva > Attachments: PHOENIX-3907.patch > > > For non transactional tables, currently with UPDATE_CACHE_FREQUENCY, we'll use LATEST_TIMESTAMP *most* of the time, until the cached entity expires, in which case we'll use the server timestamp. This seems a bit strange and inconsistent. Instead (for non transactional tables), we should always use LATEST_TIMESTAMP if UPDATE_CACHE_FREQUENCY is non zero, with the exception of the corner case for UPSERT SELECT and DELETE where the same table is being read and written to (see changes to FromCompiler for PHOENIX-3823). -- This message was sent by Atlassian JIRA (v6.3.15#6346)