View Issue Details

IDProjectCategoryView StatusLast Update
0005100Talermerchant backendpublic2024-01-12 13:04
ReporterChristian Grothoff Assigned ToMarcello Stanisci Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionfixed 
Platformi7OSDebian GNU/LinuxOS Versionsqueeze
Product Versiongit (master) 
Target Version0.6Fixed in Version0.6 
Summary0005100: taler-merchant-generate-payments expansion to cover /track/ APIs
DescriptionFor stress-testing, we should add a command-line option to have taler-merchant-generate-payments also stress-test the /track/-APIs.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Marcello Stanisci

2017-07-10 11:07

reporter   ~0012323

Can you elaborate more on this? The payments generator does just payments, how/why could it deal with /track?

Christian Grothoff

2017-10-23 08:40

manager   ~0012506

Mostly it should just _call_ the /track APIs to generate the respective load (it can throw the results away).

Marcello Stanisci

2018-01-05 09:26

reporter   ~0012732

Still not super convinced: why using this utility to stress-test /track and
not the usual merchant-lib test cases?

Christian Grothoff

2018-01-18 09:39

manager   ~0012796

We gain the ability to test the performance of the /track APIs as well.

Basically, I want to be able to see if the database scales for *all*
relevant operations. Imagine we have a missing index for some /track
operation. We could then see that if we

1) generate 1M payments
2) run 10k /track operations

and things are awfully slow. Then we can optimize (either for faster
payments or faster track or both). OTOH, if you only optimize for a
subset of possible operations, _removing_ the index for /track would be
beneficial as maintaining the index is costly.

Note that both are perfectly legitimate: you may have a merchant that
really doesn't care about /track and wants to optimize payments only!
So if we can have the payments generator create X payments and then Y
/track operations, some database administrators may tune for X=10M and
Y=0, and others for X=1M and Y=1M.

What is important to me is that the tool allows a comprehensive
performance assessment (and also a full feature test that can be run against a production DB setup, not just a unit test).

Marcello Stanisci

2018-05-03 11:47

reporter   ~0012922

fyi: the payment generator uses the old interpreter style to run
its commands. Something suggests to switch to the new "traits-based"
style for it as well.

Marcello Stanisci

2018-05-03 11:48

reporter   ~0012923

Basically, it will behave the same way as the test cases do, but
we should be able to pass those three parameters: (1) how many payments,
(2) how many /track operations, and (3) which database we want to be filled
up with generated data.

Marcello Stanisci

2018-05-03 11:52

reporter   ~0012924

mm, maybe (3) is not needed, both exchange and merchant are supposed
to run against their ordinary config files, which will instruct them
about the right database to use.

Marcello Stanisci

2018-05-11 14:08

reporter   ~0012925

Commit 435390e has the final version.

Issue History

Date ModifiedUsernameFieldChange
2017-06-29 17:18Christian GrothoffNew Issue
2017-06-29 17:18Christian GrothoffStatusnew => assigned
2017-06-29 17:18Christian GrothoffAssigned To => Marcello Stanisci
2017-07-10 11:07Marcello StanisciNote Added: 0012323
2017-10-23 08:40Christian GrothoffTarget Version => 0.6
2017-10-23 08:40Christian GrothoffNote Added: 0012506
2018-01-05 09:26Marcello StanisciNote Added: 0012732
2018-01-18 09:39Christian GrothoffNote Added: 0012796
2018-05-03 11:47Marcello StanisciNote Added: 0012922
2018-05-03 11:48Marcello StanisciNote Added: 0012923
2018-05-03 11:52Marcello StanisciNote Added: 0012924
2018-05-11 14:08Marcello StanisciNote Added: 0012925
2018-05-11 14:08Marcello StanisciStatusassigned => informing
2018-05-11 14:08Marcello StanisciResolutionopen => fixed
2018-06-12 07:00Christian GrothoffFixed in Version => 0.6
2019-12-20 18:12Christian GrothoffStatusinforming => closed
2024-01-12 13:04Christian GrothoffCategorymerchant backend API (C) => mechant backend
2025-03-22 13:09Christian GrothoffCategorymechant backend => merchant backend