]> git.sur5r.net Git - openldap/commitdiff
Make flush_writes the default. Change option to 'dbcachenowsync'.
authorKurt Zeilenga <kurt@openldap.org>
Sat, 7 Nov 1998 02:25:32 +0000 (02:25 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Sat, 7 Nov 1998 02:25:32 +0000 (02:25 +0000)
Change backend struct option to li_dbcachewsync.

doc/man/man5/slapd.conf.5
servers/slapd/back-ldbm/back-ldbm.h
servers/slapd/back-ldbm/config.c
servers/slapd/back-ldbm/dn2id.c
servers/slapd/back-ldbm/id2entry.c
servers/slapd/back-ldbm/idl.c
servers/slapd/back-ldbm/init.c

index 06c506315108d9121f74c1ac775b06d3704a8e41..223dc9bccc3ce8aca6b00caf7c0139552ec0dc65 100644 (file)
@@ -266,6 +266,10 @@ by the LDBM backend database instance.  The default is 1000 entries.
 Specify the size in bytes of the in-memory cache associated 
 with each open index file. If not supported by the underlying database 
 method, this option is ignored without comment.  The default is 100000 bytes.
+.B dbcachenowsync
+Specify that database writes should not be immediately synchronized
+with in memory changes.  Enabling this option may improving performance
+at the expense of data security.
 .TP
 .B directory <directory>
 Specify the directory where the LDBM files containing the database and
index dda1ff8452aa6bb37d6b18bb17c49bc6e09add26..960d2e1d4e0e4cc24958502150792a635f528a87 100644 (file)
@@ -110,7 +110,7 @@ struct ldbminfo {
        struct cache            li_cache;
        Avlnode                 *li_attrs;
        int                     li_dbcachesize;
-       int                     li_flush_wrt;
+       int                     li_dbcachewsync;
        struct dbcache          li_dbcache[MAXDBCACHE];
        pthread_mutex_t         li_dbcache_mutex;
        pthread_cond_t          li_dbcache_cv;
index 0e087dc0b18badec3009ca2f54fe9fbedd4c68b5..a47d7a14a1386e3deeef99fb3c99251223adbbd5 100644 (file)
@@ -80,9 +80,9 @@ ldbm_back_config(
                }
                li->li_dbcachesize = atoi( argv[1] );
 
-       /* flush on writes */
-       } else if ( strcasecmp( argv[0], "flushwrites" ) == 0 ) {
-               li->li_flush_wrt = 1;
+       /* no write sync */
+       } else if ( strcasecmp( argv[0], "dbcachenowsync" ) == 0 ) {
+               li->li_dbcachewsync = 0;
 
        /* anything else */
        } else {
index ff56ba616be5f11aa0d251524ef3939a0cbc26f1..4a7da28731e28b7986fd23473304c9658ea792be 100644 (file)
@@ -50,7 +50,7 @@ dn2id_add(
        data.dsize = sizeof(ID);
 
        flags = LDBM_INSERT;
-       if ( li->li_flush_wrt ) flags |= LDBM_SYNC;
+       if ( li->li_dbcachewsync ) flags |= LDBM_SYNC;
 
        rc = ldbm_cache_store( db, key, data, flags );
 
index c458ca503ffe8f1dc1d49826a3e80cc7b0498181..edc8f4c7b209ee64c3aff293d0eb8f376e9c47ce 100644 (file)
@@ -48,7 +48,7 @@ id2entry_add( Backend *be, Entry *e )
 
        /* store it */
        flags = LDBM_REPLACE;
-       if ( li->li_flush_wrt ) flags |= LDBM_SYNC;
+       if ( li->li_dbcachewsync ) flags |= LDBM_SYNC;
        rc = ldbm_cache_store( db, key, data, flags );
 
        pthread_mutex_unlock( &entry2str_mutex );
index 2f96f8f3c500986cf76fcca13c644eee19346103..a19786603ade88ba730da12ed5aec85d71c97a01 100644 (file)
@@ -195,7 +195,7 @@ idl_store(
 #endif
 
        flags = LDBM_REPLACE;
-       if( li->li_flush_wrt ) flags |= LDBM_SYNC;
+       if( li->li_dbcachewsync ) flags = LDBM_SYNC;
        rc = ldbm_cache_store( db, key, data, flags );
 
        /* Debug( LDAP_DEBUG_TRACE, "<= idl_store %d\n", rc, 0, 0 ); */
index 65fda4378518a767f0bda90906cb6dde32604bf7..9193f7213c7859e06d1d26f460d29dc4eb261fdd 100644 (file)
@@ -34,6 +34,9 @@ ldbm_back_init(
        /* default database cache size */
        li->li_dbcachesize = DEFAULT_DBCACHE_SIZE;
 
+       /* default cache mode is sync on write */
+       li->li_dbcachewsync = 1;
+
        /* default file creation mode */
        li->li_mode = DEFAULT_MODE;