On Fri, Mar 16, 2007 at 05:16:26AM +0100, Miloslav Trmac wrote: > Hi, > I'm planning to add filesystem-local database support to mlocate. This > allows: First of all thanks for attacking this! > - 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. locate should also include .mlocate/mlocate.db a previous updatedb has found and skipped. E.g. if updatedb detects a .mlocate/mlocate.db in a folder in its path it skips it and registers it for locate to use. Perhaps that way you can even save the explicit mentioning of --single-fs paths in /etc/sysconfig/mlocate. If a paths is to be handled as such the admin just creates an .mlocate folder and updatedb and locate automatically pick it up. > * 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 > -- Axel.Thimm at ATrpms.net
Attachment:
pgpuLooHCqyG4.pgp
Description: PGP signature
-- fedora-devel-list mailing list fedora-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-devel-list