Re: Xbase to Client-Server

From: Idan Shoham <shoham_at_enel.ucalgary.ca>
Date: Thu, 8 Sep 1994 16:32:37 GMT
Message-ID: <Sep8.163237.51026_at_acs.ucalgary.ca>


In article <34na25$bci_at_paperboy.gsfc.nasa.gov> gregory_smith_at_ccmail.gsfc.nasa.gov (Gregory A. Smith) writes:
>Can anyone tell if there are any objective metrics for when to move from
>Xbase File-Server Architecture (such as FoxPro) to a Client-Server RDBMS
>Architecture (such as Sybase-Powerbuilder)?

You must estimate the bandwidth requirements to do this.

If you assume that the DBMS uses no indexes (get to that next), then to do a query on a single table a file-server based DBMS must access every record in the table. You can then calculate that it will have to transfer

    (~10 bits/byte)(N bytes/record)(M records/table)

bits over your network. Divide by an estimate of your available bandwidth (say 1Mbps/user) to get the best possible response time (disk may be even slower in some cases).

e.g., (10bits/byte)(250 bytes/record)(10000 records) = 2.5e7 Mbits,

      or 25 seconds.

If you can use an index to optimize your queries, then you will have to do something like log_2(M) record accesses, plus hits on the index. In this case, that would reduce the transfer to 0.04 seconds or so.

Now figure on X users doing this at once (you come up with X), and reduce the bandwidth accordingly when you do so. (BW/user < network BW/X). To figure on multi-table queries, just multiply the number of record accesses (with or without indexing) from each related table. Things get ugly in a hurry.

When you finally get a bandwidth requirement estimate, you can see if it's within the ability of your network to cope. If it is, you can just use a file-server based product. If it's bigger than your available bandwidth, or you calculate excessive delays, you will want to move to client/server (which transfers only the result records rather than intermediate ones over the network).

Finally, you can consider hybrid solutions (we've built some, so e-mail if you want to talk about them some more), where some of the processing is done in file-server mode over a network, while other processing is done locally on the server (faster than C/S since there is _no_ network bottleneck here). We've been able, for instance, to get a client installation running FoxPro over a network, talking to a Unix box pretending to be a file server. Massive report processing is then performed locally, using CodeBase and other custom tools, locally on the Unix box.

>
>If anyone has any objective metrics, benchmarks, or statistics supporting
>such a threshold, please email them to me at:
>
>gregory_smith_at_ccmail.gsfc.nasa.gov
>
>Thanks in advance.

Hope this helps -- no stats, since they're application specific. But you can figure things out from there. 8)

  • Idan
    shoham_at_enel.ucalgary.ca
Received on Thu Sep 08 1994 - 18:32:37 CEST

Original text of this message