[MCOL-791] Columnstore can not resolve update and delete in binlog Created: 2017-06-28  Updated: 2021-02-19  Resolved: 2021-02-19

Status: Closed
Project: MariaDB ColumnStore
Component/s: N/A
Affects Version/s: None
Fix Version/s: N/A

Type: New Feature Priority: Major
Reporter: hiller1 Assignee: Todd Stoffel (Inactive)
Resolution: Won't Do Votes: 0
Labels: None
Environment:

Columnstore1.0.9



 Description   

1, columnstore does not support replication with MySQL Master

2, I use the mysqlbinlog --read-from-remote-server -hMasterIp -uadmin -p123456 -P3314 mysql-bin.004750 | mcsmysql , can not resolve update and delete in binlog

How to do real-time data synchronization?



 Comments   
Comment by David Hill (Inactive) [ 2017-06-28 ]

Can you provide some information on your system.

1. What is the server/module configuration? Number UMs and PMs or number of PMs if its a combined install?

  1. run
  2. mcsadmin getSystemStatus
    2. Is the MariaDB ColumnStore Replication Feature enabled?
    Check to see if Columnstore Replication Feature is enabled
    run the command mcsadmin getsysteminfo
  3. mcsadmin getsystemi
    getsysteminfo Fri Jun 23 21:53:11 2017

System columnstore-1

System and Module statuses

Component Status Last Status Change
------------ -------------------------- ------------------------
System ACTIVE Fri Jun 23 21:52:52 2017

Module um1 ACTIVE Fri Jun 23 21:52:58 2017
Module pm1 ACTIVE Fri Jun 23 21:53:03 2017

Active Parent OAM Performance Module is 'pm1'
MariaDB ColumnStore Replication Feature is enabled

Comment by hiller1 [ 2017-06-28 ]

mcsadmin> getSystemStatus
getsystemstatus Wed Jun 28 23:53:38 2017

System columnstore-1

System and Module statuses

Component Status Last Status Change
------------ -------------------------- ------------------------
System ACTIVE Wed Jun 28 16:50:17 2017

Module um1 ACTIVE Wed Jun 28 16:49:58 2017
Module um2 ACTIVE Wed Jun 28 16:49:53 2017
Module pm1 ACTIVE Wed Jun 28 16:49:34 2017
Module pm2 ACTIVE Wed Jun 28 16:49:48 2017

Active Parent OAM Performance Module is 'pm1'
Primary Front-End MariaDB ColumnStore Module is 'um1'
MariaDB ColumnStore Replication Feature is enabled

mcsadmin> getsystemi
getsysteminfo Wed Jun 28 23:54:14 2017

System columnstore-1

System and Module statuses

Component Status Last Status Change
------------ -------------------------- ------------------------
System ACTIVE Wed Jun 28 16:50:17 2017

Module um1 ACTIVE Wed Jun 28 16:49:58 2017
Module um2 ACTIVE Wed Jun 28 16:49:53 2017
Module pm1 ACTIVE Wed Jun 28 16:49:34 2017
Module pm2 ACTIVE Wed Jun 28 16:49:48 2017

Active Parent OAM Performance Module is 'pm1'
Primary Front-End MariaDB ColumnStore Module is 'um1'
MariaDB ColumnStore Replication Feature is enabled

MariaDB ColumnStore Process statuses

Process Module Status Last Status Change Process ID
------------------ ------ --------------- ------------------------ ----------
ProcessMonitor um1 ACTIVE Wed Jun 28 16:49:15 2017 55829
ServerMonitor um1 ACTIVE Wed Jun 28 16:49:34 2017 56091
DBRMWorkerNode um1 ACTIVE Wed Jun 28 16:49:35 2017 56104
ExeMgr um1 ACTIVE Wed Jun 28 16:49:52 2017 58324
DDLProc um1 ACTIVE Wed Jun 28 16:49:56 2017 58337
DMLProc um1 ACTIVE Wed Jun 28 16:50:01 2017 58347
mysqld um1 ACTIVE Wed Jun 28 16:50:15 2017

