[Sheepdog] [PATCH 1/2] object cache: make sync flush as default

Liu Yuan namei.unix at gmail.com
Thu Apr 12 16:53:21 CEST 2012


From: Liu Yuan <tailai.ly at taobao.com>


Signed-off-by: Liu Yuan <tailai.ly at taobao.com>
---
 sheep/ops.c        |    2 +-
 sheep/sheep.c      |   10 +++++-----
 sheep/sheep_priv.h |    2 +-
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/sheep/ops.c b/sheep/ops.c
index ee6dee1..809ef51 100644
--- a/sheep/ops.c
+++ b/sheep/ops.c
@@ -504,7 +504,7 @@ static int local_flush_vdi(const struct sd_req *req, struct sd_rsp *rsp, void *d
 	struct object_cache *cache = find_object_cache(vid, 0);
 
 	if (cache) {
-		if (sys->sync_flush)
+		if (!sys->async_flush)
 			return object_cache_push(cache);
 		else {
 			struct flush_work *fw = xmalloc(sizeof(*fw));
diff --git a/sheep/sheep.c b/sheep/sheep.c
index 6d500ae..a0a44a9 100644
--- a/sheep/sheep.c
+++ b/sheep/sheep.c
@@ -36,6 +36,7 @@ static struct option const long_options[] = {
 	{"loglevel", required_argument, NULL, 'l'},
 	{"debug", no_argument, NULL, 'd'},
 	{"directio", no_argument, NULL, 'D'},
+	{"asyncflush", no_argument, NULL, 'a'},
 	{"zone", required_argument, NULL, 'z'},
 	{"vnodes", required_argument, NULL, 'v'},
 	{"cluster", required_argument, NULL, 'c'},
@@ -43,7 +44,7 @@ static struct option const long_options[] = {
 	{NULL, 0, NULL, 0},
 };
 
-static const char *short_options = "p:fl:dDz:v:c:h";
+static const char *short_options = "p:fl:dDaz:v:c:h";
 
 static void usage(int status)
 {
@@ -60,7 +61,7 @@ Options:\n\
   -l, --loglevel          specify the level of logging detail\n\
   -d, --debug             include debug messages in the log\n\
   -D, --directio          use direct IO when accessing the object from object cache\n\
-  -S, --sync              flush the object cache synchronously\n\
+  -a, --asyncflush        flush the object cache asynchronously\n\
   -z, --zone              specify the zone id\n\
   -v, --vnodes            specify the number of virtual nodes\n\
   -c, --cluster           specify the cluster driver\n\
@@ -134,9 +135,8 @@ int main(int argc, char **argv)
 			dprintf("direct IO mode\n");
 			sys->use_directio = 1;
 			break;
-		case 'S':
-			dprintf("sync flush\n");
-			sys->sync_flush = 1;
+		case 'a':
+			sys->async_flush = 1;
 			break;
 		case 'z':
 			zone = strtol(optarg, &p, 10);
diff --git a/sheep/sheep_priv.h b/sheep/sheep_priv.h
index c8d9bb4..78cc8aa 100644
--- a/sheep/sheep_priv.h
+++ b/sheep/sheep_priv.h
@@ -150,7 +150,7 @@ struct cluster_info {
 	uint32_t recovered_epoch;
 
 	int use_directio;
-	uint8_t sync_flush;
+	uint8_t async_flush;
 
 	struct work_queue *event_wqueue;
 	struct work_queue *gateway_wqueue;
-- 
1.7.8.2




More information about the sheepdog mailing list