package Ġcom . the last pickle . t lp stress . profiles Ċ Ċ import Ġcom . the last pickle . t lp stress . Partition Key Ċ import Ġcom . the last pickle . t lp stress . Populate Option Ċ import Ġcom . the last pickle . t lp stress . St ress Context Ċ import Ġcom . the last pickle . t lp stress . commands . Run Ċ import Ġcom . the last pickle . t lp stress . generators . Field Generator Ċ import Ġcom . the last pickle . t lp stress . generators . Field Ċ import Ġsh aded . com . sc yll adb . cdc . driver 3 . driver . core . Bound Statement Ċ import Ġsh aded . com . sc yll adb . cdc . driver 3 . driver . core . ResultSet Ċ import Ġsh aded . com . sc yll adb . cdc . driver 3 . driver . core . Session Ċ Ċ interface ĠI St ress Runner Ġ{ ĊĠĠĠ Ġfun ĠgetNext Mutation ( partition Key : ĠPartition Key ) Ġ: ĠOperation ĊĠĠĠ Ġfun ĠgetNext Select ( partition Key : ĠPartition Key ) Ġ: ĠOperation ĊĠĠĠ Ġfun ĠgetNext Delete ( partition Key : ĠPartition Key ) Ġ: ĠOperation ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCallback Ġafter Ġa Ġquery Ġexecutes Ġsuccessfully . ĊĠĠĠĠ Ġ* ĠWill Ġbe Ġused Ġfor Ġstate Ġtracking Ġon Ġthings Ġlike ĠL WT s Ġas Ġwell Ġas Ġprovides Ġan Ġav en ue Ġfor Ġfuture Ġwork ĊĠĠĠĠ Ġ* Ġdoing Ġpost - workload Ġcorrect ness Ġchecks ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠonSuccess ( op : ĠOperation . Mutation , Ġresult : ĠResultSet ?) Ġ{ Ġ} ĊĊĠĠĠ Ġfun Ġcustom Populate Iter () Ġ: ĠIterator < Operation . Mutation > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf < Operation . Mutation >(). iterator () ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ /** Ċ Ġ* ĠSt ress Ġprofile Ġinterface . Ġ ĠA Ġstress Ġprofile Ġdefines Ġthe Ġschema , Ġprepared Ċ Ġ* Ġstatements , Ġand Ġqueries Ġthat Ġwill Ġbe Ġexecuted . Ġ ĠIt Ġshould Ġbe Ġfairly Ġtrivial Ċ Ġ* Ġto Ġimp Ċ Ġ*/ Ċ interface ĠI St ress Profile Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHandles Ġany Ġprepared Ġstatements Ġthat Ġare Ġneeded ĊĠĠĠĠ Ġ* Ġthe Ġclass Ġshould Ġtrack Ġall Ġprepared Ġstatements Ġinternally ĊĠĠĠĠ Ġ* Ġand Ġpass Ġthem Ġon Ġto Ġthe ĠRunner ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġprepare ( session : ĠSession ) ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġreturns Ġa Ġbunch Ġof ĠD DL Ġstatements ĊĠĠĠĠ Ġ* Ġthis Ġcan Ġbe Ġcreate Ġtable , Ġindex , Ġmaterial ized Ġview , Ġetc ĊĠĠĠĠ Ġ* Ġfor Ġmost Ġtests Ġthis Ġis Ġprobably Ġa Ġsingle Ġtable ĊĠĠĠĠ Ġ* Ġit 's ĠOK Ġto Ġput Ġa Ġclustering Ġorder Ġin , Ġbut Ġotherwise Ġthe Ġschema ĊĠĠĠĠ Ġ* Ġshould Ġnot Ġspecify Ġany Ġother Ġoptions Ġhere Ġbecause Ġthey Ġcan Ġall ĊĠĠĠĠ Ġ* Ġbut Ġsupplied Ġon Ġthe Ġcommand Ġline . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠI Ġmay Ġintroduce Ġa Ġmeans Ġof Ġsupply ing Ġdefault Ġvalues , Ġbecause ĊĠĠĠĠ Ġ* Ġthere Ġare Ġpl enty Ġof Ġuse Ġcases Ġwhere Ġyou Ġwould Ġwant Ġa Ġspecific ĊĠĠĠĠ Ġ* Ġcomp action Ġstrategy Ġmost Ġof Ġthe Ġtime Ġ( like Ġa Ġtime Ġseries , Ġor Ġa Ġcache ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġschema (): ĠList < String > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġreturns Ġan Ġinstance Ġof Ġthe Ġstress Ġrunner Ġfor Ġthis Ġparticular Ġclass ĊĠĠĠĠ Ġ* ĠThis Ġwas Ġdone Ġto Ġallow Ġa Ġsingle Ġinstance Ġof Ġan ĠI St ress Ġprofile Ġto Ġbe ĊĠĠĠĠ Ġ* Ġgenerated , Ġand Ġpassed Ġto Ġthe ĠProfile Runner . ĊĠĠĠĠ Ġ* ĠThe Ġissue Ġis Ġthat Ġthe Ġprofile Ġneeds Ġto Ġgenerate Ġa Ġsingle Ġschema ĊĠĠĠĠ Ġ* Ġbut Ġthen Ġneeds Ġto Ġcreate Ġmultiple Ġstress Ġrun ners ĊĠĠĠĠ Ġ* Ġthis Ġallows Ġthe Ġcode Ġto Ġbe Ġa Ġlittle Ġcleaner ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Runner ( context : ĠSt ress Context ): ĠI St ress Runner ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġreturns Ġa Ġmap Ġof Ġgenerators Ġc oo respon ding Ġto Ġthe Ġdifferent Ġfields ĊĠĠĠĠ Ġ* Ġit 's Ġrequired Ġto Ġspecify Ġall Ġfields Ġthat Ġuse Ġa Ġgenerator ĊĠĠĠĠ Ġ* Ġsome Ġfields Ġdon 't , Ġlike ĠTime UUID Ġor Ġthe Ġfirst Ġpartition Ġkey ĊĠĠĠĠ Ġ* ĠThis Ġis Ġoptional , Ġbut Ġencour aged ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠA Ġprofile Ġcan Ġtechnically Ġdo Ġwhatever Ġit Ġwants , Ġno Ġone Ġis Ġoblig ated Ġto Ġuse Ġthe Ġgenerator ĊĠĠĠĠ Ġ* ĠUsing Ġthis Ġdoes Ġgive Ġthe Ġflexibility Ġof Ġspecifying Ġa Ġdifferent Ġgenerator Ġhowever ĊĠĠĠĠ Ġ* ĠIn Ġthe Ġcase Ġof Ġtext Ġfields , Ġthis Ġis ĠV ERY Ġstrongly Ġencour aged Ġto Ġallow Ġfor Ġmore Ġflexibility Ġwith Ġthe Ġsize ĊĠĠĠĠ Ġ* Ġof Ġthe Ġtext Ġpayload ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Field Generators () Ġ: ĠMap < Field , ĠField Generator > Ġ= Ġmap Of () ĊĊĠĠĠ Ġfun ĠgetDefault Read Rate () Ġ: ĠDouble Ġ{ Ġreturn Ġ. 0 1 Ġ} ĊĊĠĠĠ Ġfun Ġget Custom Arguments () Ġ: ĠMap < String , ĠString > Ġ{ Ġreturn Ġmap Of () Ġ} ĊĊĠĠĠ Ġfun Ġget Populate Option ( args : ĠRun ) Ġ Ġ: ĠPopulate Option Ġ= ĠPopulate Option . Standard () ĊĊĊĊ Ċ } ĊĊ Ċ sealed Ġclass ĠOperation ( val Ġbound : ĠBound Statement ) Ġ{ ĊĠĠĠ Ġ// Ġwe 're Ġgoing Ġto Ġtrack Ġmetrics Ġon Ġthe Ġmutations Ġdifferently ĊĠĠĠ Ġ// Ġinserts Ġwill Ġalso Ġcarry Ġdata Ġthat Ġmight Ġbe Ġsaved Ġfor Ġlater Ġvalidation ĊĠĠĠ Ġ// Ġclustering Ġkeys Ġwon 't Ġbe Ġreal istic Ġto Ġcompute Ġin Ġthe Ġframework ĊĊĠĠĠ Ġclass ĠMutation ( bound : ĠBound Statement , Ġval Ġcallback Payload : ĠAny ? Ġ= Ġnull Ġ) Ġ: ĠOperation ( bound ) ĊĊĠĠĠ Ġclass ĠSelect Statement ( bound : ĠBound Statement ): ĠOperation ( bound ) ĊĊĠĠĠ Ġclass ĠDe letion ( bound : ĠBound Statement ): ĠOperation ( bound ) ĊĊ Ċ }