summaryrefslogtreecommitdiff
path: root/src/include/taler_auditordb_plugin.h
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2018-10-27 21:27:23 +0200
committerChristian Grothoff <christian@grothoff.org>2018-10-27 21:27:23 +0200
commit7b62deabac967c2ba94502211ffd553eda572622 (patch)
treed3293140c44c17ee77071062bec2bd1a49588ccd /src/include/taler_auditordb_plugin.h
parent2024ccd2f9cc3465a008a88c836be9ce26694b19 (diff)
downloadexchange-7b62deabac967c2ba94502211ffd553eda572622.tar.gz
exchange-7b62deabac967c2ba94502211ffd553eda572622.tar.bz2
exchange-7b62deabac967c2ba94502211ffd553eda572622.zip
split up progress points of auditor by coin/reserve/aggregation to minimize DB conflicts
Diffstat (limited to 'src/include/taler_auditordb_plugin.h')
-rw-r--r--src/include/taler_auditordb_plugin.h162
1 files changed, 139 insertions, 23 deletions
diff --git a/src/include/taler_auditordb_plugin.h b/src/include/taler_auditordb_plugin.h
index fb393052..ae8cafc0 100644
--- a/src/include/taler_auditordb_plugin.h
+++ b/src/include/taler_auditordb_plugin.h
@@ -131,10 +131,10 @@ struct TALER_AUDITORDB_WireProgressPoint
/**
- * Structure for remembering the auditor's progress over the
- * various tables and (auditor) transactions.
+ * Structure for remembering the auditor's progress over the various
+ * tables and (auditor) transactions when analyzing reserves.
*/
-struct TALER_AUDITORDB_ProgressPoint
+struct TALER_AUDITORDB_ProgressPointReserve
{
/**
* last_reserve_in_serial_id serial ID of the last reserve_in transfer the auditor processed
@@ -158,6 +158,29 @@ struct TALER_AUDITORDB_ProgressPoint
*/
uint64_t last_reserve_close_serial_id;
+};
+
+
+/**
+ * Structure for remembering the auditor's progress over the various
+ * tables and (auditor) transactions when analyzing aggregations.
+ */
+struct TALER_AUDITORDB_ProgressPointAggregation
+{
+
+ /**
+ * last_prewire_serial_id serial ID of the last prewire transfer the auditor processed
+ */
+ uint64_t last_wire_out_serial_id;
+};
+
+
+/**
+ * Structure for remembering the auditor's progress over the various
+ * tables and (auditor) transactions when analyzing coins.
+ */
+struct TALER_AUDITORDB_ProgressPointCoin
+{
/**
* last_reserve_out_serial_id serial ID of the last withdraw the auditor processed
*/
@@ -178,11 +201,6 @@ struct TALER_AUDITORDB_ProgressPoint
*/
uint64_t last_refund_serial_id;
- /**
- * last_prewire_serial_id serial ID of the last prewire transfer the auditor processed
- */
- uint64_t last_wire_out_serial_id;
-
};
@@ -473,14 +491,14 @@ struct TALER_AUDITORDB_Plugin
* @param cls the @e cls of this struct with the plugin-specific state
* @param session connection to use
* @param master_pub master key of the exchange
- * @param pp where is the auditor in processing
+ * @param ppc where is the auditor in processing
* @return transaction status code
*/
enum GNUNET_DB_QueryStatus
- (*insert_auditor_progress)(void *cls,
- struct TALER_AUDITORDB_Session *session,
- const struct TALER_MasterPublicKeyP *master_pub,
- const struct TALER_AUDITORDB_ProgressPoint *pp);
+ (*insert_auditor_progress_coin)(void *cls,
+ struct TALER_AUDITORDB_Session *session,
+ const struct TALER_MasterPublicKeyP *master_pub,
+ const struct TALER_AUDITORDB_ProgressPointCoin *ppc);
/**
@@ -490,14 +508,14 @@ struct TALER_AUDITORDB_Plugin
* @param cls the @e cls of this struct with the plugin-specific state
* @param session connection to use
* @param master_pub master key of the exchange
- * @param pp where is the auditor in processing
+ * @param ppc where is the auditor in processing
* @return transaction status code
*/
enum GNUNET_DB_QueryStatus
- (*update_auditor_progress)(void *cls,
- struct TALER_AUDITORDB_Session *session,
- const struct TALER_MasterPublicKeyP *master_pub,
- const struct TALER_AUDITORDB_ProgressPoint *pp);
+ (*update_auditor_progress_coin)(void *cls,
+ struct TALER_AUDITORDB_Session *session,
+ const struct TALER_MasterPublicKeyP *master_pub,
+ const struct TALER_AUDITORDB_ProgressPointCoin *ppc);
/**
@@ -506,14 +524,112 @@ struct TALER_AUDITORDB_Plugin
* @param cls the @e cls of this struct with the plugin-specific state
* @param session connection to use
* @param master_pub master key of the exchange
- * @param[out] pp set to where the auditor is in processing
+ * @param[out] ppc set to where the auditor is in processing
* @return transaction status code
*/
enum GNUNET_DB_QueryStatus
- (*get_auditor_progress)(void *cls,
- struct TALER_AUDITORDB_Session *session,
- const struct TALER_MasterPublicKeyP *master_pub,
- struct TALER_AUDITORDB_ProgressPoint *pp);
+ (*get_auditor_progress_coin)(void *cls,
+ struct TALER_AUDITORDB_Session *session,
+ const struct TALER_MasterPublicKeyP *master_pub,
+ struct TALER_AUDITORDB_ProgressPointCoin *ppc);
+
+ /**
+ * Insert information about the auditor's progress with an exchange's
+ * data.
+ *
+ * @param cls the @e cls of this struct with the plugin-specific state
+ * @param session connection to use
+ * @param master_pub master key of the exchange
+ * @param ppr where is the auditor in processing
+ * @return transaction status code
+ */
+ enum GNUNET_DB_QueryStatus
+ (*insert_auditor_progress_reserve)(void *cls,
+ struct TALER_AUDITORDB_Session *session,
+ const struct TALER_MasterPublicKeyP *master_pub,
+ const struct TALER_AUDITORDB_ProgressPointReserve *ppr);
+
+
+ /**
+ * Update information about the progress of the auditor. There
+ * must be an existing record for the exchange.
+ *
+ * @param cls the @e cls of this struct with the plugin-specific state
+ * @param session connection to use
+ * @param master_pub master key of the exchange
+ * @param ppr where is the auditor in processing
+ * @return transaction status code
+ */
+ enum GNUNET_DB_QueryStatus
+ (*update_auditor_progress_reserve)(void *cls,
+ struct TALER_AUDITORDB_Session *session,
+ const struct TALER_MasterPublicKeyP *master_pub,
+ const struct TALER_AUDITORDB_ProgressPointReserve *ppr);
+
+
+ /**
+ * Get information about the progress of the auditor.
+ *
+ * @param cls the @e cls of this struct with the plugin-specific state
+ * @param session connection to use
+ * @param master_pub master key of the exchange
+ * @param[out] ppr set to where the auditor is in processing
+ * @return transaction status code
+ */
+ enum GNUNET_DB_QueryStatus
+ (*get_auditor_progress_reserve)(void *cls,
+ struct TALER_AUDITORDB_Session *session,
+ const struct TALER_MasterPublicKeyP *master_pub,
+ struct TALER_AUDITORDB_ProgressPointReserve *ppr);
+
+ /**
+ * Insert information about the auditor's progress with an exchange's
+ * data.
+ *
+ * @param cls the @e cls of this struct with the plugin-specific state
+ * @param session connection to use
+ * @param master_pub master key of the exchange
+ * @param ppa where is the auditor in processing
+ * @return transaction status code
+ */
+ enum GNUNET_DB_QueryStatus
+ (*insert_auditor_progress_aggregation)(void *cls,
+ struct TALER_AUDITORDB_Session *session,
+ const struct TALER_MasterPublicKeyP *master_pub,
+ const struct TALER_AUDITORDB_ProgressPointAggregation *ppa);
+
+
+ /**
+ * Update information about the progress of the auditor. There
+ * must be an existing record for the exchange.
+ *
+ * @param cls the @e cls of this struct with the plugin-specific state
+ * @param session connection to use
+ * @param master_pub master key of the exchange
+ * @param ppa where is the auditor in processing
+ * @return transaction status code
+ */
+ enum GNUNET_DB_QueryStatus
+ (*update_auditor_progress_aggregation)(void *cls,
+ struct TALER_AUDITORDB_Session *session,
+ const struct TALER_MasterPublicKeyP *master_pub,
+ const struct TALER_AUDITORDB_ProgressPointAggregation *ppa);
+
+
+ /**
+ * Get information about the progress of the auditor.
+ *
+ * @param cls the @e cls of this struct with the plugin-specific state
+ * @param session connection to use
+ * @param master_pub master key of the exchange
+ * @param[out] ppa set to where the auditor is in processing
+ * @return transaction status code
+ */
+ enum GNUNET_DB_QueryStatus
+ (*get_auditor_progress_aggregation)(void *cls,
+ struct TALER_AUDITORDB_Session *session,
+ const struct TALER_MasterPublicKeyP *master_pub,
+ struct TALER_AUDITORDB_ProgressPointAggregation *pp);
/**