maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #08198
Re: Contributing in Support for GTID in mysqlbinlog for GSoC'15
Hi Kristian,
I am having a doubt,
GTID assignss unique identifier to every transaction.
And gtid_mode variable is not dynamic.Should the constraint of
matching the master and replica be dropped to implement this.
On 2/23/15, Kristian Nielsen <knielsen@xxxxxxxxxxxxxxx> wrote:
> Rohit Kashyap <rkgudboy@xxxxxxxxx> writes:
>
>> I am Rohit Kashyap, I am currently working on MDEV-7569
>> and recently came over to your post on Support for GTID in mysqlbinlog
>> [MDEV-4989]
>> I would like to ask you for guidance and leads on this so that I can
>> take it up as my GSoC'15 Project under MariaDB.
>
> So I took a quick look at what mysqlbinlog currently supports, and how it
> could be extended to GTID. Looks like it's actually pretty clear:
>
> - The --start-position and --stop-position options should be able to take
> GTID positions; or maybe there should be new --start-gtid and
> --stop-gtid
> options. Like "--start-gtid=0-1-100,1-2-200,2-1-1000".
>
> - A GTID position means the point just _after_ that GTID. So starting from
> GTID 0-1-100 and stopping at GTID 0-1-200, the first GTID output will
> probably be 0-1-101 and the last one 0-1-200. Note that if some domain
> is
> not specified in the position, it means to start from the begining,
> respectively stop immediately in that domain.
>
> - Starting and stopping GTID should work both with local files, and with
> --read-from-remote-server. For the latter, there are a couple of extra
> things that need doing in the master-slave protocol, see
> get_master_version_and_clock() in sql/slave.cc.
>
> - At the end of the dump, put these statements as discussed in the bug:
> SET session.server_id = @@global.server_id,
> session.gtid_domain_id=@@global.gtid_domain_id;
>
> Probably some more things will come up during the work, but this looks like
> a
> reasonable start.
>
> I would recommend to start by reading the GTID documentation, and
> experimenting with all the relevant features described there, to
> familiarise
> yourself with it. The main thing is to understand the concept of GTID
> position
> and binlog order, and the relation to replication domains:
>
> https://mariadb.com/kb/en/mariadb/global-transaction-id/
>
> And similarly, familiarise yourself with mysqlbinlog and how it would make
> sense for it to be extended to support GTID.
>
> Then make a detailed proposal for how the user-visible interface of
> mysqlbinlog should be extended, and send it to the list for comments.
>
> The next step will be to understand the concept of binlog state
> (@@gtid_binlog_state), and how it is used to deal correctly with
> out-of-order
> GTID sequence numbers in binlogs. This is mostly an internal implementation
> detail, but necessary to be able to correctly identify starting and
> stopping
> GTID positions in all cases.
>
> Hope this helps,
>
> - Kristian.
>
--
Kind Regards,
Rohit
Follow ups
References