Eric Frazier wrote:
> 
> Hi,
> 
> That kind of bothers me. But I can see how it might be better in some way
> than using a time function. My idea was to use the perl Time::HiRes to make
> a unique key adjusted by timezone. As long as the clocks of the two
> machines are fairly in since, it should work :) I guess I could also add in
> a unique machine id like time integer key + M for master or S for slave S2
> S3 etc. Does that sound insane?

Doesn't sound insane at all.  We've been using something like that for the
past 4 years (before auto_increment was available in mysql).

Here's what we're using:

sub _NextId {
    my $self = shift;
    my $pid = "0" x (5 - length($$)) . $$;
    $pid .= "0" x (3 - length($COUNTER)) . $COUNTER;
    $COUNTER = 0 if $COUNTER++ > 998;
    return time() . $pid;
}

You could use the hires time and get rid of the counter probably.

> 
> Thanks,
> 
> Eric
> 
> mysql is good
> 
> At 05:16 PM 2002-07-03 -0700, you wrote:
> >to somewhata simulate auto increments, each slave (and master) could be
> >periodically
> >assigned a chunk of keys to use, with the stipulation that only that server
> >can
> >use those keys. for instance at time 0 (arbitrarily)
> >
> >server 1 gets:     0-999
> >server 2 gets:    1000-1999
> >server 3 gets:    2000-2999
> >etc
> >
> >you'll have to keep track of this info on each server, whether in a table or
> >file.
> >then when that chunk is used up, that client can request another chunk of
> >keys.
> >(you could also update those key chunks daily, weekly, etc. instead.)
> >
> >The size of the chunks would want to be determined by the application,
> >frequency of
> >communication between master & slave, and volume of records going in.
> >
> >I have *not* implemented such a system, but this could work, depending on
> >your app.
> >
> >sean
> >
> >
> >----- Original Message -----
> >From: "Eric Frazier" <[EMAIL PROTECTED]>
> >To: <[EMAIL PROTECTED]>
> >Sent: Wednesday, July 03, 2002 2:32 PM
> >Subject: Re: AUTO_INCREMENT with Replication
> >
> >
> > > Well. Good to know. So I guess the only alternative would be to generate
> > > keys by date/time?
> > > I was hoping to avoid that. I am still worried about the timestamp type
> >not
> > > having good enough resolution. Seconds are pretty broad.
> > >
> > > Thanks,
> > >
> > > Eric
> > >
> > >
> > >
> > >
> > > >You're asking for trouble. :-)
> > > >
> > > >AUTO_INCREMENTS are not safe for use in a mutli-master environment.
> > > >The scenario you painted will result in a primary key violation on the
> > > >master when it reads the value inserted on the slave.
> > > >
> > > >Jeremy
> > > >--
> > > >Jeremy D. Zawodny, <[EMAIL PROTECTED]>
> > > >Technical Yahoo - Yahoo Finance
> > > >Desk: (408) 349-7878   Fax: (408) 349-5454   Cell: (408) 685-5936
> > > >
> > > >MySQL 3.23.51: up 34 days, processed 779,275,123 queries (258/sec. avg)
> > > >
> > > >---------------------------------------------------------------------
> > > >Before posting, please check:
> > > >    http://www.mysql.com/manual.php   (the manual)
> > > >    http://lists.mysql.com/           (the list archive)
> > > >
> > > >To request this thread, e-mail <[EMAIL PROTECTED]>
> > > >To unsubscribe, e-mail
> ><[EMAIL PROTECTED]>
> > > >Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
> > >
> > > Leading Edge Marketing Inc.
> > > 250-360-2992
> > >
> > >
> > > ---------------------------------------------------------------------
> > > Before posting, please check:
> > >    http://www.mysql.com/manual.php   (the manual)
> > >    http://lists.mysql.com/           (the list archive)
> > >
> > > To request this thread, e-mail <[EMAIL PROTECTED]>
> > > To unsubscribe, e-mail
> ><[EMAIL PROTECTED]>
> > > Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
> > >
> 
> Leading Edge Marketing Inc.
> 250-360-2992
> 
> ---------------------------------------------------------------------
> Before posting, please check:
>    http://www.mysql.com/manual.php   (the manual)
>    http://lists.mysql.com/           (the list archive)
> 
> To request this thread, e-mail <[EMAIL PROTECTED]>
> To unsubscribe, e-mail <[EMAIL PROTECTED]>
> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to