Hi, I'm planning to add filesystem-local database support to mlocate. This allows: - running updatedb on a file server and making the database automatically available to clients without any client-side configuration - using locate on GFS volumes without running updatedb on each host that has the volume mounted (which slows the volumes down due to lock contention) The plan: * the mlocate.db format is extended to support databases without a fixed path prefix, such that all entries in a database in /foo/bar/.mlocate/mlocate.db are implicitly prefixed by /foo/bar. (this allows using /srv/home on the file server, mounting it as /home, and using a single database on both the server and the client). * locate(1)'s default database is not just /var/lib/mlocate/mlocate.db; mlocate also checks each mounted filesystem for a .mlocate/mlocate.db file, owned by root or the invoking user, and not writable by anyone but the owner. Such files are automatically added to the database path. * To allow overriding this check, the LOCATE_PATH variable is changed to override the default database path instead of appending to the database path. *note*: this is an incompatible change * updatedb(8) gets a new option, --single-fs PATH. This option generates a database in PATH/.mlocate/mlocate.db that spans only the subtree of PATH. filesystems mounted in subdirectories of PATH are automatically excluded, PRUNEFS is ignored. PRUNEPATHS is honored, except for PATH itself. * /etc/cron.daily/mlocate reads /etc/sysconfig/mlocate to get a list of single-fs PATHs. For each PATH it checks PATH/.mlocate/mlocate.db is older than 12 hours, creates a lock to prevent a concurrent updatedb, and runs updatedb --single-fs PATH. The standard daily run is performed as well, with all entries of /etc/sysconfig/mlocate added to PRUNEPATHS automatically. Usage for /home on NFS: - NFS is automatically excluded by clients, so updatedb on clients does not walk the filesystem. - On the server: Add /srv/home to /etc/sysconfig/mlocate. If /srv/home is not a separate mount point, add LOCATE_PATH=:/srv/home/.mlocate/mlocate.db to the global environment. Usage for /home on GFS: - GFS is automatically excluded, so no host walks the filesystem by default. - On all hosts: add /home to /etc/sysconfig/mlocate Can anyone see a problem with the plan, or an important feature that the above fails to address? Thanks, Mirek -- fedora-devel-list mailing list fedora-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-devel-list