From owner-freebsd-ports@FreeBSD.ORG Tue Mar 31 19:20:36 2015 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B4B3F852; Tue, 31 Mar 2015 19:20:36 +0000 (UTC) Received: from mail.lifanov.com (mail.lifanov.com [206.125.175.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 70F23884; Tue, 31 Mar 2015 19:20:36 +0000 (UTC) Received: by mail.lifanov.com (Postfix, from userid 58) id 310A41C9A29; Tue, 31 Mar 2015 15:11:49 -0400 (EDT) Received: from [127.0.0.1] (vnat004.nandomedia.com [166.108.31.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.lifanov.com (Postfix) with ESMTPSA id 0238D1C87FC; Tue, 31 Mar 2015 15:11:46 -0400 (EDT) Message-ID: <551AF171.1040208@mail.lifanov.com> Date: Tue, 31 Mar 2015 15:11:45 -0400 From: Nikolai Lifanov User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 MIME-Version: 1.0 To: freebsd-ports@freebsd.org Subject: Re: Galera ports References: In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: spil.oss@gmail.com, horia@racoviceanu.com, ale@FreeBSD.org X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Mar 2015 19:20:36 -0000 On 03/31/15 08:00, freebsd-ports-request@freebsd.org wrote: > Hi! > I'm a bit surprised that we don't have ports for galera cluster. > I want to discuss about them a little bit. > > In short about galera and how it works (how I understand it): > it's a kind of cluster of MySQL-based DBs. They support MySQL, Percona > and MariaDB right now. > Web site http://galeracluster.com/. > ~Components: > 1. A special version of MySQL-based DB daemon, patched to work with > wsrep API. It can be MySQL Galera Cluster, Percona XtraDB Cluster or > MariaDB Galera CLuster. > 2. A common "plugin" for them all, which is plugged in through my.cnf. > It's called "Galera 3 wsrep provider library" usually. > 3. Arbitrator - a DB daemon without data to prevent split-brain and etc. > Cluster version of MySQL-based DB daemons are usually(always?) synced > with non-cluster regular versions. > > We have a port only for #2 now - databases/galera (which is useless in > such case, no?). > There is no port for #3 at all. > There are a couple of PRs to add #1 to ports tree, which were created > about a year ago. No progress since then. > https://bugs.freebsd.org/bugzilla/buglist.cgi?quicksearch=galera. > > > However, I'd like to discuss about something. It's just my thoughts. > 1. As you can see those PRs are trying to add *-server and *-client > ports for each of clustered MySQL-based DBs (I know, not for Percona). > Is there any need to add another yet version of client? > What's a reason to make *-client ports? Because nothing depends on > *-server ports. > IMO we should use regular ports for clients and add only a server > part, as Linuxes does. For example, databases/mysql56-client for MySQL > Galera Cluster. In such case a lot of work to add a dependency for new > *-client is not needed. > 2. How *-server ports should be named? At first glance the obvious names are: > databases/mysql5[56]-galera-cluster > databases/percona5[56]-xtradb-cluster > databases/mariadb(55|100)-galera-cluster > Not bad, but what about the same names, but without (galera|xtradb) > word? Or without "cluster" word. > Like databases/mysql56-cluster next to databases/mysql56-server and > databases/mysql56-client. > > How do you think? I took a stab at this before: Percona XtraDB is the easiest to get working, since pre-patched sources are available from the same master site. The others need wsrep patches, which might not be sustainable to carry as separate ports. I would propose to add something like WSREP knob to existing mysql*-server ports that adds the extra patches and then make slaves with WSREP option selected. The Galera port proper was fixed not to crash on startup anymore in ports r373590, and I tested it as far as getting MySQL 5.6 cluster to start. I'm CC-ing relevant port maintainers to gauge the interest in adding an WSREP option to existing ports and creating slave ports with this option selected. This will make bsd.databases.mk less sprawly as well. Thoughts? - Nikolai Lifanov