summaryrefslogtreecommitdiff
path: root/source3/utils/net_cache.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2009-07-13 17:04:29 +0200
committerVolker Lendecke <vl@samba.org>2009-07-15 10:55:20 +0200
commit8a17cd810fa6cbe7b11139ff0f6f24e7bacd318b (patch)
tree5f9be97803ea334fc85a16d5d3a647018e220482 /source3/utils/net_cache.c
parented87594e5fd3251f9cb3beaca06c8eee1dcd4ed2 (diff)
downloadsamba-8a17cd810fa6cbe7b11139ff0f6f24e7bacd318b.tar.gz
samba-8a17cd810fa6cbe7b11139ff0f6f24e7bacd318b.tar.bz2
samba-8a17cd810fa6cbe7b11139ff0f6f24e7bacd318b.zip
Make gencache more stable
This provides a compromise between stability and performance: gencache is a persistent database these days that for performance reasons can not use tdb transactions for all writes. This patch splits up gencache into gencache.tdb and gencache_notrans.tdb. gencache_notrans is used with CLEAR_IF_FIRST, writes to it don't use transactions. By default every 5 minutes and when a program exits, all entries from _notrans.tdb are transferred to gencache.tdb in one transaction.
Diffstat (limited to 'source3/utils/net_cache.c')
-rw-r--r--source3/utils/net_cache.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/source3/utils/net_cache.c b/source3/utils/net_cache.c
index 74d8d29b4b..36cd12fb82 100644
--- a/source3/utils/net_cache.c
+++ b/source3/utils/net_cache.c
@@ -297,6 +297,21 @@ static int net_cache_flush(struct net_context *c, int argc, const char **argv)
return 0;
}
+static int net_cache_stabilize(struct net_context *c, int argc,
+ const char **argv)
+{
+ if (c->display_usage) {
+ d_printf("Usage:\n"
+ "net cache flush\n"
+ " Delete all cache entries.\n");
+ return 0;
+ }
+
+ if (!gencache_stabilize()) {
+ return -1;
+ }
+ return 0;
+}
/**
* Entry point to 'net cache' subfunctionality
*
@@ -362,6 +377,14 @@ int net_cache(struct net_context *c, int argc, const char **argv)
"net cache flush\n"
" Delete all cache entries"
},
+ {
+ "stabilize",
+ net_cache_stabilize,
+ NET_TRANSPORT_LOCAL,
+ "Move transient cache content to stable storage",
+ "net cache stabilize\n"
+ " Move transient cache content to stable storage"
+ },
{NULL, NULL, 0, NULL, NULL}
};