------------------------------------------------------------ revno: 709 revision-id:[EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Andrew Tridgell <[EMAIL PROTECTED]> branch nick: tridge.kantana timestamp: Sat 2008-01-05 09:36:53 +1100 message: a new tunable DatabaseMaxDead that enables the tdb max dead cache logic modified: include/ctdb.h ctdb.h-20061117234101-o3qt14umlg9en8z0-11 include/ctdb_private.h ctdb_private.h-20061117234101-o3qt14umlg9en8z0-13 server/ctdb_ltdb_server.c ctdb_ltdb_server.c-20070607120348-7r182h0nlqxysyss-1 server/ctdb_tunables.c ctdb_tunables.c-20070604095258-4m34d7cm1qa7yos9-1 === modified file 'include/ctdb.h' --- a/include/ctdb.h 2007-11-29 23:00:04 +0000 +++ b/include/ctdb.h 2008-01-04 22:36:53 +0000 @@ -297,7 +297,36 @@ struct ctdb_ltdb_header *headers; TDB_DATA *data; }; -int ctdb_ctrl_pulldb(struct ctdb_context *ctdb, uint32_t destnode, uint32_t dbid, uint32_t lmaster, TALLOC_CTX *mem_ctx, struct ctdb_key_list *keys); + +int ctdb_ctrl_pulldb( + struct ctdb_context *ctdb, uint32_t destnode, uint32_t dbid, + uint32_t lmaster, TALLOC_CTX *mem_ctx, + struct timeval timeout, TDB_DATA *outdata); + +struct ctdb_client_control_state *ctdb_ctrl_pulldb_send( + struct ctdb_context *ctdb, uint32_t destnode, uint32_t dbid, + uint32_t lmaster, TALLOC_CTX *mem_ctx, struct timeval timeout); + +int ctdb_ctrl_pulldb_recv( + struct ctdb_context *ctdb, + TALLOC_CTX *mem_ctx, struct ctdb_client_control_state *state, + TDB_DATA *outdata); + +int ctdb_ctrl_pushdb( + struct ctdb_context *ctdb, uint32_t destnode, uint32_t dbid, + TALLOC_CTX *mem_ctx, + struct timeval timeout, TDB_DATA indata); + +struct ctdb_client_control_state *ctdb_ctrl_pushdb_send( + struct ctdb_context *ctdb, uint32_t destnode, uint32_t dbid, + TALLOC_CTX *mem_ctx, struct timeval timeout, + TDB_DATA indata); + +int ctdb_ctrl_pushdb_recv( + struct ctdb_context *ctdb, TALLOC_CTX *mem_ctx, + struct ctdb_client_control_state *state); + + int ctdb_ctrl_copydb(struct ctdb_context *ctdb, struct timeval timeout, uint32_t sourcenode, uint32_t destnode, uint32_t dbid, uint32_t lmaster,
=== modified file 'include/ctdb_private.h' --- a/include/ctdb_private.h 2007-11-29 23:09:54 +0000 +++ b/include/ctdb_private.h 2008-01-04 22:36:53 +0000 @@ -86,6 +86,7 @@ uint32_t recovery_grace_period; uint32_t recovery_ban_period; uint32_t database_hash_size; + uint32_t database_max_dead; uint32_t rerecovery_timeout; uint32_t enable_bans; uint32_t deterministic_public_ips; @@ -1058,8 +1059,25 @@ void ctdb_node_connected(struct ctdb_node *node); bool ctdb_blocking_freeze(struct ctdb_context *ctdb); int32_t ctdb_control_max_rsn(struct ctdb_context *ctdb, TDB_DATA indata, TDB_DATA *outdata); + +struct ctdb_client_control_state *ctdb_ctrl_set_rsn_nonempty_send( + struct ctdb_context *ctdb, TALLOC_CTX *mem_ctx, struct timeval timeout, + uint32_t destnode, uint32_t db_id, uint64_t rsn); +int ctdb_ctrl_set_rsn_nonempty_recv(struct ctdb_context *ctdb, + struct ctdb_client_control_state *state); +int ctdb_ctrl_set_rsn_nonempty(struct ctdb_context *ctdb, struct timeval timeout, + uint32_t destnode, uint32_t db_id, uint64_t rsn); +struct ctdb_client_control_state *ctdb_ctrl_delete_low_rsn_send( + struct ctdb_context *ctdb, TALLOC_CTX *mem_ctx, struct timeval timeout, + uint32_t destnode, uint32_t db_id, uint64_t rsn); +int ctdb_ctrl_delete_low_rsn_recv(struct ctdb_context *ctdb, + struct ctdb_client_control_state *state); +int ctdb_ctrl_delete_low_rsn(struct ctdb_context *ctdb, struct timeval timeout, + uint32_t destnode, uint32_t db_id, uint64_t rsn); + int32_t ctdb_control_set_rsn_nonempty(struct ctdb_context *ctdb, TDB_DATA indata, TDB_DATA *outdata); int32_t ctdb_control_delete_low_rsn(struct ctdb_context *ctdb, TDB_DATA indata, TDB_DATA *outdata); + int ctdb_ctrl_get_max_rsn(struct ctdb_context *ctdb, struct timeval timeout, uint32_t destnode, uint32_t db_id, uint64_t *max_rsn); int ctdb_ctrl_set_rsn_nonempty(struct ctdb_context *ctdb, struct timeval timeout, === modified file 'server/ctdb_ltdb_server.c' --- a/server/ctdb_ltdb_server.c 2007-09-21 03:47:40 +0000 +++ b/server/ctdb_ltdb_server.c 2008-01-04 22:36:53 +0000 @@ -260,6 +260,9 @@ DLIST_ADD(ctdb->db_list, ctdb_db); + /* setting this can help some high churn databases */ + tdb_set_max_dead(ctdb_db->ltdb->tdb, ctdb->tunable.database_max_dead); + /* all databases support the "null" function. we need this in order to do forced migration of records === modified file 'server/ctdb_tunables.c' --- a/server/ctdb_tunables.c 2007-12-04 04:18:27 +0000 +++ b/server/ctdb_tunables.c 2008-01-04 22:36:53 +0000 @@ -42,6 +42,7 @@ { "RecoveryGracePeriod", 60, offsetof(struct ctdb_tunable, recovery_grace_period) }, { "RecoveryBanPeriod", 300, offsetof(struct ctdb_tunable, recovery_ban_period) }, { "DatabaseHashSize", 10000, offsetof(struct ctdb_tunable, database_hash_size) }, + { "DatabaseMaxDead", 5, offsetof(struct ctdb_tunable, database_max_dead) }, { "RerecoveryTimeout", 10, offsetof(struct ctdb_tunable, rerecovery_timeout) }, { "EnableBans", 1, offsetof(struct ctdb_tunable, enable_bans) }, { "DeterministicIPs", 1, offsetof(struct ctdb_tunable, deterministic_public_ips) },