@@ -44,7 +44,7 @@ func main() {
4444 if err != nil {
4545 log .Fatal (err )
4646 }
47- initKeyspaceAndTable (initSession , config .keyspace )
47+ initKeyspaceAndTable (ctx , initSession , config .keyspace )
4848 initSession .Close ()
4949 }
5050
@@ -53,21 +53,21 @@ func main() {
5353 if err != nil {
5454 log .Fatal (err )
5555 }
56- truncateTable (session )
56+ truncateTable (ctx , session )
5757
5858 if config .workload == Selects && ! config .dontPrepare {
59- initSelectsBenchmark (session , config )
59+ initSelectsBenchmark (ctx , session , config )
6060 }
6161
6262 if config .async {
63- asyncBenchmark (& config , session )
63+ asyncBenchmark (ctx , & config , session )
6464 } else {
65- benchmark (& config , session )
65+ benchmark (ctx , & config , session )
6666 }
6767}
6868
6969// benchmark is the same as in gocql.
70- func benchmark (config * Config , session * scylla.Session ) {
70+ func benchmark (ctx context. Context , config * Config , session * scylla.Session ) {
7171 var wg sync.WaitGroup
7272 nextBatchStart := - config .batchSize
7373
@@ -78,11 +78,11 @@ func benchmark(config *Config, session *scylla.Session) {
7878 wg .Add (1 )
7979 go func () {
8080 defer wg .Done ()
81- insertQ , err := session .Prepare (insertStmt )
81+ insertQ , err := session .Prepare (ctx , insertStmt )
8282 if err != nil {
8383 log .Fatal (err )
8484 }
85- selectQ , err := session .Prepare (selectStmt )
85+ selectQ , err := session .Prepare (ctx , selectStmt )
8686 if err != nil {
8787 log .Fatal (err )
8888 }
@@ -98,15 +98,15 @@ func benchmark(config *Config, session *scylla.Session) {
9898
9999 for pk := curBatchStart ; pk < curBatchEnd ; pk ++ {
100100 if config .workload == Inserts || config .workload == Mixed {
101- _ , err := insertQ .BindInt64 (0 , pk ).BindInt64 (1 , 2 * pk ).BindInt64 (2 , 3 * pk ).Exec ()
101+ _ , err := insertQ .BindInt64 (0 , pk ).BindInt64 (1 , 2 * pk ).BindInt64 (2 , 3 * pk ).Exec (ctx )
102102 if err != nil {
103103 panic (err )
104104 }
105105 }
106106
107107 if config .workload == Selects || config .workload == Mixed {
108108 var v1 , v2 int64
109- res , err := selectQ .BindInt64 (0 , pk ).Exec ()
109+ res , err := selectQ .BindInt64 (0 , pk ).Exec (ctx )
110110 if err != nil {
111111 panic (err )
112112 }
@@ -133,7 +133,7 @@ func benchmark(config *Config, session *scylla.Session) {
133133 log .Printf ("Finished\n Benchmark time: %d ms\n " , benchTime .Milliseconds ())
134134}
135135
136- func asyncBenchmark (config * Config , session * scylla.Session ) {
136+ func asyncBenchmark (ctx context. Context , config * Config , session * scylla.Session ) {
137137 var wg sync.WaitGroup
138138 nextBatchStart := - config .batchSize
139139
@@ -145,11 +145,11 @@ func asyncBenchmark(config *Config, session *scylla.Session) {
145145 go func () {
146146 defer wg .Done ()
147147
148- insertQ , err := session .Prepare (insertStmt )
148+ insertQ , err := session .Prepare (ctx , insertStmt )
149149 if err != nil {
150150 log .Fatal (err )
151151 }
152- selectQ , err := session .Prepare (selectStmt )
152+ selectQ , err := session .Prepare (ctx , selectStmt )
153153 if err != nil {
154154 log .Fatal (err )
155155 }
@@ -164,11 +164,11 @@ func asyncBenchmark(config *Config, session *scylla.Session) {
164164 curBatchEnd := min (curBatchStart + config .batchSize , config .tasks )
165165
166166 if config .workload == Inserts || config .workload == Mixed {
167- asyncInserts (& insertQ , curBatchStart , curBatchEnd )
167+ asyncInserts (ctx , & insertQ , curBatchStart , curBatchEnd )
168168 }
169169
170170 if config .workload == Selects || config .workload == Mixed {
171- asyncSelects (& selectQ , curBatchStart , curBatchEnd )
171+ asyncSelects (ctx , & selectQ , curBatchStart , curBatchEnd )
172172 }
173173 }
174174 }()
@@ -179,12 +179,12 @@ func asyncBenchmark(config *Config, session *scylla.Session) {
179179 log .Printf ("Finished\n Benchmark time: %d ms\n " , benchTime .Milliseconds ())
180180}
181181
182- func asyncInserts (insertQ * scylla.Query , curBatchStart , curBatchEnd int64 ) {
182+ func asyncInserts (ctx context. Context , insertQ * scylla.Query , curBatchStart , curBatchEnd int64 ) {
183183 for pk := curBatchStart ; pk < curBatchEnd ; pk ++ {
184184 insertQ .BindInt64 (0 , pk )
185185 insertQ .BindInt64 (1 , 2 * pk )
186186 insertQ .BindInt64 (2 , 3 * pk )
187- insertQ .AsyncExec ()
187+ insertQ .AsyncExec (ctx )
188188 }
189189 for pk := curBatchStart ; pk < curBatchEnd ; pk ++ {
190190 if _ , err := insertQ .Fetch (); err != nil {
@@ -193,10 +193,10 @@ func asyncInserts(insertQ *scylla.Query, curBatchStart, curBatchEnd int64) {
193193 }
194194}
195195
196- func asyncSelects (selectQ * scylla.Query , curBatchStart , curBatchEnd int64 ) {
196+ func asyncSelects (ctx context. Context , selectQ * scylla.Query , curBatchStart , curBatchEnd int64 ) {
197197 for pk := curBatchStart ; pk < curBatchEnd ; pk ++ {
198198 selectQ .BindInt64 (0 , pk )
199- selectQ .AsyncExec ()
199+ selectQ .AsyncExec (ctx )
200200 }
201201 for pk := curBatchStart ; pk < curBatchEnd ; pk ++ {
202202 res , err := selectQ .Fetch ()
@@ -222,31 +222,31 @@ func asyncSelects(selectQ *scylla.Query, curBatchStart, curBatchEnd int64) {
222222 }
223223}
224224
225- func truncateTable (session * scylla.Session ) {
225+ func truncateTable (ctx context. Context , session * scylla.Session ) {
226226 q := session .Query ("TRUNCATE TABLE benchtab" )
227- if _ , err := q .Exec (); err != nil {
227+ if _ , err := q .Exec (ctx ); err != nil {
228228 log .Fatal (err )
229229 }
230230}
231231
232- func initKeyspaceAndTable (session * scylla.Session , ks string ) {
232+ func initKeyspaceAndTable (ctx context. Context , session * scylla.Session , ks string ) {
233233 q := session .Query ("DROP KEYSPACE IF EXISTS " + ks )
234- if _ , err := q .Exec (); err != nil {
234+ if _ , err := q .Exec (ctx ); err != nil {
235235 log .Fatal (err )
236236 }
237237
238238 q = session .Query ("CREATE KEYSPACE " + ks + " WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' : 1}" )
239- if _ , err := q .Exec (); err != nil {
239+ if _ , err := q .Exec (ctx ); err != nil {
240240 log .Fatal (err )
241241 }
242242
243243 q = session .Query ("CREATE TABLE " + ks + ".benchtab (pk bigint PRIMARY KEY, v1 bigint, v2 bigint)" )
244- if _ , err := q .Exec (); err != nil {
244+ if _ , err := q .Exec (ctx ); err != nil {
245245 log .Fatal (err )
246246 }
247247}
248248
249- func initSelectsBenchmark (session * scylla.Session , config Config ) {
249+ func initSelectsBenchmark (ctx context. Context , session * scylla.Session , config Config ) {
250250 log .Println ("inserting values..." )
251251
252252 var wg sync.WaitGroup
@@ -257,7 +257,7 @@ func initSelectsBenchmark(session *scylla.Session, config Config) {
257257 go func () {
258258 defer wg .Done ()
259259
260- insertQ , err := session .Prepare (insertStmt )
260+ insertQ , err := session .Prepare (ctx , insertStmt )
261261 if err != nil {
262262 log .Fatal (err )
263263 }
@@ -275,7 +275,7 @@ func initSelectsBenchmark(session *scylla.Session, config Config) {
275275 insertQ .BindInt64 (0 , pk )
276276 insertQ .BindInt64 (1 , 2 * pk )
277277 insertQ .BindInt64 (2 , 3 * pk )
278- if _ , err := insertQ .Exec (); err != nil {
278+ if _ , err := insertQ .Exec (ctx ); err != nil {
279279 log .Fatal (err )
280280 }
281281 }
0 commit comments