[Rpm-maint] [Suse patch] Support database-local fsync setting

Panu Matilainen pmatilai at redhat.com
Mon Jun 4 13:58:46 UTC 2007


I'd rather avoid patching bdb within rpm unless it absolutely can't be 
avoided, and this is really just a performance hack. Not that I have 
anything against speedy installs but people can survive without it - so 
"no", until the required stuff is in bdb upstream (dunno if it is 
already?) and rpm internal db updated to such version.

 	- Panu -

----

Support a database-local fsync setting. Needs berkeley db patch.

--- ./rpmdb/db3.c.orig	2005-03-23 18:15:28.000000000 +0000
+++ ./rpmdb/db3.c	2006-01-27 20:08:29.000000000 +0000
@@ -211,11 +211,13 @@ static int db_fini(dbiIndex dbi, const c
      return rc;
  }

+#if 0
  static int db3_fsync_disable(/*@unused@*/ int fd)
  	/*@*/
  {
      return 0;
  }
+#endif

  #if 0
  #if HAVE_LIBPTHREAD
@@ -414,6 +416,7 @@ static int db_init(dbiIndex dbi, const c
   /* dbenv->set_rep_transport(???) */
   /* dbenv->set_rep_limit(???) */

+#if 0
      if (dbi->dbi_no_fsync) {
  #if (DB_VERSION_MAJOR == 3 && DB_VERSION_MINOR != 0) || (DB_VERSION_MAJOR == 4)
  	xx = db_env_set_func_fsync(db3_fsync_disable);
@@ -422,6 +425,7 @@ static int db_init(dbiIndex dbi, const c
  #endif
  	xx = cvtdberr(dbi, "db_env_set_func_fsync", xx, _debug);
      }
+#endif

      if (dbi->dbi_shmkey) {
  	xx = dbenv->set_shm_key(dbenv, dbi->dbi_shmkey);
--- ./rpmdb/dbconfig.c.orig	2004-10-16 12:50:52.000000000 +0000
+++ ./rpmdb/dbconfig.c	2005-12-15 13:12:32.000000000 +0000
@@ -99,6 +99,8 @@ struct poptOption rdbOptions[] = {
  	NULL, NULL },
   { "fcntl_locking",0,POPT_BIT_SET,	&db3dbi.dbi_oflags, DB_FCNTL_LOCKING,
  	NULL, NULL },
+ { "nofsync",	0,POPT_BIT_SET,		&db3dbi.dbi_oflags, DB_NOFSYNC,
+	NULL, NULL },

   { "btree",	0,POPT_ARG_VAL,		&db3dbi.dbi_type, DB_BTREE,
  	NULL, NULL },
@@ -145,8 +147,6 @@ struct poptOption rdbOptions[] = {
  	NULL, NULL },
   { "usedbenv",	0,POPT_ARG_NONE,	&db3dbi.dbi_use_dbenv, 0,
  	NULL, NULL },
- { "nofsync",	0,POPT_ARG_NONE,	&db3dbi.dbi_no_fsync, 0,
-	NULL, NULL },
   { "nodbsync",	0,POPT_ARG_NONE,	&db3dbi.dbi_no_dbsync, 0,
  	NULL, NULL },
   { "lockdbfd",	0,POPT_ARG_NONE,	&db3dbi.dbi_lockdbfd, 0,



More information about the Rpm-maint mailing list