View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0010939 | Taler | wallet-core | public | 2026-01-28 23:44 | 2026-01-30 01:42 |
| Reporter | Florian Dold | Assigned To | Florian Dold | ||
| Priority | urgent | Severity | major | Reproducibility | have not tried |
| Status | resolved | Resolution | fixed | ||
| Target Version | 1.4 | ||||
| Summary | 0010939: wallet does excessive number of reads in denomination object store for simple requests | ||||
| Description | Very likely caused by the computation of refresh costs in the fee computation for various operations. | ||||
| Tags | No tags attached. | ||||
|
|
$ # ... withdraw CHF:15 from rusty $ taler-wallet-cli p2p check-push-debit CHF:7 [...] database stats: { "primitiveStatements": 0, "readTransactions": 9, "writeTransactions": 15, "readsPerStore": { "metaConfig": 1, "fixups": 3, "config": 2, "exchanges": 20, "denominations": 79, "exchangeBaseUrlFixups": 1, "operationRetries": 3 }, "readsPerIndex": { "exchangeDetails.byDetailsPointer": 5, "coinAvailability.byExchangeAgeAvailability": 1, "coins.byExchangeDenomPubHashAndAgeAndStatus": 1, "withdrawalGroups.byStatus": 1, "depositGroups.byStatus": 1, "refreshGroups.byStatus": 1, "purchases.byStatus": 1, "peerPushDebit.byStatus": 1, "peerPushCredit.byStatus": 1, "peerPullDebit.byStatus": 1, "peerPullCredit.byStatus": 1, "recoupGroups.byStatus": 1, "denominations.byVerificationStatus": 1, "globalCurrencyExchanges.byCurrencyAndUrlAndPub": 1, "globalCurrencyAuditors.byCurrencyAndUrlAndPub": 1, "denominations.byExchangeBaseUrl": 2 }, "readItemsPerIndex": { "exchangeDetails.byDetailsPointer": 5, "coinAvailability.byExchangeAgeAvailability": 7, "coins.byExchangeDenomPubHashAndAgeAndStatus": 1, "withdrawalGroups.byStatus": 0, "depositGroups.byStatus": 0, "refreshGroups.byStatus": 0, "purchases.byStatus": 0, "peerPushDebit.byStatus": 0, "peerPushCredit.byStatus": 0, "peerPullDebit.byStatus": 0, "peerPullCredit.byStatus": 0, "recoupGroups.byStatus": 0, "denominations.byVerificationStatus": 70, "globalCurrencyExchanges.byCurrencyAndUrlAndPub": 0, "globalCurrencyAuditors.byCurrencyAndUrlAndPub": 0, "denominations.byExchangeBaseUrl": 4712 }, "readItemsPerStore": { "metaConfig": 1, "fixups": 3, "config": 2, "exchanges": 19, "denominations": 79, "exchangeBaseUrlFixups": 0, "operationRetries": 3 }, "writesPerStore": { "config": 1, "operationRetries": 2, "denominations": 70 } } |
|
|
commit 810b6d4a34b7f758c3181d6525aff77591262f0c (HEAD -> master, origin/master, origin/HEAD) Author: Florian Dold <florian@dold.me> Date: Fri Jan 30 01:26:46 2026 +0100 wallet-core: use denom families for denom selection |
|
|
Database stats for the same request after the optimization: database stats: { "primitiveStatements": 0, "readTransactions": 9, "writeTransactions": 13, "readsPerStore": { "metaConfig": 1, "fixups": 4, "config": 2, "exchanges": 20, "denominations": 9, "exchangeBaseUrlFixups": 1, "operationRetries": 3 }, "readsPerIndex": { "exchangeDetails.byDetailsPointer": 5, "coinAvailability.byExchangeAgeAvailability": 1, "coins.byExchangeDenomPubHashAndAgeAndStatus": 1, "withdrawalGroups.byStatus": 1, "depositGroups.byStatus": 1, "refreshGroups.byStatus": 1, "purchases.byStatus": 1, "peerPushDebit.byStatus": 1, "peerPushCredit.byStatus": 1, "peerPullDebit.byStatus": 1, "peerPullCredit.byStatus": 1, "recoupGroups.byStatus": 1, "denominations.byVerificationStatus": 1, "globalCurrencyExchanges.byCurrencyAndUrlAndPub": 1, "globalCurrencyAuditors.byCurrencyAndUrlAndPub": 1, "denominationFamilies.byExchangeBaseUrl": 2, "denominations.byDenominationFamilySerialAndStampExpireWithdraw": 76 }, "readItemsPerIndex": { "exchangeDetails.byDetailsPointer": 5, "coinAvailability.byExchangeAgeAvailability": 7, "coins.byExchangeDenomPubHashAndAgeAndStatus": 1, "withdrawalGroups.byStatus": 0, "depositGroups.byStatus": 0, "refreshGroups.byStatus": 0, "purchases.byStatus": 0, "peerPushDebit.byStatus": 0, "peerPushCredit.byStatus": 0, "peerPullDebit.byStatus": 0, "peerPullCredit.byStatus": 0, "recoupGroups.byStatus": 0, "denominations.byVerificationStatus": 70, "globalCurrencyExchanges.byCurrencyAndUrlAndPub": 0, "globalCurrencyAuditors.byCurrencyAndUrlAndPub": 0, "denominationFamilies.byExchangeBaseUrl": 38, "denominations.byDenominationFamilySerialAndStampExpireWithdraw": 76 }, "readItemsPerStore": { "metaConfig": 1, "fixups": 4, "config": 2, "exchanges": 19, "denominations": 9, "exchangeBaseUrlFixups": 0, "operationRetries": 3 }, "writesPerStore": { "config": 1, "operationRetries": 2 } } |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2026-01-28 23:44 | Florian Dold | New Issue | |
| 2026-01-28 23:44 | Florian Dold | Status | new => assigned |
| 2026-01-28 23:44 | Florian Dold | Assigned To | => Florian Dold |
| 2026-01-28 23:50 | Florian Dold | Note Added: 0027441 | |
| 2026-01-29 01:06 | vecirex | Relationship added | related to 0010933 |
| 2026-01-30 01:28 | Florian Dold | Status | assigned => resolved |
| 2026-01-30 01:28 | Florian Dold | Resolution | open => fixed |
| 2026-01-30 01:28 | Florian Dold | Note Added: 0027470 | |
| 2026-01-30 01:42 | Florian Dold | Note Added: 0027472 |