logo       

Re: [sqlite] Multi-master replication with updated Versioning?extension: msg#00857

sqlite-users

Subject: Re: [sqlite] Multi-master replication with updated Versioning?extension

On Thu, Jul 30, 2009 at 08:33:10PM +0400, Alexey Pechnikov scratched on the
wall:
> Hello!
>
> On Thursday 30 July 2009 19:47:39 Jay A. Kreibich wrote:
> > Then again, given that ROWID values are signed 64 bit values, you
> > could just start each master at some offset (like +0x00FFFFFFFFFFFFFF)
> > and not worry about it. It would still be a good idea to force all
> > the tables into an AUTOINCREMENT mode somehow.
>

> Before start replication databases may be copied from prototype
> database as files and so they are binary equal.

That still works (outside of adjustments to the sqlite_sequences
table).

Any replication function is going to manually insert a whole record,
including the ROWID. The AUTOINCREMENT values would only be used if
a master has to insert a brand-new row that otherwise doesn't exist
anywhere in the cluster of masters. In that case it has to be
assigned a globally unique (i.e. UUID) ROWID value. Off-setting the
pool of ROWID values each master uses effectively does this.

> UUID is really unique key for multi-master replication.

And that's more or less what this does. Any brand new record that is
created will be assigned a globally unique ROWID value, basically
making that ROWID a UUID.

> This is bad because ROWID without explicit field is not persistant
> and may change after dump/restore. Please see illustration of the problem:

Yes, this is true of almost every database system out there,
including ones that generate UUIDs. You're not really supposed to
dump and restore a multi-master system. If you trash a database you
"restore" it by creating an empty master an syncing from a working
master (or, in the case of SQLite, just copy of the file). If all
your masters are trashed and you're building a new cluster, the
alignment of ROWID values doesn't matter; even if they're freshly
generated they're still unique across the new one-master cluster.

-j

--
Jay A. Kreibich < J A Y @ K R E I B I.C H >

"Our opponent is an alien starship packed with atomic bombs. We have
a protractor." "I'll go home and see if I can scrounge up a ruler
and a piece of string." --from Anathem by Neal Stephenson
_______________________________________________
sqlite-users mailing list
sqlite-users@xxxxxxxxxx
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Google Custom Search

News | Mail Home | sitemap | FAQ | advertise