Web lists-archives.com

Re: slave to master






Am 29.04.2016 um 22:22 schrieb Mahmoud Alshinhab:
I was think of it from the cloud prospective, as for example you can
guarantee that Amazon's Elastic Load Balancer won't be a single point of
failure, so I was thinking how can I use MariaDB MaxScale and in the
same time guarantee that it won't be a single point of failure.

why should max scale care *what* your mysql-client is?

anything which can talk to your mysql server will talk the same way to max scale, it acts like a ordinary mysql server from the view of any client

On Fri, Apr 29, 2016 at 5:34 PM, Reindl Harald <h.reindl@xxxxxxxxxxxxx
<mailto:h.reindl@xxxxxxxxxxxxx>> wrote:



    Am 29.04.2016 um 17:27 schrieb Mahmoud Alshinhab:

        I also like the MariaDB Max scale that Reindl Harald Sent -Thanks-
        However I don't know if it is possible to use 2 servers of the
        max scale
        with a load balancer in front of them or not.
        I always try to avoid the Single Point of Failure


    get rid of the idea that your "load-balancer" not a single point

    in a sane environment there is no single point of failure because
    max scale *is the load balancer* and typically runs on a HA cluster
    where it never goes away (virtual machine on a cluster FS - as
    example - VMware vSphere with two hosts and VMware HA enabled)

    why do you want a load balancer in front of a load balancer and how
    do you make sure that this load balancer is redundant and not a
    single point of failure itself?

        "https://mariadb.com/products/mariadb-maxscale/how-maxscale-works";
        On Fri, Apr 29, 2016 at 5:20 PM, Mahmoud Alshinhab
        <mahmoud.alshinhab@xxxxxxxxx
        <mailto:mahmoud.alshinhab@xxxxxxxxx>
        <mailto:mahmoud.alshinhab@xxxxxxxxx
        <mailto:mahmoud.alshinhab@xxxxxxxxx>>> wrote:

            I quote this from the page[1]:


                  Load balancing implementation


                    Random picking

            When initializing a connection or after a failed connection, the
            connector will attempt to connect to a host with a certain role
            (slave/master). The connection is selected randomly among
        the valid
            hosts. Thereafter, all statements will run on that database
        server
            until the connection will be closed (or fails).

            The load-balancing will includes a pooling mechanism.
        Example: when
            creating a pool of 60 connections, each one will use a
        random host.
            With 3 master hosts, the pool will have about 20 connections
        to each
            host.


                    Master/slave distributed load

            For a cluster composed of masters and slaves on connection
            initialization, there will be 2 underlying connections: one
        with a
            master host, another with a slave host. Only one connection
        is used
            at a time.
            For a cluster composed of master hosts only, each connection has
            only one underlying connection.
            The load will be distributed due to the random distribution of
            connections..


                    Master/slave connection selection

            It’s the application that has to decide to use master or slave
            connection (the master connection is set by default).
            Switching the type of connection is done by using JDBC
            connection.setReadOnly(boolean readOnly)

        <http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html#setReadOnly%28boolean%29>
            method. Setting read-only to true will use the slave connection,
            false, the master connection.

            [1]

        https://mariadb.com/kb/en/mariadb/failover-and-high-availability-with-mariadb-connector-j/

            So I think it is not implemented yet. as "the application has to
            decide to use master or slave connection (the master
        connection is
            set by default)."

            --
            Eng. Mahmoud Alshinhab
            AWS Cloud Support Engineer
            Fedora Ambassador
            Wiki : https://fedoraproject.org/wiki/User:Tuxawy
            mahmoud.alshinhab@xxxxxxxxx
        <mailto:mahmoud.alshinhab@xxxxxxxxx>
        <mailto:mahmoud.alshinhab@xxxxxxxxx
        <mailto:mahmoud.alshinhab@xxxxxxxxx>>
            tuxawy@xxxxxxxxxxxxxxxxx <mailto:tuxawy@xxxxxxxxxxxxxxxxx>
        <mailto:tuxawy@xxxxxxxxxxxxxxxxx <mailto:tuxawy@xxxxxxxxxxxxxxxxx>>

            On Fri, Apr 29, 2016 at 5:14 PM, Mahmoud Alshinhab
            <mahmoud.alshinhab@xxxxxxxxx
        <mailto:mahmoud.alshinhab@xxxxxxxxx>
        <mailto:mahmoud.alshinhab@xxxxxxxxx
        <mailto:mahmoud.alshinhab@xxxxxxxxx>>>
            wrote:

                It was actually built for Amazon's Aurora, but it should
        work
                with any mysql-compatible protoco.

                --
                Eng. Mahmoud Alshinhab
                AWS Cloud Support Engineer
                Fedora Ambassador
                Wiki : https://fedoraproject.org/wiki/User:Tuxawy
                mahmoud.alshinhab@xxxxxxxxx
        <mailto:mahmoud.alshinhab@xxxxxxxxx>
        <mailto:mahmoud.alshinhab@xxxxxxxxx
        <mailto:mahmoud.alshinhab@xxxxxxxxx>>
                tuxawy@xxxxxxxxxxxxxxxxx
        <mailto:tuxawy@xxxxxxxxxxxxxxxxx>
        <mailto:tuxawy@xxxxxxxxxxxxxxxxx <mailto:tuxawy@xxxxxxxxxxxxxxxxx>>

                On Fri, Apr 29, 2016 at 3:13 PM, Reindl Harald
                <h.reindl@xxxxxxxxxxxxx <mailto:h.reindl@xxxxxxxxxxxxx>
        <mailto:h.reindl@xxxxxxxxxxxxx <mailto:h.reindl@xxxxxxxxxxxxx>>>
        wrote:


                    Am 29.04.2016 um 15:07 schrieb Johan De Meersman:

                            From: "Mahmoud Alshinhab"
                            <mahmoud.alshinhab@xxxxxxxxx
        <mailto:mahmoud.alshinhab@xxxxxxxxx>
                            <mailto:mahmoud.alshinhab@xxxxxxxxx
        <mailto:mahmoud.alshinhab@xxxxxxxxx>>>
                            Subject: Re: slave to master


                            I think you should have a look at MariaDB
        Connector[1].


                            It provides Load balancing and failover as
        Failover
                            occurs when a connection to
                            a primary database server fails and the
        connector
                            will open up a connection to
                            another database server.


                        Hmm, I didn't know that they built that into it,
                        interesting. Does it require server features, or
        would
                        it work with any mysql-compatible protocol ?

                            Load balancing allows load (read and write)
        to be
                            distributed over multiple
                            servers.


                        Is read-write splitting also built-in, then?


                    here you go:
                    https://mariadb.com/de/products/mariadb-maxscale and
        forget
                    about "MariaDB Connector" whatever that is


Attachment: signature.asc
Description: OpenPGP digital signature