Hello All,

I don't want to start a war, and yes there are exceptions and special
circumstances, BUT in most cases, I would not consider the recommendation to
store file-based data IN the database tier under almost any circumstances.
IMHO, the database tier is not an appropriate place to store document-style
data.  The additional overhead between the two servers, the additional
traffic on the Database machine, and the amount of additional database
storage space requirements (which should be backed up on a regular basis,
making for low-efficiency database backups) are just a few good reasons.

>From the little I know about your situation, I would consider using three
machines:  Set up a good, cheap server just for an FTP repository, and let
your CF Server transfer files to that server upon upload from the user.
Then reference those file locations using a nice small database field on
your database machine.  Let the file system(s) do what they do best (manage
access to files), the web and application system(s) do what they do best
(serve applications and web pages), and let the relational database system
do what it does best (store and manage the referential integrity of data).

Unless you are anticipating super-high levels of traffic, these three
(decent) machines should do the trick for you.

That said, if you DO cluster anything, you'll still have the issue of
keeping ANY non-database information (i.e. files) in synch and available on
all servers in your cluster.  Your CF code should be fairly easy to deploy
to multiple servers using any decent project deployment tool.  Your
file-based user data (stored either on the CF servers or on an FTP Farm) can
be kept in synch with either a programmatic solution (CF accepts the file
upload, then deployes to whatever server(s) did not receive the file) , or a
distributed file system at the file-system level on your servers.

In my opinion (and this is probably more of a style thing until you get into
the super-high-end enterprise solutions), you do NOT want CF
Servers/applications to all share a common disk storage area, unless it is a
high-end redundant (and I mean REDUNDANT -- power, network cards, RAID, etc)
disk array of some kind, and even then I don't like that solution -- it
defeats the purpose of clustering and failover, by introducing a single
point of failure into the system (in this case the single disk array --
obviously not a problem if you DO have that full redundancy).  Microsoft's
Windows Load Balancing Service (WLBS) OR Microsoft Cluster Service (MSCS)
are common tools, in that case (if you don't mind using an MS solution).

A few minutes of research on distributed/synchronized file systems yielded
the following links:

http://www.coda.cs.cmu.edu/index.html
http://samba.anu.edu.au/rsync/ (unix)
http://peccatte.karefil.com/Software/Idem/IdemHelpENG.htm

But I personally prefer to have a CF Cluster, with CFCode deployed to each
server, and an inexpensive mirrored FTP farm, if you are forced into storing
and serving a large numbers of actual files... and then a database
server/cluster for the relational database tier.  When CF receives a file
from a user, it can be uploaded and transfered to the inexpensive FTP farm
in one action, and whatever reference there must be to the file can be
stored on the database tier.  It distributes the responsibilities to the
servers according to what they are meant to do...

OBVIOUSLY, I DO NOT KNOW THE DETAILS OF YOUR PROJECT, SO THESE SOLUTIONS MAY
NOT BE RIGHT FOR YOUR SITUATION, but I would investigate ANY OR ALL of the
above topics/options thorougly before I'd consider storing file-based data
on the relational database tier.  To me, that's just asking for trouble.

Hope this helps,

Marc



-----Original Message-----
From: Shan [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, April 24, 2001 5:34 PM
To: Fusebox
Subject: RE: clustering / shared network drive


You'll probably have less headaches keeping it on one server...

You might want to re-think storing the data users create in static files,
and try storing those "files" right into SQL Server.

Shan

-----Original Message-----
From: Brook Davies [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, April 24, 2001 3:16 PM
To: Fusebox
Subject: RE: clustering / shared network drive


I wish I could afford CF enterprise or even a network storage device for
that matter. Unfortunately, I don't think I will be able to launch this
product with those resources. We hope to raise some money once proving our
model. I realize it is a risky proposition. I am not overly happy about
having to do it in this fashion, but I do not have any choice.

The app files to do not change frequently, but the users to the site
generate additional data files which are what need to be shared between
servers. Ideally I would have a dedicated RAID soley for server and
protecting this additional data. But that's just not going to happen.

Would I be better off just using one server (I do have SQL7.0 on a
dedicated box) and forgetting about trying to connect to the other server
with a network drive connection (is this even viable??) . Or Is this a
intern solution to a network storage device.





At 01:18 PM 24/04/01 -0500, Shan wrote:
>You should have CFent, not CFpro. Yes, I know you're worried about cost,
but
>it is the most cost effective way to cluster.
>
>RRDNS by itself provides fake load balancing, but it isn't a good solution.
>ClusterCats (which is part of CFent), does true load balancing, along with
>fail over protection. It works very well for as cheap as it is.
>
>You shouldn't have the data only on one of the servers, because of fail
over
>protection. Either keep all your templates on a network storage device, or
>manually or automatically mirror the directories.
>
>Also, be sure your database server is on it's own separate machine.
>
>Shannon
>
>Shannon Hicks, Senior Developer
>Allaire Certified ColdFusion Developer
>Brainbench Certified Master ColdFusion Developer
>duoDesign eBusiness Architects
>Design : Develop : Deploy
>
>847-491-3000 main    :  [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>847-491-3100 fax     :  www.duodesign.com <http://www.duodesign.com>
>847-491-7128 direct  :  www.chicagoangels.org
<http://www.chicagoangels.org>
>
>
>
>-----Original Message-----
>From: Brook Davies [mailto:[EMAIL PROTECTED]]
>Sent: Tuesday, April 24, 2001 11:59 AM
>To: Fusebox
>Subject: OT: clustering / shared network drive
>
>
>Hi,
>
>I am considering clustering a couple of our servers. I am running CFpro
>4.5.1
>
>My question is two fold. First, without expensive hardware (or expensive
>software for that matter) what is the most effective way to cluster/load
>balance two servers. Round Robin DNS?
>
>What about data replication. One of the machines in the cluster have a RAID
>setup, and I am wondering if it is possible to map a shared network drive?
>Alternatively, what is an inexpensive data replication option?
>
>I appreciate the advice. :)
>
>Brook Davies
>
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Structure your ColdFusion code with Fusebox. Get the official book at 
http://www.fusionauthority.com/bkinfo.cfm

Archives: http://www.mail-archive.com/[email protected]/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

Reply via email to