On Sat, Apr 28, 2012 at 7:31 AM, Daniel Nichter <dan...@percona.com> wrote:
> I was reviewing the filtered_replicator code and I found that the plugin 
> removes filtered queries from the transaction event.  I haven't tested it, 
> but it seems that if table foo is being filtered, then this transaction,
>

I didn't look at code and generally don't know anything about this
beyond what you write...


[Executed on master]
> update foo set ...
> insert into bar ...
>
> becomes simply,

[executed on slave]
>
> insert into bar ...
>
> That seems odd to me because 1) the same transaction has two contents (on the 
> master it has 2 statements, on the slave it will have 1)

Isn't this what is supposed to happen? I mean, the point of filtering
is that operations that match some rule are not replicated, and others
are.

> and 2) if statement 2 uses data created/modified by statement 1 but statement 
> 1 is filtered then statement 2 will fail or worse.
>

Not for row-based-replication, which I've understood that Drizzle
replication is. Row based replication will just insert the same thing
into bar, regardless whether foo exists or not.

> I would not expect a _filter_ to modify things, especially not the contents 
> of transactions.  Is it just too late for me to be coding, or does anyone 
> else agree that filtered_replicator is doing something very bad?
>

I would expect a filtered replicator to modify the contents of a
replication stream. I wouldn't expect it to modify the transaction as
it executes on the master, but I read your mail as if that is not
happening.

henrik

-- 
henrik.i...@avoinelama.fi
+358-40-8211286 skype: henrik.ingo irc: hingo
www.openlife.cc

My LinkedIn profile: http://www.linkedin.com/profile/view?id=9522559

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : drizzle-discuss@lists.launchpad.net
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to