in reply to User Image Uploading Works Again

Is there a particular reason that they are stored in the DB? I've always considered images best left to a lightweight webserver, it is what they do best.


Replies are listed 'Best First'.
(tye)Re: User Image Uploading Works Again
by tye (Sage) on Mar 27, 2002 at 05:48 UTC

    We never serve more than one such image per page (the vast majority of the time, we serve zero). These images are usually smaller than the HTML they accompany (my image is 5kB vs. 35kB of HTML). They are not allowed to be large (strict 80kB limit). We aren't even planning on implementing a caching scheme other than the "node caching" that the Everything engine aleady does.

    And! If the DB server chokes under the new load, we are fully authorized to blame jc.

            - tye (but my friends call me "Tye")
Re: Re: User Image Uploading Works Again
by mdillon (Priest) on Mar 27, 2002 at 05:19 UTC

    I don't exactly know the current setup, but here's my guess based on what I've gleaned. There are 2 distinct machines serving as web servers for PM. They do not share any filesystems. There is another machine serving as a database server. Both web servers use a this server as a data backend.

    Since no filesystems are shared between the two webservers, files (i.e. user node images) uploaded to one server are not automatically shared with the other server. This means that if you add a user image, it matters which of the two web servers you hit: you (and others) will only see the updated image from one of the two servers.

    By using the database server to store the images, the images are automatically available to both web servers, since they already make routine connections to the database server for data. This means that either web server can retrieve *or* update the single image stored in the shared data store. Even if you have another web server serving just images, you still have to coordinate getting the uploaded images to the image serving server from whichever web server they are uploaded to.

    The adopted solution is an elegant use of available resources. If implemented, a caching system could allay most concerns of waste (which will likely not be borne out in practice).