It depends. I would prefer to store the files in the linux filesystem with a directory structure based on a hash of the file and only store the meta-information (like filename, size, hash, path, author, title, etc) in the database. In my humble opinion this has the following advantages over storing the files in the database:
- The restore process of a single file will run shorter than the restore of a complete database with all files.
- Using a version control (f.e. svn or git) for the files is possible with a history.
- Bitrot will only destroy single files. This should be no problem if a filesystem with integrated checksums (f.e. btrfs) is used.
- Only a webserver and no database is needed to serve the files.
- You can move the files behind a proxy or a loadbalancer to increase availability without having to use a HA-Setup of Caché/IRIS.
- better usage of filesystem cache.
- better support for rsync.
- better support for incremental/differential backup.
But the pros and cons may vary depending on the size and amount of files and your server setup. I suggest to build two PoCs, load a reasonable amount of files in each one and do some benchmarks to get some figures about the performance and to test some DR- and restore-scenarios.
- Log in to post comments