|
|
@@ -38,3 +38,36 @@ func BenchmarkConnStress(b *testing.B) {
|
|
|
b.RunParallel(writer)
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+func BenchmarkConnRoutingKey(b *testing.B) {
|
|
|
+ const workers = 16
|
|
|
+
|
|
|
+ cluster := createCluster()
|
|
|
+ cluster.NumConns = 1
|
|
|
+ cluster.NumStreams = workers
|
|
|
+ cluster.ConnPoolType = NewTokenAwareConnPool
|
|
|
+ session := createSessionFromCluster(cluster, b)
|
|
|
+ defer session.Close()
|
|
|
+
|
|
|
+ if err := createTable(session, "CREATE TABLE IF NOT EXISTS routing_key_stress (id int primary key)"); err != nil {
|
|
|
+ b.Fatal(err)
|
|
|
+ }
|
|
|
+
|
|
|
+ var seed uint64
|
|
|
+ writer := func(pb *testing.PB) {
|
|
|
+ seed := atomic.AddUint64(&seed, 1)
|
|
|
+ var i uint64 = 0
|
|
|
+ query := session.Query("insert into routing_key_stress (id) values (?)")
|
|
|
+
|
|
|
+ for pb.Next() {
|
|
|
+ if _, err := query.Bind(i * seed).GetRoutingKey(); err != nil {
|
|
|
+ b.Error(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ i++
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ b.SetParallelism(workers)
|
|
|
+ b.RunParallel(writer)
|
|
|
+}
|