[SCM] CTDB repository - branch master updated - ctdb-1.0.114-80-gfa04573

Ronnie Sahlberg sahlberg at samba.org
Mon May 10 17:45:55 MDT 2010


The branch, master has been updated
       via  fa045733cb81412f0d02ab52d74eabc7efca8b3d (commit)
       via  72efc4122e37798227c3420a65ed1f706ca9ebe7 (commit)
      from  26793ad42b77c2328a00ac9a12bca813c7425245 (commit)

http://gitweb.samba.org/?p=sahlberg/ctdb.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit fa045733cb81412f0d02ab52d74eabc7efca8b3d
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Tue May 11 09:28:59 2010 +1000

    Add the number of performed recoveries to the "ctdb statistics" output.

commit 72efc4122e37798227c3420a65ed1f706ca9ebe7
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Sat May 8 22:24:11 2010 +0930

    ctdb: use full range of IDR
    
    This resolves a problem with huge numbers of requests which could overflow
    16 bits.  Fortunately, the IDR should scale reasonably well, so we can simply
    hold all the requests.
    
    Although noone checks for failure, I added a constant for that.
    
    BZ: 60540
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

-----------------------------------------------------------------------

Summary of changes:
 common/ctdb_util.c     |   10 +++-------
 include/ctdb_private.h |    2 ++
 server/ctdb_recover.c  |    1 +
 tools/ctdb.c           |    1 +
 4 files changed, 7 insertions(+), 7 deletions(-)


Changeset truncated at 500 lines:

diff --git a/common/ctdb_util.c b/common/ctdb_util.c
index 433a2ad..f73f8b0 100644
--- a/common/ctdb_util.c
+++ b/common/ctdb_util.c
@@ -159,18 +159,14 @@ void ctdb_reclock_latency(struct ctdb_context *ctdb, const char *name, double *l
 
 uint32_t ctdb_reqid_new(struct ctdb_context *ctdb, void *state)
 {
-	uint32_t id;
-
-	id  = ctdb->idr_cnt++ & 0xFFFF;
-	id |= (idr_get_new(ctdb->idr, state, 0xFFFF)<<16);
-	return id;
+	return idr_get_new(ctdb->idr, state, INT_MAX);
 }
 
 void *_ctdb_reqid_find(struct ctdb_context *ctdb, uint32_t reqid, const char *type, const char *location)
 {
 	void *p;
 
-	p = _idr_find_type(ctdb->idr, (reqid>>16)&0xFFFF, type, location);
+	p = _idr_find_type(ctdb->idr, reqid, type, location);
 	if (p == NULL) {
 		DEBUG(DEBUG_WARNING, ("Could not find idr:%u\n",reqid));
 	}
@@ -183,7 +179,7 @@ void ctdb_reqid_remove(struct ctdb_context *ctdb, uint32_t reqid)
 {
 	int ret;
 
-	ret = idr_remove(ctdb->idr, (reqid>>16)&0xFFFF);
+	ret = idr_remove(ctdb->idr, reqid);
 	if (ret != 0) {
 		DEBUG(DEBUG_ERR, ("Removing idr that does not exist\n"));
 	}
diff --git a/include/ctdb_private.h b/include/ctdb_private.h
index cb7c165..c062120 100644
--- a/include/ctdb_private.h
+++ b/include/ctdb_private.h
@@ -346,6 +346,7 @@ struct ctdb_statistics {
 	double max_call_latency;
 	double max_lockwait_latency;
 	double max_childwrite_latency;
+	uint32_t num_recoveries;
 };
 
 
@@ -1039,6 +1040,7 @@ int ctdb_socket_connect(struct ctdb_context *ctdb);
 void ctdb_latency(struct ctdb_db_context *ctdb_db, const char *name, double *latency, struct timeval t);
 void ctdb_reclock_latency(struct ctdb_context *ctdb, const char *name, double *latency, double l);
 
+#define CTDB_BAD_REQID ((uint32_t)-1)
 uint32_t ctdb_reqid_new(struct ctdb_context *ctdb, void *state);
 void *_ctdb_reqid_find(struct ctdb_context *ctdb, uint32_t reqid, const char *type, const char *location);
 void ctdb_reqid_remove(struct ctdb_context *ctdb, uint32_t reqid);
diff --git a/server/ctdb_recover.c b/server/ctdb_recover.c
index 4a1e04c..22e4898 100644
--- a/server/ctdb_recover.c
+++ b/server/ctdb_recover.c
@@ -938,6 +938,7 @@ static void ctdb_end_recovery_callback(struct ctdb_context *ctdb, int status, vo
 	struct recovery_callback_state *state = talloc_get_type(p, struct recovery_callback_state);
 
 	ctdb_enable_monitoring(ctdb);
+	ctdb->statistics.num_recoveries++;
 
 	if (status != 0) {
 		DEBUG(DEBUG_ERR,(__location__ " recovered event script failed (status %d)\n", status));
diff --git a/tools/ctdb.c b/tools/ctdb.c
index 5137846..e698c40 100644
--- a/tools/ctdb.c
+++ b/tools/ctdb.c
@@ -167,6 +167,7 @@ static void show_statistics(struct ctdb_statistics *s)
 		STATISTICS_FIELD(num_clients),
 		STATISTICS_FIELD(frozen),
 		STATISTICS_FIELD(recovering),
+		STATISTICS_FIELD(num_recoveries),
 		STATISTICS_FIELD(client_packets_sent),
 		STATISTICS_FIELD(client_packets_recv),
 		STATISTICS_FIELD(node_packets_sent),


-- 
CTDB repository


More information about the samba-cvs mailing list