Mailing List Archive



Back to the month index Back to the list index

Brian Bartholomew (bb@wizard.pn.com)
Thu, 19 Sep 1996 07:47:45 -0400


Date: Thu, 19 Sep 1996 07:47:45 -0400
Message-Id: <199609191147.HAA02000@auntiem.wv.com>
From: Brian Bartholomew <bb@wizard.pn.com>
Subject: [mSQL] Mirroring databases.

> The unreliabilty/poor speed of the link between the servers presents
> the possibility of unacceptable delays on the client side.

> The natural progression of this thought is to form a queue and
> enqueue the queries asynchronously and send them to each server when
> the link is ready/able.

Presumabably the remote databases exist for people close to them to
query them? I don't think you can get what you want with as poor a
link quality as you describe. If the long-term average bandwidth of
query traffic is greater than the link bandwidth the queue will
increase in size forever. If it is barely smaller, you could spool
queries for 8 hours and then flush them in the evening. But with a
big queue the remote mirrors will only give accurate answers to
queries in the morning before a new batch of transactions start. If
you want to do a transaction with a remote database in less than some
fixed time, the network has to be fast enough to deliver, and no
queuing system will help.

If your application is unharmed by 20-hour latency, I would keep the
transactions in an msql table as strings instead of inventing a new
external data structure. The client would talk to a local msql. The
msql would copy the CREATE, INSERT, UPDATE, or DELETE into a local
queue/table for transmission to the other servers in the background.
Relational integrity would be nonexistant, but with the network
limitations you've given you can't have it short of blocking a client
until all queues drain hours later.

Another member of the League for Programming Freedom (LPF) lpf@uunet.uu.net
-------------------------------------------------------------------------------
Brian Bartholomew - bb@wv.com - Working Version, Cambridge, MA
--------------------------------------------------------------------------
To remove yourself from the Mini SQL mailing list send a message containing
"unsubscribe" to "unsubscribe" to msql-list-request@bunyip.com. Send a message containing
"info msql-list" to majordomo@bunyip.com for info on monthly archives of
the list. For more help, mail owner-msql-list@bunyip.com NOT the msql-list!