ProcessMonitor um2 ACTIVE Wed Jun 28 16:49:15 2017 34184
ServerMonitor um2 ACTIVE Wed Jun 28 16:49:38 2017 34456
DBRMWorkerNode um2 ACTIVE Wed Jun 28 16:49:39 2017 34469
ExeMgr um2 ACTIVE Wed Jun 28 16:49:52 2017 35953
DDLProc um2 COLD_STANDBY Wed Jun 28 16:49:53 2017
DMLProc um2 COLD_STANDBY Wed Jun 28 16:49:53 2017
mysqld um2 ACTIVE Wed Jun 28 16:50:26 2017

ProcessMonitor pm1 ACTIVE Wed Jun 28 16:49:06 2017 15508
ProcessManager pm1 ACTIVE Wed Jun 28 16:49:12 2017 15671
DBRMControllerNode pm1 ACTIVE Wed Jun 28 16:49:26 2017 16226
ServerMonitor pm1 ACTIVE Wed Jun 28 16:49:28 2017 16249
DBRMWorkerNode pm1 ACTIVE Wed Jun 28 16:49:28 2017 16274
DecomSvr pm1 ACTIVE Wed Jun 28 16:49:32 2017 16361
PrimProc pm1 ACTIVE Wed Jun 28 16:49:34 2017 16433
WriteEngineServer pm1 ACTIVE Wed Jun 28 16:49:35 2017 16464

ProcessMonitor pm2 ACTIVE Wed Jun 28 16:49:23 2017 9810
ProcessManager pm2 HOT_STANDBY Wed Jun 28 16:49:24 2017 9850
DBRMControllerNode pm2 COLD_STANDBY Wed Jun 28 16:49:39 2017
ServerMonitor pm2 ACTIVE Wed Jun 28 16:49:42 2017 9879
DBRMWorkerNode pm2 ACTIVE Wed Jun 28 16:49:42 2017 9892
DecomSvr pm2 ACTIVE Wed Jun 28 16:49:46 2017 9914
PrimProc pm2 ACTIVE Wed Jun 28 16:49:48 2017 9922
WriteEngineServer pm2 ACTIVE Wed Jun 28 16:49:49 2017 9932

Active Alarm Counts: Critical = 0, Major = 0, Minor = 0, Warning = 0, Info = 0
mcsadmin>

Comment by David Hill (Inactive) [ 2017-06-28 ]

Thanks for the info, the configuration and setup looks correct.
We will need to investigate further, but it looks like its a BUG or not supported.

Comment by hiller1 [ 2017-06-28 ]

[root@um1 bin]# ./mysqlbinlog -vv --read-from-remote-server -h192.168.143.203 -uadmin -p123456 mysql-bin.000001 | grep -A 10 'UPDATE'
### UPDATE `liubin`.`rbac_role`
### WHERE
### @1=1 /* LONGINT meta=0 nullable=0 is_null=0 */
### @2=1 /* TINYINT meta=0 nullable=1 is_null=0 */
### @3=1 /* TINYINT meta=0 nullable=1 is_null=0 */
### SET
### @1=1 /* LONGINT meta=0 nullable=0 is_null=0 */
### @2=1 /* TINYINT meta=0 nullable=1 is_null=0 */
### @3=3 /* TINYINT meta=0 nullable=1 is_null=0 */

  1. at 769
    #170629 0:01:24 server id 2033306 end_log_pos 796 Xid = 14172
    [root@um1 bin]#
    [root@um1 bin]#
    [root@um1 bin]# mcsmysql e "select * from liubin.rbac_role" -------------------
    id defaulted deleted

    --------------------

    1 1 1
    2 2 2

    --------------------

Columnstore can not resolve update and delete in binlog

Comment by David Thompson (Inactive) [ 2017-06-28 ]

Yes, this is a limitation of columnstore 1.0, that if you set a columnstore table as a replication slave target then the changes are ignored.

Your options are to:

  • use an etl product to manage this, this is also a good idea if you need to do any transformation or aggregation.
  • set up replication to an innodb table in your columnstore instance and then periodically do insert selects (ideally non transactional so it uses cpimport) into the columnstore tables.
  • updates also work better if you can do a bulk update via a staging table.

This is semi by design at least for now as individual DML is not optimal and so we fear that we create a lot more support issues by trying to support this. We have plans to start offering a replication solution in our 1.1 release utilizing a new bulk api but it likely will still have some limitations at least initially especially around updates and deletes.

Generated at Thu Feb 08 02:23:51 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.