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 D6234200CC1 for ; Mon, 10 Jul 2017 21:14:05 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id D4A9916461F; Mon, 10 Jul 2017 19:14: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 26DBE1645A3 for ; Mon, 10 Jul 2017 21:14:05 +0200 (CEST) Received: (qmail 9043 invoked by uid 500); 10 Jul 2017 19:14:04 -0000 Mailing-List: contact commits-help@helix.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@helix.apache.org Delivered-To: mailing list commits@helix.apache.org Received: (qmail 9034 invoked by uid 99); 10 Jul 2017 19:14: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; Mon, 10 Jul 2017 19:14: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 C3EC1193F70 for ; Mon, 10 Jul 2017 19:14: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-us.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id en6zSRBlLp2Z for ; Mon, 10 Jul 2017 19:14:03 +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 8263B628FE for ; Mon, 10 Jul 2017 19:08:06 +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 14ABBE0652 for ; Mon, 10 Jul 2017 19:08: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 C7D9724686 for ; Mon, 10 Jul 2017 19:08:00 +0000 (UTC) Date: Mon, 10 Jul 2017 19:08:00 +0000 (UTC) From: "Jiajun Wang (JIRA)" To: commits@helix.incubator.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (HELIX-659) Support Additional Associate States MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Mon, 10 Jul 2017 19:14:06 -0000 [ https://issues.apache.org/jira/browse/HELIX-659?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jiajun Wang updated HELIX-659: ------------------------------ Attachment: (was: Associate States Processing Flow.pdf) > Support Additional Associate States > ----------------------------------- > > Key: HELIX-659 > URL: https://issues.apache.org/jira/browse/HELIX-659 > Project: Apache Helix > Issue Type: New Feature > Components: helix-core > Affects Versions: 0.6.x > Reporter: Jiajun Wang > > Currently, Helix only supports management a single state for all resources/partitions. However, in the real world, cluster management requirements may be more complicated than that. > In Pinot, for example, each partition need to be assigned a version for ensuring data consistency. > When a new version comes, the system needs to replace the old partition with the new one. And the replacement is done one partition by one partition. So any reads during this period will get inconsistent data. > Pinot system cannot directly put the version information into the section(partition) state field because it is already occupied by the main state (offline-online for instance) used by Helix controller. > So Pinot team relies on some workarounds to implement their application logic: creating a new resource with the latest version and replace them after the resource is fully loaded. And for Helix controller, version is unknown. > Another option is Pinot team maintaining their own config item or property store item for recording versions. > Both ways require Pinot team implementing version control themselves. > Another requirement is from Ambry team. Where partition can be "ONLINE:READ" or "ONLINE:WRITE". > In both cases, single state mechanism is not sufficient for applications' requirement. > It would be very helpful to provide a framework level feature that supports more than one states for each partition. > Benefits: > # The application doesn't need to write additional code for managing additional states. > # Avoid potential conflict when multiple states transition happens concurrently. -- This message was sent by Atlassian JIRA (v6.4.14#64029)