Thanks Akshay for the reply. On Tue, Sep 2, 2014 at 12:25 PM, Akshay Suryavanshi <akshay.suryavansh...@gmail.com> wrote: > Hello Ajay, > > I tried testing the slave-parallel-workers few months ago, what I can surely > tell you its still under development, and at that time needed some critical > bug fixing. > > It is helpful in situations where each schema has even workload. The case > you mentioned above doesnt have so. DB2 is getting different type of load > than the others, in that case the other slave workers should be able to > proceed with their workload as opposed to db2 which is still executing the > long running statement. Now just imagine what happens if we try to take a > backup, what binlog position should be captured ? the show slave status will > print what ? this is where it needs development, I tried testing backups on > it, but there is no concrete documentation on what position it would fetch. > > db2-statement-1 (very, very long-running) > db2-statement-2 (short-running) > > about the above scenario, the next db2-statement-2 it will wait for the long > running statement-1 to complete.
Surely.. !! :) However, my concern is how this "tracking" is done. That is, how is the db-wise segregation of statements done (from a single-binlog-file originally coming onto the slave) ? If this segregation is not done, then I cannot think of a way on how things would scale up, like for example, when the slave-relay-log-file contains a random mix of statements from tens of different databases. Any pointers on the "actual current" implementation of this db-wise statements-segregation will be a great confidence-booster !! :) Thanks and Regards, Ajay However db2-statement-2 can be picked up by > any other sql worker thread. > > This is a good feature added in mysql, however still needs to go through lot > of testing. Please share your observation and findings in case it differs > from the above. > > Cheers!!! > Akshay > > > On Mon, Sep 1, 2014 at 8:27 AM, Ajay Garg <ajaygargn...@gmail.com> wrote: >> >> Hi all. >> >> >> We have replication set-up, where we cater to HUUGEE amounts of data. >> Since quite some time, we have been facing issues wherein the slave >> lags behind master quite a lot. >> >> >> So, yesterday we were able to setup parallel replication, by >> incorporating the following changes :: >> >> a) >> To begin with, partitioned some tables into dedicated databases. >> >> b) >> Set up the "slave-parallel-workers" parameter. >> >> >> The above seems to work functionally fine, but we have one doubt/query >> about the scalability of this solution. >> >> >> >> >> First, I will jot down the flow as far as I understand (please correct >> if wrong) :: >> >> """ >> Even in parallel-replication scenario, the master writes all the >> binlog (combined for all databases) in just one file, which then gets >> passed onto the slave as single-file itself. Thereafter, all the >> replication commands (combined for all databases) are written >> sequentially onto one slave-relay file. >> >> Thereafter, as per the documentation, the slave-SQL-Thread acts as the >> manager, handing over commands to worker-threads depending upon the >> databases on which the commands run. >> """ >> >> >> >> So far, so good. >> However, what would happen if the slave-relay file contains the following >> :: >> >> >> db1-statement-1 (short-running) >> db2-statement-1 (very, very long-running) >> db2-statement-2 (short-running) >> db1-statement-2 (short-running) >> db1-statement-3 (short-running) >> >> >> We will be grateful if someone could please clarifiy, as to how the >> above statements will be managed amongst the Manager and the >> Worker-Threads (let's say there is just one worker-thread-per-db) ? >> >> In particular, does the Manager thread creates internal >> slave-relay-log-files, one for per database-statements? >> >> >> >> Thanks and Regards, >> Ajay >> >> -- >> MySQL General Mailing List >> For list archives: http://lists.mysql.com/mysql >> To unsubscribe: http://lists.mysql.com/mysql >> > -- Regards, Ajay -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/mysql