purge wallet after a specified amount of iterations

This commit is contained in:
Boss Marco 2021-11-12 17:28:11 +01:00
parent 612275df61
commit ba198eab4a
No known key found for this signature in database
GPG Key ID: 89A3EC33C625C3DF

View File

@ -28,6 +28,7 @@ import {
getDefaultNodeWallet,
NodeHttpLib,
WalletApiOperation,
Wallet,
} from "@gnu-taler/taler-wallet-core";
/**
@ -48,20 +49,25 @@ export async function runBench1(configJson: any): Promise<void> {
const numIter = b1conf.iterations ?? 1;
const numDeposits = b1conf.deposits ?? 5;
const restartWallet = b1conf.restartAfter ?? 20;
const withdrawAmount = (numDeposits + 1) * 10;
logger.info(`Starting Benchmark iterations=${numIter} deposits=${numDeposits}`);
let wallet = {} as Wallet;
for (let i = 0; i < numIter; i++) {
// Create a new wallet in each iteration
// otherwise the TPS go down
// my assumption is that the in-memory db file gets too large
const wallet = await getDefaultNodeWallet({
if (i % restartWallet == 0) {
wallet = await getDefaultNodeWallet({
// No persistent DB storage.
persistentStoragePath: undefined,
httpLib: myHttpLib,
});
}
await wallet.client.call(WalletApiOperation.InitWallet, {});
logger.trace(`Starting withdrawal amount=${withdrawAmount}`);
@ -128,6 +134,12 @@ interface Bench1Config {
currency: string;
deposits?: number;
/**
* How any iterations run until the wallet db gets purged
* Defaults to 20.
*/
restartAfter?: number;
}
/**
@ -141,4 +153,5 @@ const codecForBench1Config = () =>
.property("iterations", codecOptional(codecForNumber()))
.property("deposits", codecOptional(codecForNumber()))
.property("currency", codecForString())
.property("restartAfter", codecOptional(codecForNumber()))
.build("Bench1Config");