Le 19 mars 2012 à 06:53, David Shrewsbury a écrit :

> On Mar 18, 2012, at 11:43 AM, Daniel Nichter wrote:
> 
>> Let me add re: #2 (and #3): it seems we have two evils to choose from.  The 
>> first, the old docs, is having two systems of replication: streams and 
>> slave.  It would be nice if we had only streams and everything was pure and 
>> simple, but slave wasn't built that way.  That's a problem because slave is, 
>> I highly suspect, the very first thing people will turn to.  It is, after 
>> all, Drizzle's "native" system of replication, yet it's also not.
> 
> Why is it not "native"?

It's not native because the original docs lead one to believe that 
replicator-applier is the native system, yet slave doesn't use this purely.  
Related to your next point...

>> The second is having one system of replication with a fudged, oddball 
>> premier member: slave.  A very astute reader of the docs will immediately 
>> notice (before Details) that slave doesn't truly fit the paradigm, but I 
>> hope my literary prowess was clever enough to keep the user dreaming of 
>> their super awesome slave-based Drizzle replication system before they 
>> realized the truth or read Details.
>> 
>> I favor the second evil because I think, going forward, maybe/hopefully 
>> someday Drizzle will have a native replication system that's pure 
>> replication stream.  If yes, then we won't have to disrupt the established 
>> paradigm.  If no, then the true nature of the slave plugin will remain a 
>> hacker's delight and maybe a Drizzle DBA certification question: "Explain 
>> why the slave plugin is not a true TransactionApplier."
> 
> The whole Replicator/Applier was around before we had a reliable
> transaction log, which we now have in the InnoDB replication log.
> Personally, I'd like to kill off the Replicator/Applier pattern since it
> does not have the guarantee that events received have been safely
> committed on the master (long discussion on that is beyond the
> scope of this email). Also, I find it slightly awkward, though I do
> understand the concept behind it.
> 
> If it were up to me, I'd promote that future plugins follow the style
> of the slave plugin and read from the InnoDB replication log which
> DOES have this guarantee.
> 
> Having the two paradigms, though flexible, is confusing, I think.
> But again, that's beyond the scope of this discussion.

I hadn't though of this: the (un)reliability of slave if it were a real 
replicator-applier plugin.  Since slave is the (more/most) reliable solution, 
then I agree with you:  we should make it _the_ paradigm and (like my 
alternative #3 in a previous email) re-purpose the replicator-applier paradigm. 
 I think the replicator-applier system is useful to users as an easy way to 
access committed transactions, so it should be kept, but if it's not the future 
of true/real/pure Drizzle-to-Drizzle replication going forward, then we 
shouldn't promote it as such.

It would be relatively easy in the docs to make this split: say "slave is _the_ 
native system of replication (because it's reliable etc. etc.)" but also, 
"Drizzle also has a system called replicator-applier which allows plugins to 
access the same committed transactions and do whatever they want with them".  
That's probably what the original docs wanted but failed to communicate.

Does that ^ sound better?  What do other developers think?  Brian?  Monty?  
Mark?  Stewart?  Henrik?  Olaf?  Vijay?  Jay?  etc.

-Daniel
_______________________________________________
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