package hammer
import "github.com/google/trillian/testonly/hammer"
Index ¶
- Constants
- func HitMap(cfg MapConfig) error
- func NewRecordingInterceptor(filename string) (grpc.UnaryClientInterceptor, error)
- func ReplayFile(ctx context.Context, r io.Reader, cl trillian.TrillianMapClient, mapmap map[int64]int64) error
- type Choice
- type MapBias
- type MapConfig
- type MapEntrypointName
Constants ¶
const ( GetLeavesName = MapEntrypointName("GetLeaves") GetLeavesRevName = MapEntrypointName("GetLeavesRev") SetLeavesName = MapEntrypointName("SetLeaves") GetSMRName = MapEntrypointName("GetSMR") GetSMRRevName = MapEntrypointName("GetSMRRev") )
Constants for entrypoint names, as exposed in statistics/logging.
const ( ExistingKey = Choice("ExistingKey") NonexistentKey = Choice("NonexistentKey") MalformedKey = Choice("MalformedKey") DuplicateKey = Choice("DuplicateKey") RevTooBig = Choice("RevTooBig") RevIsNegative = Choice("RevIsNegative") CreateLeaf = Choice("CreateLeaf") UpdateLeaf = Choice("UpdateLeaf") DeleteLeaf = Choice("DeleteLeaf") )
Constants for both valid and invalid operation choices.
Functions ¶
func HitMap ¶
HitMap performs load/stress operations according to given config.
func NewRecordingInterceptor ¶
func NewRecordingInterceptor(filename string) (grpc.UnaryClientInterceptor, error)
NewRecordingInterceptor returns a grpc.UnaryClientInterceptor that logs outgoing requests to file.
func ReplayFile ¶
func ReplayFile(ctx context.Context, r io.Reader, cl trillian.TrillianMapClient, mapmap map[int64]int64) error
ReplayFile reads recorded gRPC requests and re-issues them using the given client. If a request has a MapId field, and its value is present in mapmap, then the MapId field is replaced before replay.
Types ¶
type Choice ¶
type Choice string
Choice is a readable representation of a choice about how to perform a hammering operation.
type MapBias ¶
type MapBias struct { Bias map[MapEntrypointName]int // InvalidChance gives the odds of performing an invalid operation, as the N in 1-in-N. InvalidChance map[MapEntrypointName]int // contains filtered or unexported fields }
MapBias indicates the bias for selecting different map operations.
type MapConfig ¶
type MapConfig struct { MapID int64 // 0 to use an ephemeral tree MetricFactory monitoring.MetricFactory Client trillian.TrillianMapClient Admin trillian.TrillianAdminClient RandSource rand.Source EPBias MapBias LeafSize, ExtraSize uint MinLeaves, MaxLeaves int Operations uint64 EmitInterval time.Duration RetryErrors bool OperationDeadline time.Duration // NumCheckers indicates how many separate inclusion checker goroutines // to run. Note that the behaviour of these checkers is not governed by // RandSource. NumCheckers int // KeepFailedTree indicates whether ephemeral trees should be left intact // after a failed hammer run. KeepFailedTree bool }
MapConfig provides configuration for a stress/load test.
func (MapConfig) String ¶
String conforms with Stringer for MapConfig.
type MapEntrypointName ¶
type MapEntrypointName string
MapEntrypointName identifies a Map RPC entrypoint
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
testonly/hammer/maphammer | maphammer is a stress/load test for a Trillian Map. |
testonly/hammer/mapreplay | mapreplay replays a log of Trillian Map requests. |
- Version
- v1.3.0
- Published
- Jul 11, 2019
- Platform
- js/wasm
- Imports
- 24 packages
- Last checked
- 14 minutes ago –
Tools for package owners.