wiki:FileDeleter

Version 9 (modified by davea, 15 years ago) (diff)

--

Server-side file deletion

Files are deleted from the data server's upload and download directories by the file_deleter daemon. Typically you don't need to customize this. The default file deletion policy is:

  • A workunit's input files are deleted when all results are 'over' (reported or timed out) and the workunit is assimilated.
  • A result's output files are deleted after the workunit is assimilated. The canonical result is handled differently, since its output files may be needed to validate results that are reported after assimilation; hence its files are deleted only when all results are over, and all successful results have been validated.
  • periodically remove 'antiques': output files that are older than the oldest WU in the database. These files are created when BOINC clients return after the corresponding WU has been deleted from the database.

Command-line options:

-d N
set debug output level (1/2/3)
-mod M R
handle only WUs with ID mod M == R
-one_pass
exit after one pass through DB
-dont_retry_errors
Don't retry file deletions that failed previously.
-dont_delete_antiques
Don't delete antiques
-preserve_wu_files
Update the DB, but don't delete input files
-preserve_result_files
Update the DB, but don't delete output files
-dont_delete_batches
Don't delete anything with positive batch number
-input_files_only
Don't delete output files
-output_files_only
Don't delete input files

If the web-server account on your system is not 'apache', add a <httpd_user> element to your config.xml file. Otherwise antique deletion won't work.

In some cases you may not want files to be deleted. There are three ways to accomplish this:

  • Use the -preserve_wu_files and/or the -preserve_result_files command-line options.
  • Include <no_delete/> in the <file_info> element for a file in a workunit or result template. This lets you suppress deletion on a file-by-file basis.
  • Include nodelete in the workunit name.

The antique files are deleted by using a Unix 'find' command to locate files that are older than the oldest workunit. The find command will work on NFS mounted file systems, and will ignore .nfs stale file markers.