Skip to content

qa: Transaction submission tool for latency estimation for kvstore app #9330

@thanethomson

Description

@thanethomson

As part of being able to benchmark testnets running the kvstore, we need a tool that can generate and submit transactions to a Tendermint node running the kvstore.

Requirements:

  1. In order to get a rough estimate of latency vs throughput, we discussed that we need to embed the following within the transactions themselves:
    1. The transaction generation time.
    2. The configured throughput rate for the load generation tool (i.e. if the tool is configured to generate 200 txs/sec, we need to embed this "200" value somewhere in the tx data itself).
    3. Padding data to ensure that each full transaction is of a particular size.
  2. Each full transaction must be 1kB in size.
  3. The rate at which we submit transactions to a node must be configurable.

Additional considerations:

  • There was discussion last week regarding whether to include the timestamp in the transaction key or the value, and it was suggested that putting it into the value may be more optimal in terms of its impact on the state store.
  • It would also be optimal in terms of transaction generation to make use of the WebSocket endpoint to submit transactions, but not subscribe to receive transaction inclusion notifications as this information would be adequately extracted by qa: Tool to estimate transaction latency from block data for kvstore app #9331.
  • It may be useful to consider https://github.com/informalsystems/tm-load-test for this purpose. See specifically this documentation regarding how to build your own custom load generator using tm-load-test as a framework.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

Status

Done/Merged

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions