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 EB409200498 for ; Tue, 29 Aug 2017 19:57:05 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id E99601673B3; Tue, 29 Aug 2017 17:57:05 +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 3C0B21673B0 for ; Tue, 29 Aug 2017 19:57:05 +0200 (CEST) Received: (qmail 2668 invoked by uid 500); 29 Aug 2017 17:57:04 -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 2657 invoked by uid 99); 29 Aug 2017 17:57:04 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 29 Aug 2017 17:57:04 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id D07C9188B34 for ; Tue, 29 Aug 2017 17:57:03 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -100.002 X-Spam-Level: X-Spam-Status: No, score=-100.002 tagged_above=-999 required=6.31 tests=[RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_WHITELIST=-100] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id D035Bm7FZIxu for ; Tue, 29 Aug 2017 17:57:03 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTP id 9C8F76103A for ; Tue, 29 Aug 2017 17:57:02 +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 36A7CE0E6E for ; Tue, 29 Aug 2017 17:57:01 +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 7676824166 for ; Tue, 29 Aug 2017 17:57:00 +0000 (UTC) Date: Tue, 29 Aug 2017 17:57:00 +0000 (UTC) From: "hanzhi (JIRA)" To: dev@phoenix.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Issue Comment Deleted] (PHOENIX-4021) Remove CachingHTableFactory MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Tue, 29 Aug 2017 17:57:06 -0000 [ https://issues.apache.org/jira/browse/PHOENIX-4021?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] hanzhi updated PHOENIX-4021: ---------------------------- Comment: was deleted (was: Will this issue effect global index in the production env?) > Remove CachingHTableFactory > --------------------------- > > Key: PHOENIX-4021 > URL: https://issues.apache.org/jira/browse/PHOENIX-4021 > Project: Phoenix > Issue Type: Bug > Affects Versions: 4.11.0 > Reporter: Geoffrey Jacoby > Assignee: Geoffrey Jacoby > Labels: globalMutableSecondaryIndex > Fix For: 4.12.0 > > Attachments: PHOENIX-4021.patch > > > CachingHTableFactory is used as a performance optimization when writing to global indexes so that HTable instances are cached and later automatically cleaned up, rather than instantiated each time we write to an index. > This should be removed for two reasons: > 1. It opens us up to race conditions, because HTables aren't threadsafe, but CachingHTableFactory doesn't guard against two threads both grabbing the same HTable and using it simultaneously. Since all ops going through a region share the same IndexWriter and ParallelWriterIndexCommitter, and hence the same CachingHTableFactory, that means separate operations can both be holding the same HTable. > 2. According to discussion on PHOENIX-3159, and offline discussions I've had with [~apurtell], HBase 1.x and above make creating throwaway HTable instances cheap so the caching is no longer needed. > For 4.x-HBase-1.x and master, we should remove CachingHTableFactory, and for 4.x-HBase-0.98, we should either get rid of it (if it's not too much of a perf hit) or at least make it threadsafe. -- This message was sent by Atlassian JIRA (v6.4.14#64029)