The best you can do actually with SQLite is a 'mirror-replicating' mode
engine
that works like Microsoft Windows Active Directory Database, to build a king
of 
High Availability / Load Balancing server.

You have a farm of servers (or workstations, etc) receiving SQL commands by
a 
channel (socket, pipe, whatever). They force a 'election' do decide what´s
the
best servers to become master, then they agree on that and transactions (all

commands that modify the database) are first applied to the master server
then
'mirrored' to slave servers. In this design, if a 'child' server cannot
complete
the transaction that are completed by master and any other server, there is
a
critical problem in that slave node, and you must consider it offline or
some kind of state that you need to check if by hand or by one tool you
might
develop for this. In this scenario, you can do a 'load balance' in SELECT´s,
distributing querying belong all servers, creating affinities for tables, 
buffering most used tables in a memory database, etc.

I´m currently implementing services for finantial stock exchanging services
that
works in the way I told you, if you are planning something that we can have
in the
way SQLite is (not tied to any kind of restrictive license), we can share
knowledge 
and implement a solution like that. (PS: I don't have full time to work on
it, but 
I can help in free hours)

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Griggs, Donald
Sent: segunda-feira, 12 de maio de 2008 10:47
To: General Discussion of SQLite Database
Subject: Re: [sqlite] Distributed transaction best practices

Hi David,


Regarding:  "What are the recommended "best practices" around using
SQLite in a distributed scenario?"  [two-phase commit, etc.]

I trust that someone with some actual relevant knowledge will reply to
your query later, but I imagine that many would say the the "recommend
best practice" is *not* to use sqlite, since sqlite was designed to be
an elegant embedded database -- without even one server -- let alone
multiple synchronized ones.

I take it you have strong reasons for rejecting, say, Postgres, which
now implements two-phase commmit right out of the box?  
 
http://www.postgresql.org/docs/current/static/sql-prepare-transaction.ht
ml

You may already know everything in articles such as this one
 
http://en.wikipedia.org/wiki/Two_phase_commit#Distributed_two-phase_comm
it_protocol
And its references (I don't claim to), but I'm listing it here just it
case it's helpful to you.

On the other hand, if you *do* develop a solid "distributed sqlite"
implementation, I'm sure others would be interested.

Regards,
  Donald Griggs

 


This email and any attachments have been scanned for known viruses using
multiple scanners. We believe that this email and any attachments are virus
free, however the recipient must take full responsibility for virus
checking. 
This email message is intended for the named recipient only. It may be
privileged and/or confidential. If you are not the named recipient of this
email please notify us immediately and do not copy it or use it for any
purpose, nor disclose its contents to any other person.
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to