Rev 741: nicer outut from repack and vacuum in http://samba.org/~tridge/ctdb

tridge at samba.org tridge at samba.org
Tue Jan 8 12:02:44 GMT 2008


------------------------------------------------------------
revno: 741
revision-id:tridge at samba.org-20080108120243-s1ftuplc981ix1ua
parent: tridge at samba.org-20080108113644-4uhf1lk5hh9szv1o
committer: Andrew Tridgell <tridge at samba.org>
branch nick: tridge.stable
timestamp: Tue 2008-01-08 23:02:43 +1100
message:
  nicer outut from repack and vacuum
modified:
  tools/ctdb.c                   ctdb_control.c-20070426122705-9ehj1l5lu2gn9kuj-1
  tools/ctdb_vacuum.c            ctdb_vacuum.c-20080108053634-3zs2bdddzs4r1e1t-1
=== modified file 'tools/ctdb.c'
--- a/tools/ctdb.c	2008-01-08 06:23:27 +0000
+++ b/tools/ctdb.c	2008-01-08 12:02:43 +0000
@@ -1117,6 +1117,8 @@
 	struct event_context *ev;
 	const char *control;
 
+	setlinebuf(stdout);
+	
 	/* set some defaults */
 	options.timelimit = 3;
 	options.pnn = CTDB_CURRENT_NODE;

=== modified file 'tools/ctdb_vacuum.c'
--- a/tools/ctdb_vacuum.c	2008-01-08 11:36:44 +0000
+++ b/tools/ctdb_vacuum.c	2008-01-08 12:02:43 +0000
@@ -128,7 +128,8 @@
 /*
   vacuum one record
  */
-static int ctdb_vacuum_one(struct ctdb_context *ctdb, TDB_DATA key, struct ctdb_db_context *ctdb_db)
+static int ctdb_vacuum_one(struct ctdb_context *ctdb, TDB_DATA key, 
+			   struct ctdb_db_context *ctdb_db, uint32_t *count)
 {
 	TDB_DATA data;
 	struct ctdb_ltdb_header *hdr;
@@ -211,6 +212,8 @@
 	tdb_chainunlock(ctdb_db->ltdb->tdb, key);
 	free(data.dptr);
 
+	(*count)++;
+
 	return 0;
 }
 
@@ -219,7 +222,7 @@
   vacuum records for which we are the lmaster 
  */
 static int ctdb_vacuum_local(struct ctdb_context *ctdb, struct ctdb_control_pulldb_reply *list, 
-			     struct ctdb_db_context *ctdb_db)
+			     struct ctdb_db_context *ctdb_db, uint32_t *count)
 {
 	struct ctdb_rec_data *r;
 	int i;
@@ -232,7 +235,7 @@
 		TDB_DATA key;
 		key.dptr = &r->data[0];
 		key.dsize = r->keylen;
-		if (ctdb_vacuum_one(ctdb, key, ctdb_db) != 0) {
+		if (ctdb_vacuum_one(ctdb, key, ctdb_db, count) != 0) {
 			return -1;
 		}
 	}
@@ -374,11 +377,11 @@
 			continue;
 		}
 
-		printf("Found %u records for lmaster %u\n", vdata->list[i]->count, i);		
-
 		/* for records where we are not the lmaster, tell the lmaster to fetch the record */
 		if (ctdb->vnn_map->map[i] != ctdb->pnn) {
 			TDB_DATA data;
+			printf("Found %u records for lmaster %u in '%s'\n", vdata->list[i]->count, i, name);
+
 			data.dsize = talloc_get_size(vdata->list[i]);
 			data.dptr  = (void *)vdata->list[i];
 			if (ctdb_send_message(ctdb, ctdb->vnn_map->map[i], CTDB_SRVID_VACUUM_FETCH, data) != 0) {
@@ -389,13 +392,24 @@
 			}
 			continue;
 		}
+	}	
+
+	for (i=0;i<ctdb->vnn_map->size;i++) {
+		uint32_t count = 0;
+
+		if (vdata->list[i]->count == 0) {
+			continue;
+		}
 
 		/* for records where we are the lmaster, we can try to delete them */
-		if (ctdb_vacuum_local(ctdb, vdata->list[i], ctdb_db) != 0) {
+		if (ctdb_vacuum_local(ctdb, vdata->list[i], ctdb_db, &count) != 0) {
 			DEBUG(0,(__location__ " Deletion error in vacuuming '%s'\n", name));
 			talloc_free(vdata);
 			return -1;					
 		}
+		if (count != 0) {
+			printf("Deleted %u records on this node from '%s'\n", count, name);
+		}
 	}	
 
 	/* this ensures we run our event queue */
@@ -576,7 +590,7 @@
 		return 0;
 	}
 
-	DEBUG(0,("Repacking %s with %u freelist entries\n", name, size));
+	printf("Repacking %s with %u freelist entries\n", name, size);
 
 	if (ctdb_repack_tdb(ctdb_db->ltdb->tdb) != 0) {
 		DEBUG(0,(__location__ " Failed to repack '%s'\n", name));



More information about the samba-cvs mailing list