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 53793200C22 for ; Tue, 7 Feb 2017 03:22:46 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 51FFF160B64; Tue, 7 Feb 2017 02:22:46 +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 9B942160B56 for ; Tue, 7 Feb 2017 03:22:45 +0100 (CET) Received: (qmail 83753 invoked by uid 500); 7 Feb 2017 02:22:44 -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 83742 invoked by uid 99); 7 Feb 2017 02:22:44 -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, 07 Feb 2017 02:22:44 +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 5931D1A0152 for ; Tue, 7 Feb 2017 02:22:44 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -1.999 X-Spam-Level: X-Spam-Status: No, score=-1.999 tagged_above=-999 required=6.31 tests=[KAM_LAZY_DOMAIN_SECURITY=1, RP_MATCHES_RCVD=-2.999] 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 RjUZGJa1X10k for ; Tue, 7 Feb 2017 02:22:43 +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 C578F5F5C7 for ; Tue, 7 Feb 2017 02:22:42 +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 2E1FDE02EF for ; Tue, 7 Feb 2017 02:22:42 +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 C1D8B2528D for ; Tue, 7 Feb 2017 02:22:41 +0000 (UTC) Date: Tue, 7 Feb 2017 02:22:41 +0000 (UTC) From: "Appy (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (HBASE-17605) Refactor procedure framework code MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Tue, 07 Feb 2017 02:22:46 -0000 [ https://issues.apache.org/jira/browse/HBASE-17605?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Appy updated HBASE-17605: ------------------------- Description: - Moved locks out of MasterProcedureScheduler#Queue. One Queue object is used for each namespace/table, which aren't more than 100. So we don't complexity arising from all functionalities being in one place. MasterProcedureLocking#Lock is the new locking class. - Removed NamespaceQueue because it wasn't being used as Queue (add,peek,poll,etc functions threw UnsupportedOperationException). It's was only used for locks on namespaces. Now that locks have been moved out of Queue class, it's not needed anymore. - Remoed RegionEvent which was there only for locking on regions. Tables/namespaces used locking from Queue class and regions couldn't (there are no separate proc queue at region level), hence the redundance. Now that locking is separate, we can use the same for regions too. - Removed QueueInterface class. No declarations, except one implementaion, which makes the point of having an interface moot. - Removed QueueImpl, which was the only concrete implementation of abstract Queue class. Moved functions to Queue class itself to avoid unnecessary level in inheritance hierarchy. - Removed ProcedureEventQueue class which was just a wrapper around ArrayDeque class. - Encapsulated table priority related stuff in a single class. - Removed some unused functions. was: - Moved locks out of MasterProcedureScheduler#Queue. One Queue object is used for each namespace/table, which aren't more than 100. So we don't complexity arising from all functionalities being in one place. MasterProcedureLocking#Lock is the new locking class. - Removed NamespaceQueue because it wasn't being used as Queue (add,peek,poll,etc functions threw UnsupportedOperationException). It's was only used for locks on namespaces. Now that locks have been moved out of Queue class, it's not needed anymore. - Remoed RegionEvent which was there only for locking on regions. Tables/namespaces used locking from Queue class and regions couldn't (there are no separate proc queue at region level), hence the redundance. Now that locking is separate, we can use the same for regions too. - Removed QueueInterface class. No declarations, except one implementaion, which makes the point of having an interface moot. - Removed QueueImpl, which was the only concrete implementation of abstract Queue class. Moved functions to Queue class itself to avoid unnecessary level in inheritance hierarchy. - Encapsulated table priority related stuff in a single class. - Removed some unused functions. > Refactor procedure framework code > --------------------------------- > > Key: HBASE-17605 > URL: https://issues.apache.org/jira/browse/HBASE-17605 > Project: HBase > Issue Type: Improvement > Reporter: Appy > Assignee: Appy > Attachments: HBASE-17605.master.001.patch > > > - Moved locks out of MasterProcedureScheduler#Queue. One Queue object is used for each namespace/table, which aren't more than 100. So we don't complexity arising from all functionalities being in one place. MasterProcedureLocking#Lock is the new locking class. > - Removed NamespaceQueue because it wasn't being used as Queue (add,peek,poll,etc functions threw UnsupportedOperationException). It's was only used for locks on namespaces. Now that locks have been moved out of Queue class, it's not needed anymore. > - Remoed RegionEvent which was there only for locking on regions. Tables/namespaces used locking from Queue class and regions couldn't (there are no separate proc queue at region level), hence the redundance. Now that locking is separate, we can use the same for regions too. > - Removed QueueInterface class. No declarations, except one implementaion, which makes the point of having an interface moot. > - Removed QueueImpl, which was the only concrete implementation of abstract Queue class. Moved functions to Queue class itself to avoid unnecessary level in inheritance hierarchy. > - Removed ProcedureEventQueue class which was just a wrapper around ArrayDeque class. > - Encapsulated table priority related stuff in a single class. > - Removed some unused functions. -- This message was sent by Atlassian JIRA (v6.3.15#6346)