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 AC3DB200D12 for ; Sat, 23 Sep 2017 01:12:02 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id AAAC31609E5; Fri, 22 Sep 2017 23:12:02 +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 EE77F1609D0 for ; Sat, 23 Sep 2017 01:12:01 +0200 (CEST) Received: (qmail 14694 invoked by uid 500); 22 Sep 2017 23:12:01 -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 14682 invoked by uid 99); 22 Sep 2017 23:12:00 -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; Fri, 22 Sep 2017 23:12:00 +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 6DA1B19201E for ; Fri, 22 Sep 2017 23:12:00 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 4.568 X-Spam-Level: **** X-Spam-Status: No, score=4.568 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FORGED_MUA_MOZILLA=1.596, HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, SPF_SOFTFAIL=0.972] autolearn=disabled Authentication-Results: spamd3-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=yahoo.com 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 8yIDZ0U_6eJd for ; Fri, 22 Sep 2017 23:11:58 +0000 (UTC) Received: from sonic311-42.consmr.mail.bf2.yahoo.com (sonic311-42.consmr.mail.bf2.yahoo.com [74.6.131.216]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 092AE5FBB1 for ; Fri, 22 Sep 2017 23:11:57 +0000 (UTC) X-YMail-OSG: kqiOAfQVM1l8BskKQzCl2WOJJ7X3ipVd3bL0YHp5O8HK7NJ.mPpDFtkTCg7WH5h P2MaYv_6qhOeSpJfmexAqPKOKKDTy2osBBzDesTmDcvlXucLmz06TNn0nvxuKNFThWZu_jkiBYMc ECW5ZNAGH_USi3IirGvw0SUd1GxSn9PJPY_fY8rnWBQu.VV..H_KvAWVY8Z2BsBTHEBcdO9HVpyV HPyUaRLhMvgK1U0GjTAvQUQPmT._aScBxjI0rqlkhyZ7QjLMV4xNZNr.xfR7C.fu4tnHAak5xF1X s9GabKnp7YVxzjDdZxIiKl2p0RVMu0R7UwFVYsZnhd5wNGeaP4wdashT1pe_DgQ.P1U90g8SpejL NGkx2VgSXRGJL24e.3dZXeWyToc4_3Ra0oPfVUIWdPFWOxnzCOAjt9Jz7QLPOqoX5VcukDHEkGPm zp0mDcOGSPFy_tC7ArRo.On0xfaCiZEgwZWLKV6wV9pw1BPnAxNqrNW31 Received: from sonic.gate.mail.ne1.yahoo.com by sonic311.consmr.mail.bf2.yahoo.com with HTTP; Fri, 22 Sep 2017 23:11:51 +0000 Date: Fri, 22 Sep 2017 23:07:35 +0000 (UTC) From: lars hofhansl Reply-To: lars hofhansl To: "dev@phoenix.apache.org" , lars hofhansl Message-ID: <893162577.8077734.1506121655279@mail.yahoo.com> In-Reply-To: <707389861.1295418.1505323361927@mail.yahoo.com> References: <1559114247.3588013.1504673965237.ref@mail.yahoo.com> <1559114247.3588013.1504673965237@mail.yahoo.com> <707389861.1295418.1505323361927@mail.yahoo.com> Subject: Re: Phoenix code quality MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_8077733_1684890379.1506121655277" X-Mailer: WebService/1.1.10521 YahooMailNeo Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36 archived-at: Fri, 22 Sep 2017 23:12:02 -0000 ------=_Part_8077733_1684890379.1506121655277 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Any comments?Is this simply not a concern? -- Lars From: lars hofhansl To: Dev =20 Sent: Wednesday, September 13, 2017 10:22 AM Subject: Fw: Phoenix code quality =20 Hi all Phoenix developers, here's a thread that I had started on the private PMC list, and we agreed t= o have this as a public discussion. =C2=A0=20 I'd like to solicit feedback on the 6 steps/recommendations below and about= we can ingrain those into the development process. Comments, concerns, are - as always - welcome! -- Lars=C2=A0=20 ----- Forwarded Message ----- From: lars hofhansl To: Private =20 Sent: Tuesday, September 5, 2017 9:59 PM Subject: Phoenix code quality =C2=A0=20 Hi all, I realize this might be a difficult topic, and let me prefix this by saying= that this is my opinion only. Phoenix is coming to a point where big organizations are relying on it. At Salesforce we do billions of Phoenix queries per day... And we had a bun= ch of recent production issues - only in part caused by Phoenix. If there was a patch here and there that lacks quality, tests, comments, or= proper documentation, then it's the fault of the person who created the pa= tch. If, however, this happens with some frequency, then it a problem that shoul= d involve PMC and committers who review and commit the patches in question. I'd like to suggest the following: 1. Comments in the code should be considered when judging a patch for its m= erit. No need to go overboard, but there should be enough comments so that = someone new the code can get an idea about what this code is doing. 2. Eyeball each patch for how it would scale. Will it all work on 1000 mach= ines? With 1bn rows? With 1000 indexes? etc, etc.If it's not obvious, ask t= he creator of the patch. Agree on what the scaling goals should be.(For any= thing that works only for a few million rows or on a dozen machines, nobody= in their right mind would accept the complexity of running Phoenix - and H= Base, HDFS, ZK, etc - folks would and should simply use Postgres.) 3. Check how a patch will behave under failure. Machines failures are commo= n. Regions may not reachable for a bit, etc. Are there good timeouts? Every= thing should gracefully continue to work. 4. Double check that tests check for corner conditions. 5. Err on the side of stability, rather than committing a patch as beta. If= it's in the code, people _will_ use it. 6. Are all config options properly explained and make sense? It's better to= err on the side of fewer config options. 7. Probably more stuff... Again. Just MHO. Many of these things are already done. But I still thought= might be good to have a quick discussion around this. Comments? Thanks. -- Lars =C2=A0=20 =20 ------=_Part_8077733_1684890379.1506121655277--