This repository has been archived by the owner on Feb 8, 2024. It is now read-only.
forked from igneous-systems/s3bench
-
Notifications
You must be signed in to change notification settings - Fork 12
/
data_decl.go
115 lines (105 loc) · 2.24 KB
/
data_decl.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package main
import (
"time"
"sync"
)
var (
gitHash string
buildDate string
)
const (
opRead = "Read"
opWrite = "Write"
opHeadObj = "HeadObj"
opGetObjTag = "GetObjTag"
opPutObjTag = "PutObjTag"
opValidate = "Validate"
opMpUpl = "MultipartUpload"
opCopyObj = "CopyObject"
opDelObj = "DeleteObjects"
opDelTag = "DeleteTags"
)
// Req is used to submit reqs
type Req struct {
top string
key string
req interface{}
}
// Resp is used to submit resps
type Resp struct {
err error
duration time.Duration
numBytes int64
ttfb time.Duration
}
// Params contains applications settings
type Params struct {
requests chan Req
responses chan Resp
numSamples uint
numClients uint
objectSize int64
objectNamePrefix string
bucketName string
profile string
endpoints []string
headObj bool
sampleReads uint
deleteAtOnce int
putObjTag bool
getObjTag bool
numTags uint
readObj bool
tagNamePrefix string
tagValPrefix string
reportFormat string
validate bool
skipWrite bool
skipRead bool
s3MaxRetries int
s3Disable100Continue bool
httpClientTimeout int
connectTimeout int
TLSHandshakeTimeout int
skipSSLCertVerification bool
maxIdleConnsPerHost int
idleConnTimeout int
responseHeaderTimeout int
deleteClients int
protocolDebug int
deleteOnly bool
multipartSize int64
zero bool
label string
outstream string
outtype string
copies int
}
// Result repr result of the op
type Result struct {
operation string
bytesTransmitted int64
opDurations []float64
totalDuration time.Duration
opTtfb []float64
opErrors []string
}
// DeleteReq is used to submit delete req
type DeleteReq struct {
opName string
dltReq interface{}
}
// DeleteResp is used to submit delete resp
type DeleteResp struct {
opName string
dur time.Duration
err error
}
// MpDetails describe multipart upload req
type MpDetails struct {
partsUploaded int32
partsTags sync.Map
startTime time.Time
ttfb time.Duration
uplID *string
}