Date: Wed, 10 Feb 2016 09:40:45 +0000 (UTC) From: Stefan Esser <se@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r295465 - head/usr.sbin/services_mkdb Message-ID: <201602100940.u1A9ejb6086175@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: se Date: Wed Feb 10 09:40:45 2016 New Revision: 295465 URL: https://svnweb.freebsd.org/changeset/base/295465 Log: Remove O_SYNC from the options passed to dbmopen(). The services db is created as a temporary file that is moved over the existing file after completion. Thus there is no need to immediately flush all created db records to the temporary file. This speeds up creation of the services db by a factor of 500 on my ZFS based /var/db filesytem (from 110 seconds to 0.235 seconds). MFC after: 1 week Modified: head/usr.sbin/services_mkdb/services_mkdb.c Modified: head/usr.sbin/services_mkdb/services_mkdb.c ============================================================================== --- head/usr.sbin/services_mkdb/services_mkdb.c Wed Feb 10 09:19:29 2016 (r295464) +++ head/usr.sbin/services_mkdb/services_mkdb.c Wed Feb 10 09:40:45 2016 (r295465) @@ -141,7 +141,7 @@ main(int argc, char *argv[]) err(1, "Cannot install exit handler"); (void)snprintf(tname, sizeof(tname), "%s.tmp", dbname); - db = dbopen(tname, O_RDWR | O_CREAT | O_EXCL | O_SYNC, + db = dbopen(tname, O_RDWR | O_CREAT | O_EXCL, (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH), DB_HASH, &hinfo); if (!db) err(1, "Error opening temporary database `%s'", tname);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201602100940.u1A9ejb6086175>