diff --git a/src/mintdb/perf_taler_mintdb.c b/src/mintdb/perf_taler_mintdb.c
index 0b1e48075..a39fdd811 100644
--- a/src/mintdb/perf_taler_mintdb.c
+++ b/src/mintdb/perf_taler_mintdb.c
@@ -33,30 +33,41 @@ main (int argc, char ** argv)
struct GNUNET_CONFIGURATION_Handle *config;
struct PERF_TALER_MINTDB_Cmd test[] =
{
- PERF_TALER_MINTDB_INIT_CMD_LOOP ("loop_db_init_deposit",10000),
- PERF_TALER_MINTDB_INIT_CMD_START_TRANSACTION ("start_transaction_init"),
- PERF_TALER_MINTDB_INIT_CMD_INSERT_DEPOSIT ("init_deposit_insert"),
- PERF_TALER_MINTDB_INIT_CMD_COMMIT_TRANSACTION ("commit_transaction_init"),
- PERF_TALER_MINTDB_INIT_CMD_SAVE_ARRAY ("array_depo",
- "loop_db_init_deposit",
- "init_deposit_insert",
- 100,
- PERF_TALER_MINTDB_DEPOSIT),
+ PERF_TALER_MINTDB_INIT_CMD_LOOP ("loop_db_init_deposit",
+ PERF_TALER_MINTDB_NB_DEPOSIT_INIT),
+ PERF_TALER_MINTDB_INIT_CMD_START_TRANSACTION ("start_transaction_init"),
+ PERF_TALER_MINTDB_INIT_CMD_INSERT_DEPOSIT ("init_deposit_insert"),
+ PERF_TALER_MINTDB_INIT_CMD_COMMIT_TRANSACTION ("commit_transaction_init"),
+ PERF_TALER_MINTDB_INIT_CMD_DEBUG("INIT_LOOP"),
+ PERF_TALER_MINTDB_INIT_CMD_SAVE_ARRAY ("array_depo",
+ "loop_db_init_deposit",
+ "init_deposit_insert",
+ PERF_TALER_MINTDB_NB_DEPOSIT_GET,
+ PERF_TALER_MINTDB_DEPOSIT),
PERF_TALER_MINTDB_INIT_CMD_END_LOOP ("endloop_init_deposit",
"loop_db_init_deposit"),
- PERF_TALER_MINTDB_INIT_CMD_DEBUG("Fin loop 1"),
- PERF_TALER_MINTDB_INIT_CMD_LOOP ("loop_deposit_get",100),
- PERF_TALER_MINTDB_INIT_CMD_START_TRANSACTION ("start_transaction_get"),
- PERF_TALER_MINTDB_INIT_CMD_LOAD_ARRAY("load deposit",
- "loop_deposit_get",
- "array_depo"),
- PERF_TALER_MINTDB_INIT_CMD_GET_DEPOSIT("get_deposit",
- "load_deposit"),
- PERF_TALER_MINTDB_INIT_CMD_COMMIT_TRANSACTION ("commit_transaction_init"),
- PERF_TALER_MINTDB_INIT_CMD_END_LOOP("stop2", "loop_deposit_get"),
- PERF_TALER_MINTDB_INIT_CMD_END("end")
+ PERF_TALER_MINTDB_INIT_CMD_DEBUG("INIT_END"),
+ // End of database initialization
+ PERF_TALER_MINTDB_INIT_CMD_GET_TIME ("deposit_get_start"),
+ PERF_TALER_MINTDB_INIT_CMD_LOOP ("loop_deposit_get",
+ PERF_TALER_MINTDB_NB_DEPOSIT_GET),
+ PERF_TALER_MINTDB_INIT_CMD_START_TRANSACTION ("start_transaction_get"),
+ PERF_TALER_MINTDB_INIT_CMD_LOAD_ARRAY ("load deposit",
+ "loop_deposit_get",
+ "array_depo"),
+ PERF_TALER_MINTDB_INIT_CMD_GET_DEPOSIT ("get_deposit",
+ "load_deposit"),
+ PERF_TALER_MINTDB_INIT_CMD_COMMIT_TRANSACTION ("commit_transaction_init"),
+ PERF_TALER_MINTDB_INIT_CMD_END_LOOP ("stop2", "loop_deposit_get"),
+ PERF_TALER_MINTDB_INIT_CMD_GET_TIME ("deposit_get_end"),
+ PERF_TALER_MINTDB_INIT_CMD_GAUGER ("deposit_get_commit",
+ "deposit_get_start",
+ "deposit_get_end",
+ "time per deposit check",
+ PERF_TALER_MINTDB_NB_DEPOSIT_GET),
+ PERF_TALER_MINTDB_INIT_CMD_END("end"),
};
- // Plugin init
+ // Plugin init
config = GNUNET_CONFIGURATION_create();
GNUNET_CONFIGURATION_load(config, "./test-mint-db-postgres.conf");
GNUNET_assert (NULL !=
diff --git a/src/mintdb/perf_taler_mintdb_interpreter.c b/src/mintdb/perf_taler_mintdb_interpreter.c
index d7d3a6d00..4d7a17cbb 100644
--- a/src/mintdb/perf_taler_mintdb_interpreter.c
+++ b/src/mintdb/perf_taler_mintdb_interpreter.c
@@ -407,7 +407,7 @@ interpret (struct PERF_TALER_MINTDB_interpreter_state *state)
GAUGER ("MINTDB",
state->cmd[state->i].details.gauger.description,
- elapsed_ms,
+ elapsed_ms / state->cmd[state->i].details.gauger.divide,
"milliseconds");
}
break;
diff --git a/src/mintdb/perf_taler_mintdb_interpreter.h b/src/mintdb/perf_taler_mintdb_interpreter.h
index 798660313..164379076 100644
--- a/src/mintdb/perf_taler_mintdb_interpreter.h
+++ b/src/mintdb/perf_taler_mintdb_interpreter.h
@@ -58,7 +58,7 @@
.exposed_type = PERF_TALER_MINTDB_NONE , \
.details.loop = { \
.max_iterations = _iter , \
- .curr_iteration = 0} \
+ .curr_iteration = 0 } \
}
/**
@@ -86,15 +86,16 @@
* Commits the duration between @a _label_start and @a _label_stop
* to Gauger with @a _description explaining
*/
-#define PERF_TALER_MINTDB_INIT_CMD_GAUGER(_label, _start_time, _stop_time, _description) \
+#define PERF_TALER_MINTDB_INIT_CMD_GAUGER(_label, _label_start, _label_stop, _description, _divide) \
{ \
.command = PERF_TALER_MINTDB_CMD_GAUGER, \
.label = _label, \
.exposed_type = PERF_TALER_MINTDB_NONE, \
.details.gauger = { \
.label_start = _label_start, \
- .label_end = _label_end, \
- .description = _description \
+ .label_stop = _label_stop, \
+ .description = _description, \
+ .divide = _divide, \
} \
}
@@ -249,9 +250,7 @@ enum PERF_TALER_MINTDB_Type
PERF_TALER_MINTDB_TIME,
PERF_TALER_MINTDB_DEPOSIT,
PERF_TALER_MINTDB_BLINDCOIN,
- PERF_TALER_MINTDB_RESERVE_KEY,
PERF_TALER_MINTDB_RESERVE,
- PERF_TALER_MINTDB_DENOMINATION_KEY,
PERF_TALER_MINTDB_DENOMINATION_INFO,
PERF_TALER_MINTDB_COIN_INFO,
};
@@ -266,7 +265,6 @@ union PERF_TALER_MINTDB_Data
struct TALER_MINTDB_Deposit *deposit;
struct TALER_MINTDB_CollectableBlindcoin *blindcoin;
struct TALER_MINTDB_Reserve *reserve;
- struct TALER_DenominationPublicKey *dpk;
struct TALER_MINTDB_DenominationKeyIssueInformation *dki;
struct TALER_CoinPublicInfo *cpi;
};
@@ -334,8 +332,11 @@ enum PERF_TALER_MINTDB_CMD_Name
// Insert informations about a denomination key in the database
PERF_TALER_MINTDB_CMD_INSERT_DENOMINATION,
- // polls the database for informations about a specific denomination key
- PERF_TALER_MINTDB_CMD_GET_DENOMINATION
+ // Polls the database for informations about a specific denomination key
+ PERF_TALER_MINTDB_CMD_GET_DENOMINATION,
+
+ // Refresh a coin
+ PERF_TALER_MINTDB_CMD_REFRESH_COIN,
};
@@ -381,6 +382,12 @@ struct PERF_TALER_MINTDB_CMD_gauger_details
* Description of the metric, used in GAUGER
*/
const char *description;
+
+ /**
+ * Constant the result needs to be divided by
+ * to get the result per unit
+ */
+ float divide;
};
@@ -470,6 +477,19 @@ struct PERF_TALER_MINTDB_CMD_get_denomination_details
const char *label_source;
};
+
+/**
+ * Extra data requiered for refreshing coins
+ */
+struct PERF_TALER_MINTDB_CMD_refresh_coin_details
+{
+ /**
+ * The label of the coin to refresh
+ */
+ const char *label_source;
+};
+
+
/**
* Contains extra data required for any command
*/
@@ -483,6 +503,7 @@ union PERF_TALER_MINTDB_CMD_Details
struct PERF_TALER_MINTDB_CMD_get_deposit_details get_deposit;
struct PERF_TALER_MINTDB_CMD_get_reserve_details get_reserve;
struct PERF_TALER_MINTDB_CMD_get_denomination_details get_denomination;
+ struct PERF_TALER_MINTDB_CMD_refresh_coin_details refresh;
};
@@ -520,7 +541,7 @@ struct PERF_TALER_MINTDB_Cmd
* GNUNET_YES if the exposed value hav been saved during last loop iteration
* GNUNET_NO if it hasn't
*/
- int exposed_saved;
+ unsigned int exposed_saved;
};
@@ -533,5 +554,4 @@ PERF_TALER_MINTDB_interpret(
struct TALER_MINTDB_Plugin *db_plugin,
struct PERF_TALER_MINTDB_Cmd cmd[]);
-
#endif
diff --git a/src/mintdb/perf_taler_mintdb_values.h b/src/mintdb/perf_taler_mintdb_values.h
index f180c8d7e..4b982b8bd 100644
--- a/src/mintdb/perf_taler_mintdb_values.h
+++ b/src/mintdb/perf_taler_mintdb_values.h
@@ -1,18 +1,18 @@
/*
- This file is part of TALER
- Copyright (C) 2014, 2015 Christian Grothoff (and other contributing authors)
+ This file is part of TALER
+ Copyright (C) 2014, 2015 Christian Grothoff (and other contributing authors)
- TALER is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3, or (at your option) any later version.
+ TALER is free software; you can redistribute it and/or modify it under the
+ terms of the GNU General Public License as published by the Free Software
+ Foundation; either version 3, or (at your option) any later version.
- TALER is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- You should have received a copy of the GNU General Public License along with
- TALER; see the file COPYING. If not, If not, see
-*/
+ You should have received a copy of the GNU General Public License along with
+ TALER; see the file COPYING. If not, If not, see
+ */
/**
* @file mintdb/perf_taler_mintdb_values.h
* @brief Values for tweaking the performance analysis
@@ -23,15 +23,9 @@
-#define NB_DEPOSIT_INIT 100000
-#define NB_DEPOSIT_GET 1000
-#define NB_DEPOSIT_MARGIN 10000
+#define PERF_TALER_MINTDB_NB_DEPOSIT_INIT 100
+#define PERF_TALER_MINTDB_NB_DEPOSIT_GET 10
-#define NB_BLINDCOIN_INIT 100000
-
-
-// Temporary macro to compile
-#define GAUGER(a,b,c,d)
#endif