From 4f62762755cc2ac0b57d28c83ac35ff1414bac1b Mon Sep 17 00:00:00 2001 From: sylwiaszunejko Date: Thu, 17 Oct 2024 13:54:43 +0200 Subject: [PATCH] wip --- dialer/recorder/recorder.go | 222 ++++++++++++++++++ dialer/replayer/replayer.go | 189 +++++++++++++++ dialer/utils.go | 80 +++++++ tests/bench/bench_marshal_test.go | 2 +- tests/bench/bench_single_conn_test.go | 156 ++++++++++++ tests/bench/go.mod | 6 +- tests/bench/go.sum | 16 +- tests/bench/rec_insert/127.0.0.2:9042-0Reads | 15 ++ tests/bench/rec_insert/127.0.0.2:9042-0Writes | 15 ++ tests/bench/rec_select/127.0.0.2:9042-0Reads | 15 ++ tests/bench/rec_select/127.0.0.2:9042-0Writes | 15 ++ 11 files changed, 722 insertions(+), 9 deletions(-) create mode 100644 dialer/recorder/recorder.go create mode 100644 dialer/replayer/replayer.go create mode 100644 dialer/utils.go create mode 100644 tests/bench/bench_single_conn_test.go create mode 100644 tests/bench/rec_insert/127.0.0.2:9042-0Reads create mode 100644 tests/bench/rec_insert/127.0.0.2:9042-0Writes create mode 100644 tests/bench/rec_select/127.0.0.2:9042-0Reads create mode 100644 tests/bench/rec_select/127.0.0.2:9042-0Writes diff --git a/dialer/recorder/recorder.go b/dialer/recorder/recorder.go new file mode 100644 index 000000000..517b55bec --- /dev/null +++ b/dialer/recorder/recorder.go @@ -0,0 +1,222 @@ +package recorder + +import ( + "context" + "encoding/json" + "fmt" + "io" + "net" + "os" + "path" + "time" + + "github.com/gocql/gocql" + "github.com/gocql/gocql/dialer" +) + +func NewRecordDialer(dir string) *RecordDialer { + return &RecordDialer{ + dir: dir, + } +} + +type RecordDialer struct { + dir string + net.Dialer +} + +func (d *RecordDialer) DialContext(ctx context.Context, network, addr string) (conn net.Conn, err error) { + fmt.Println("Dial Context Record Dialer") + sourcePort := gocql.ScyllaGetSourcePort(ctx) + fmt.Println("Source port: ", sourcePort) + // if sourcePort == 0 { + // return d.Dialer.DialContext(ctx, network, addr) + // } + dialerWithLocalAddr := d.Dialer + dialerWithLocalAddr.LocalAddr, err = net.ResolveTCPAddr(network, fmt.Sprintf(":%d", sourcePort)) + if err != nil { + fmt.Println(err) + return nil, err + } + + conn, err = dialerWithLocalAddr.DialContext(ctx, network, addr) + if err != nil { + return nil, err + } + + return NewConnectionRecorder(path.Join(d.dir, fmt.Sprintf("%s-%d", addr, sourcePort)), conn) +} + +func NewConnectionRecorder(fname string, conn net.Conn) (net.Conn, error) { + fd_writes, err := os.OpenFile(fname+"Writes", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) + if err != nil { + return nil, err + } + fd_reads, err2 := os.OpenFile(fname+"Reads", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) + if err2 != nil { + return nil, err2 + } + return &ConnectionRecorder{fd_writes: fd_writes, fd_reads: fd_reads, orig: conn, write_record: &RecordWriter{new: true}, read_record: &RecordWriter{new: true}}, nil +} + +type RecordWriter struct { + new bool + to_record int + record map[string]interface{} +} + +type ConnectionRecorder struct { + fd_writes *os.File + fd_reads *os.File + orig net.Conn + read_record *RecordWriter + write_record *RecordWriter +} + +func (c *ConnectionRecorder) Read(b []byte) (n int, err error) { + n, err = c.orig.Read(b) + if err != nil && err != io.EOF { + return n, err + } + + if c.read_record.new { + p := 4 + stream_id := int(b[2]) + if b[0] > 0x02 { + p = 5 + stream_id = int(b[2])<<8 | int(b[3]) + } + + c.read_record.record = make(map[string]interface{}) + c.read_record.to_record = int(b[p+0])<<24 | int(b[p+1])<<16 | int(b[p+2])<<8 | int(b[p+3]) + c.read_record.record["stream_id"] = stream_id + b_copy := make([]byte, n) + _ = copy(b_copy, b[:n]) + c.read_record.record["data"] = b_copy + + if n < c.read_record.to_record { + c.read_record.new = false + c.read_record.to_record = c.read_record.to_record - n + } else { + // Write JSON record to file + jsonData, marshalErr := json.Marshal(c.read_record.record) + if marshalErr != nil { + return n, fmt.Errorf("failed to encode JSON record: %w", marshalErr) + } + _, writeErr := c.fd_reads.Write(append(jsonData, '\n')) + if writeErr != nil { + return n, fmt.Errorf("failed to record read: %w", writeErr) + } + } + + return n, err + } + + if currentData, ok := c.read_record.record["data"].([]byte); ok { + c.read_record.record["data"] = append(currentData, b[:n]...) + } else { + return n, err + } + + c.read_record.to_record = c.read_record.to_record - n + if c.read_record.to_record <= 0 { + c.read_record.new = true + // Write JSON record to file + jsonData, marshalErr := json.Marshal(c.read_record.record) + if marshalErr != nil { + return n, fmt.Errorf("failed to encode JSON record: %w", marshalErr) + } + _, writeErr := c.fd_reads.Write(append(jsonData, '\n')) + if writeErr != nil { + return n, fmt.Errorf("failed to record read: %w", writeErr) + } + } + + return n, err +} + +func (c *ConnectionRecorder) Write(b []byte) (n int, err error) { + n, err = c.orig.Write(b) + + if c.write_record.new { + p := 4 + stream_id := int(b[2]) + if b[0] > 0x02 { + p = 5 + stream_id = int(b[2])<<8 | int(b[3]) + } + + c.write_record.record = make(map[string]interface{}) + c.write_record.to_record = int(b[p+0])<<24 | int(b[p+1])<<16 | int(b[p+2])<<8 | int(b[p+3]) + c.write_record.record["stream_id"] = stream_id + b_copy := make([]byte, n) + _ = copy(b_copy, b[:n]) + c.write_record.record["data"] = b_copy + + if n < c.write_record.to_record { + c.write_record.new = false + c.write_record.to_record = c.write_record.to_record - n + } else { + // Write JSON record to file + c.write_record.record["hash"] = dialer.GetFrameHash(c.write_record.record["data"].([]byte)) + jsonData, marshalErr := json.Marshal(c.write_record.record) + if marshalErr != nil { + return n, fmt.Errorf("failed to encode JSON record: %w", marshalErr) + } + _, writeErr := c.fd_writes.Write(append(jsonData, '\n')) + if writeErr != nil { + return n, fmt.Errorf("failed to record write: %w", writeErr) + } + } + + return n, err + } + + c.write_record.record["data"] = append(c.write_record.record["data"].([]byte), b[:n]...) + + c.write_record.to_record = c.write_record.to_record - n + if c.write_record.to_record <= 0 { + c.write_record.new = true + // Write JSON record to file + c.write_record.record["hash"] = dialer.GetFrameHash(c.write_record.record["data"].([]byte)) + jsonData, marshalErr := json.Marshal(c.write_record.record) + if marshalErr != nil { + return n, fmt.Errorf("failed to encode JSON record: %w", marshalErr) + } + _, writeErr := c.fd_writes.Write(append(jsonData, '\n')) + if writeErr != nil { + return n, fmt.Errorf("failed to record write: %w", writeErr) + } + } + return n, err +} + +func (c ConnectionRecorder) Close() error { + if err := c.fd_writes.Close(); err != nil { + return fmt.Errorf("failed to close the file: %w", err) + } + if err := c.fd_reads.Close(); err != nil { + return fmt.Errorf("failed to close the file: %w", err) + } + return c.orig.Close() +} + +func (c ConnectionRecorder) LocalAddr() net.Addr { + return c.orig.LocalAddr() +} + +func (c ConnectionRecorder) RemoteAddr() net.Addr { + return c.orig.RemoteAddr() +} + +func (c ConnectionRecorder) SetDeadline(t time.Time) error { + return c.orig.SetDeadline(t) +} + +func (c ConnectionRecorder) SetReadDeadline(t time.Time) error { + return c.orig.SetReadDeadline(t) +} + +func (c ConnectionRecorder) SetWriteDeadline(t time.Time) error { + return c.orig.SetWriteDeadline(t) +} diff --git a/dialer/replayer/replayer.go b/dialer/replayer/replayer.go new file mode 100644 index 000000000..f3d8628ce --- /dev/null +++ b/dialer/replayer/replayer.go @@ -0,0 +1,189 @@ +package replayer + +import ( + "bufio" + "context" + "encoding/json" + "fmt" + "net" + "os" + "path" + "time" + + "github.com/gocql/gocql" + "github.com/gocql/gocql/dialer" +) + +func NewReplayDialer(dir string) *ReplayDialer { + return &ReplayDialer{ + dir: dir, + } +} + +type ReplayDialer struct { + dir string + net.Dialer +} + +func (d *ReplayDialer) DialContext(ctx context.Context, network, addr string) (conn net.Conn, err error) { + sourcePort := gocql.ScyllaGetSourcePort(ctx) + // if sourcePort == 0 { + // return d.Dialer.DialContext(ctx, network, addr) + // } + dialerWithLocalAddr := d.Dialer + dialerWithLocalAddr.LocalAddr, err = net.ResolveTCPAddr(network, fmt.Sprintf(":%d", sourcePort)) + if err != nil { + fmt.Println(err) + return nil, err + } + + conn, err = dialerWithLocalAddr.DialContext(ctx, network, addr) + if err != nil { + return nil, err + } + + return NewConnectionReplayer(path.Join(d.dir, fmt.Sprintf("%s-%d", addr, sourcePort)), conn) +} + +func NewConnectionReplayer(fname string, conn net.Conn) (net.Conn, error) { + queries, err := findMatchingStreams(fname+"Reads", fname+"Writes") + if err != nil { + return nil, err + } + return &ConnectionReplayer{queries: queries, orig: conn, query_ids_to_replay: []int{}, stream_ids_to_replay: []int{}, index: 0, partial: 0}, nil +} + +type ConnectionReplayer struct { + queries []queryExample + orig net.Conn + query_ids_to_replay []int + stream_ids_to_replay []int + index int + partial int +} + +func (c *ConnectionReplayer) Read(b []byte) (n int, err error) { + if c.index < 0 || c.index >= len(c.query_ids_to_replay) { + return 0, nil + } + response := c.queries[c.query_ids_to_replay[c.index]].Response[c.partial:] + if len(b) < len(response) { + // Only copy as much as fits in b and return an error to indicate a partial read + copy(b, response[c.partial:len(b)]) + c.partial = len(b) + return len(b), err + } + + // Copy the response to b + copy(b, response) + if c.partial == 0 { + if b[0] > 0x02 { + b[2] = byte(c.stream_ids_to_replay[c.index] >> 8) + b[3] = byte(c.stream_ids_to_replay[c.index]) + } else { + b[2] = byte(c.stream_ids_to_replay[c.index]) + } + } + + c.index = c.index + 1 + c.partial = 0 + return len(response), err +} + +func (c *ConnectionReplayer) Write(b []byte) (n int, err error) { + b_copy := make([]byte, len(b)) + _ = copy(b_copy, b) + writeHash := int(dialer.GetFrameHash(b_copy)) + for i, q := range c.queries { + if q.Hash == writeHash { + if b[0] > 0x02 { + c.stream_ids_to_replay = append(c.stream_ids_to_replay, int(b[2])<<8|int(b[3])) + } else { + c.stream_ids_to_replay = append(c.stream_ids_to_replay, int(b[2])) + } + c.query_ids_to_replay = append(c.query_ids_to_replay, i) + return len(q.Request), nil + } + } + return 0, nil +} + +func (c ConnectionReplayer) Close() error { + return c.orig.Close() +} + +func (c ConnectionReplayer) LocalAddr() net.Addr { + return c.orig.LocalAddr() +} + +func (c ConnectionReplayer) RemoteAddr() net.Addr { + return c.orig.RemoteAddr() +} + +func (c ConnectionReplayer) SetDeadline(t time.Time) error { + return c.orig.SetDeadline(t) +} + +func (c ConnectionReplayer) SetReadDeadline(t time.Time) error { + return c.orig.SetReadDeadline(t) +} + +func (c ConnectionReplayer) SetWriteDeadline(t time.Time) error { + return c.orig.SetWriteDeadline(t) +} + +type Record struct { + StreamID int `json:"stream_id"` + Data []byte `json:"data"` + Hash int `json:"hash"` +} + +func loadRecords(filename string) (map[int]Record, error) { + records := make(map[int]Record) + + file, err := os.Open(filename) + if err != nil { + return nil, fmt.Errorf("failed to open file %s: %w", filename, err) + } + defer file.Close() + + scanner := bufio.NewScanner(file) + for scanner.Scan() { + var record Record + if err := json.Unmarshal(scanner.Bytes(), &record); err != nil { + fmt.Printf("Error decoding JSON in %s: %s\n", filename, err) + continue + } + records[record.StreamID] = record + } + + if err := scanner.Err(); err != nil { + return nil, fmt.Errorf("error reading file %s: %w", filename, err) + } + return records, nil +} + +func findMatchingStreams(read_file, write_file string) ([]queryExample, error) { + read_records, err := loadRecords(read_file) + if err != nil { + return nil, err + } + write_records, err := loadRecords(write_file) + if err != nil { + return nil, err + } + + var matchingRecords = []queryExample{} + for streamID, record1 := range read_records { + if record2, exists := write_records[streamID]; exists { + matchingRecords = append(matchingRecords, queryExample{Request: record2.Data, Response: record1.Data, Hash: record2.Hash}) + } + } + return matchingRecords, nil +} + +type queryExample struct { + Hash int + Request []byte + Response []byte +} diff --git a/dialer/utils.go b/dialer/utils.go new file mode 100644 index 000000000..6adc8c055 --- /dev/null +++ b/dialer/utils.go @@ -0,0 +1,80 @@ +package dialer + +import ( + "fmt" + + "github.com/gocql/gocql/internal/murmur" +) + +type frameOp byte + +const ( + // header ops + opError frameOp = 0x00 + opStartup frameOp = 0x01 + opReady frameOp = 0x02 + opAuthenticate frameOp = 0x03 + opOptions frameOp = 0x05 + opSupported frameOp = 0x06 + opQuery frameOp = 0x07 + opResult frameOp = 0x08 + opPrepare frameOp = 0x09 + opExecute frameOp = 0x0A + opRegister frameOp = 0x0B + opEvent frameOp = 0x0C + opBatch frameOp = 0x0D + opAuthChallenge frameOp = 0x0E + opAuthResponse frameOp = 0x0F + opAuthSuccess frameOp = 0x10 +) + +func GetFrameHash(frame []byte) int64 { + var p int + if frame[0] > 0x02 { + p = 1 + frame[2] = byte('0') + frame[3] = byte('0') + } else { + p = 0 + frame[2] = byte('0') + } + switch frame[3+p] { + case byte(opStartup): + return murmur.Murmur3H1(frame[:8+p]) + case byte(opPrepare): + return murmur.Murmur3H1(frame) + case byte(opAuthResponse): + return murmur.Murmur3H1(frame) + case byte(opQuery): + //omit header and custom payload + index := 8 + p + customPayloadLenght := int(frame[8+p])<<8 | int(frame[9+p]) + if customPayloadLenght > 0 { + index = index + 2 + } + for i := 0; i < customPayloadLenght; i++ { + stringLenght := int(frame[index])<<8 | int(frame[index+1]) + index = index + 2 + stringLenght + bytesLength := int(frame[index+0])<<24 | int(frame[index+1])<<16 | int(frame[index+2])<<8 | int(frame[index+3]) + index = index + 4 + bytesLength + } + fmt.Println("INDEX: ", index) + statementLength := int(frame[index+0])<<24 | int(frame[index+1])<<16 | int(frame[index+2])<<8 | int(frame[index+3]) + fmt.Println("STMT LEN: ", statementLength) + fmt.Println("FRAME LEN: ", len(frame)) + return murmur.Murmur3H1(frame[index : statementLength+4]) + case byte(opExecute): + //omit header + index := 8 + p + // omit timelaps + return murmur.Murmur3H1(frame[index : len(frame)-4]) + case byte(opBatch): + return murmur.Murmur3H1(frame) + case byte(opOptions): + return murmur.Murmur3H1(frame) + case byte(opRegister): + return murmur.Murmur3H1(frame) + default: + return murmur.Murmur3H1(frame) + } +} diff --git a/tests/bench/bench_marshal_test.go b/tests/bench/bench_marshal_test.go index 9c68ef0c2..a5c92ae06 100644 --- a/tests/bench/bench_marshal_test.go +++ b/tests/bench/bench_marshal_test.go @@ -1,4 +1,4 @@ -package bench +package bench_test import ( "encoding/json" diff --git a/tests/bench/bench_single_conn_test.go b/tests/bench/bench_single_conn_test.go new file mode 100644 index 000000000..e50bf35a3 --- /dev/null +++ b/tests/bench/bench_single_conn_test.go @@ -0,0 +1,156 @@ +package bench_test + +import ( + "fmt" + "strconv" + "testing" + + "github.com/gocql/gocql" + "github.com/gocql/gocql/dialer/recorder" + "github.com/gocql/gocql/dialer/replayer" +) + +func InitializeCluster() { + cluster := gocql.NewCluster("127.0.0.2") + cluster.Consistency = gocql.Quorum + + fallback := gocql.RoundRobinHostPolicy() + cluster.PoolConfig.HostSelectionPolicy = gocql.TokenAwareHostPolicy(fallback) + + executor, err := gocql.NewSingleHostQueryExecutor(cluster) + if err != nil { + panic(err) + } + defer executor.Close() + + keyspace := "single_conn_bench" + + err = executor.Exec(`DROP KEYSPACE IF EXISTS ` + keyspace) + if err != nil { + panic(fmt.Sprintf("unable to drop keyspace: %v", err)) + } + + err = executor.Exec(fmt.Sprintf(`CREATE KEYSPACE %s WITH replication = {'class' : 'NetworkTopologyStrategy','replication_factor' : 1}`, keyspace)) + + if err != nil { + panic(fmt.Sprintf("unable to create keyspace: %v", err)) + } + + if err = executor.Exec(fmt.Sprintf(`CREATE TABLE %s.%s (pk int, ck int, v text, PRIMARY KEY (pk)); + `, keyspace, "table1")); err != nil { + panic(fmt.Sprintf("unable to create table: %v", err)) + } +} + +func RecordSelectTraffic(size int, dir string) { + cluster := gocql.NewCluster("127.0.0.2") + cluster.Consistency = gocql.Quorum + + cluster.Dialer = recorder.NewRecordDialer(dir) + + fallback := gocql.RoundRobinHostPolicy() + cluster.PoolConfig.HostSelectionPolicy = gocql.TokenAwareHostPolicy(fallback) + + executor, err := gocql.NewSingleHostQueryExecutor(cluster) + if err != nil { + panic(err) + } + defer executor.Close() + + for i := 0; i < size; i++ { + iter := executor.Iter(`SELECT v FROM single_conn_bench.table1 WHERE pk = ?;`, i) + var name string + for iter.Scan(&name) { + if name[:4] != "Name" { + panic("Wrong value") + } + } + if err := iter.Close(); err != nil { + panic(err) + } + } +} + +func RecordInsertTraffic(size int, dir string) { + cluster := gocql.NewCluster("127.0.0.2") + cluster.Consistency = gocql.Quorum + + cluster.Dialer = recorder.NewRecordDialer(dir) + + fallback := gocql.RoundRobinHostPolicy() + cluster.PoolConfig.HostSelectionPolicy = gocql.TokenAwareHostPolicy(fallback) + + executor, err := gocql.NewSingleHostQueryExecutor(cluster) + if err != nil { + panic(err) + } + defer executor.Close() + + for i := 0; i < size; i++ { + err = executor.Exec(`INSERT INTO single_conn_bench.table1 (pk, ck, v) VALUES (?, ?, ?);`, i, i%5, fmt.Sprintf("Name_%d", i)) + if err != nil { + panic(err) + } + } +} + +func BenchmarkSingleConnectionSelect(b *testing.B) { + cluster := gocql.NewCluster("127.0.0.2") + cluster.Consistency = gocql.Quorum + + cluster.Dialer = replayer.NewReplayDialer("/home/sylwiaszunejko/gocql/tests/bench/rec_select") + + fallback := gocql.RoundRobinHostPolicy() + cluster.PoolConfig.HostSelectionPolicy = gocql.TokenAwareHostPolicy(fallback) + + executor, err := gocql.NewSingleHostQueryExecutor(cluster) + if err != nil { + panic(err) + } + defer executor.Close() + + b.Run("Select", func(b *testing.B) { + for i := 0; i < 10; i++ { + b.Run("Case"+strconv.Itoa(i), func(b *testing.B) { + for j := 0; j < b.N; j++ { + _ = executor.Iter(`SELECT v FROM single_conn_bench.table1 WHERE pk = ?;`, i) + } + }) + } + }) +} + +func BenchmarkSingleConnectionInsert(b *testing.B) { + cluster := gocql.NewCluster("127.0.0.2") + cluster.Consistency = gocql.Quorum + + cluster.Dialer = replayer.NewReplayDialer("/home/sylwiaszunejko/gocql/tests/bench/rec_insert") + + fallback := gocql.RoundRobinHostPolicy() + cluster.PoolConfig.HostSelectionPolicy = gocql.TokenAwareHostPolicy(fallback) + + executor, err := gocql.NewSingleHostQueryExecutor(cluster) + if err != nil { + panic(err) + } + defer executor.Close() + + b.Run("Insert", func(b *testing.B) { + for i := 0; i < 10; i++ { + b.Run("Case"+strconv.Itoa(i), func(b *testing.B) { + for j := 0; j < b.N; j++ { + err = executor.Exec(`INSERT INTO single_conn_bench.table1 (pk, ck, v) VALUES (?, ?, ?);`, i, i%5, fmt.Sprintf("Name_%d", i)) + if err != nil { + panic(err) + } + } + }) + } + }) +} + +func init() { + InitializeCluster() + RecordInsertTraffic(10, "/home/sylwiaszunejko/gocql/tests/bench/rec_insert") + RecordSelectTraffic(10, "/home/sylwiaszunejko/gocql/tests/bench/rec_select") +} diff --git a/tests/bench/go.mod b/tests/bench/go.mod index c4fe32247..f63f7779c 100644 --- a/tests/bench/go.mod +++ b/tests/bench/go.mod @@ -1,4 +1,4 @@ -module github.com/gocql/gocql/bench +module github.com/gocql/gocql/bench_test go 1.22 @@ -8,9 +8,9 @@ require ( ) require ( - github.com/golang/snappy v0.0.3 // indirect github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect + github.com/klauspost/compress v1.17.9 // indirect gopkg.in/inf.v0 v0.9.1 // indirect ) -replace github.com/gocql/gocql => github.com/scylladb/gocql v1.14.4 +replace github.com/gocql/gocql => ../.. diff --git a/tests/bench/go.sum b/tests/bench/go.sum index 9747258d9..45b17c3ad 100644 --- a/tests/bench/go.sum +++ b/tests/bench/go.sum @@ -6,22 +6,26 @@ github.com/brianvoe/gofakeit/v6 v6.28.0 h1:Xib46XXuQfmlLS2EXRuJpqcw8St6qSZz75OUo github.com/brianvoe/gofakeit/v6 v6.28.0/go.mod h1:Xj58BMSnFqcn/fAQeSK+/PLtC5kSb7FJIq4JyGa8vEs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= -github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= +github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= +github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/scylladb/gocql v1.14.4 h1:MhevwCfyAraQ6RvZYFO3pF4Lt0YhvQlfg8Eo2HEqVQA= -github.com/scylladb/gocql v1.14.4/go.mod h1:ZLEJ0EVE5JhmtxIW2stgHq/v1P4fWap0qyyXSKyV8K0= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/net v0.0.0-20220526153639-5463443f8c37 h1:lUkvobShwKsOesNfWWlCS5q7fnbG1MEliIzwu886fn8= golang.org/x/net v0.0.0-20220526153639-5463443f8c37/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -35,5 +39,7 @@ gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= diff --git a/tests/bench/rec_insert/127.0.0.2:9042-0Reads b/tests/bench/rec_insert/127.0.0.2:9042-0Reads new file mode 100644 index 000000000..6c942adc9 --- /dev/null +++ b/tests/bench/rec_insert/127.0.0.2:9042-0Reads @@ -0,0 +1,15 @@ +{"data":"hAAAAQYAAAGtAAsAC0NPTVBSRVNTSU9OAAIAA2x6NAAGc25hcHB5AAtDUUxfVkVSU0lPTgABAAUzLjMuMQAcU0NZTExBX0xXVF9BRERfTUVUQURBVEFfTUFSSwABAClMV1RfT1BUSU1JWkFUSU9OX01FVEFfQklUX01BU0s9MjE0NzQ4MzY0OAAQU0NZTExBX05SX1NIQVJEUwABAAIxMgASU0NZTExBX1BBUlRJVElPTkVSAAEAK29yZy5hcGFjaGUuY2Fzc2FuZHJhLmRodC5NdXJtdXIzUGFydGl0aW9uZXIAF1NDWUxMQV9SQVRFX0xJTUlUX0VSUk9SAAEAEEVSUk9SX0NPREU9NjE0NDAADFNDWUxMQV9TSEFSRAABAAEwABlTQ1lMTEFfU0hBUkRJTkdfQUxHT1JJVEhNAAEAGGJpYXNlZC10b2tlbi1yb3VuZC1yb2JpbgAaU0NZTExBX1NIQVJESU5HX0lHTk9SRV9NU0IAAQACMTIAF1NDWUxMQV9TSEFSRF9BV0FSRV9QT1JUAAEABTE5MDQyABJUQUJMRVRTX1JPVVRJTkdfVjEAAQAA","stream_id":1} +{"data":"hAAAQAIAAAAA","stream_id":64} +{"data":"hAAAgAgAAB+HAAAAAgAAAAAAAAASAAZzeXN0ZW0ABWxvY2FsAANrZXkADQAGc3lzdGVtAAVsb2NhbAAMYm9vdHN0cmFwcGVkAA0ABnN5c3RlbQAFbG9jYWwAEWJyb2FkY2FzdF9hZGRyZXNzABAABnN5c3RlbQAFbG9jYWwADGNsdXN0ZXJfbmFtZQANAAZzeXN0ZW0ABWxvY2FsAAtjcWxfdmVyc2lvbgANAAZzeXN0ZW0ABWxvY2FsAAtkYXRhX2NlbnRlcgANAAZzeXN0ZW0ABWxvY2FsABFnb3NzaXBfZ2VuZXJhdGlvbgAJAAZzeXN0ZW0ABWxvY2FsAAdob3N0X2lkAAwABnN5c3RlbQAFbG9jYWwADmxpc3Rlbl9hZGRyZXNzABAABnN5c3RlbQAFbG9jYWwAF25hdGl2ZV9wcm90b2NvbF92ZXJzaW9uAA0ABnN5c3RlbQAFbG9jYWwAC3BhcnRpdGlvbmVyAA0ABnN5c3RlbQAFbG9jYWwABHJhY2sADQAGc3lzdGVtAAVsb2NhbAAPcmVsZWFzZV92ZXJzaW9uAA0ABnN5c3RlbQAFbG9jYWwAC3JwY19hZGRyZXNzABAABnN5c3RlbQAFbG9jYWwADnNjaGVtYV92ZXJzaW9uAAwABnN5c3RlbQAFbG9jYWwAEnN1cHBvcnRlZF9mZWF0dXJlcwANAAZzeXN0ZW0ABWxvY2FsAAZ0b2tlbnMAIgANAAZzeXN0ZW0ABWxvY2FsAAx0cnVuY2F0ZWRfYXQAIQAMAAMAAAABAAAABWxvY2FsAAAACUNPTVBMRVRFRAAAAAR/AAACAAAAAAAAAAUzLjMuMQAAAAtkYXRhY2VudGVyMQAAAARnGM2YAAAAENsQgWIpe06npWm+mckPxrAAAAAEfwAAAgAAAAE0AAAAK29yZy5hcGFjaGUuY2Fzc2FuZHJhLmRodC5NdXJtdXIzUGFydGl0aW9uZXIAAAAFcmFjazEAAAAFMy4wLjgAAAAEfwAAAgAAABAsjINIlf4R7yR2NeuP9NwkAAAFC0FHR1JFR0FURV9TVE9SQUdFX09QVElPTlMsQUxURVJOQVRPUl9UVEwsQ0RDLENEQ19HRU5FUkFUSU9OU19WMixDT0xMRUNUSU9OX0lOREVYSU5HLENPTVBVVEVEX0NPTFVNTlMsQ09SUkVDVF9DT1VOVEVSX09SREVSLENPUlJFQ1RfSURYX1RPS0VOX0lOX1NFQ09OREFSWV9JTkRFWCxDT1JSRUNUX05PTl9DT01QT1VORF9SQU5HRV9UT01CU1RPTkVTLENPUlJFQ1RfU1RBVElDX0NPTVBBQ1RfSU5fTUMsQ09VTlRFUlMsRElHRVNUX0ZPUl9OVUxMX1ZBTFVFUyxESUdFU1RfSU5TRU5TSVRJVkVfVE9fRVhQSVJZLERJR0VTVF9NVUxUSVBBUlRJVElPTl9SRUFELEVNUFRZX1JFUExJQ0FfTVVUQVRJT05fUEFHRVMsRU1QVFlfUkVQTElDQV9QQUdFUyxHUk9VUDBfU0NIRU1BX1ZFUlNJT05JTkcsSElOVEVEX0hBTkRPRkZfU0VQQVJBVEVfQ09OTkVDVElPTixIT1NUX0lEX0JBU0VEX0hJTlRFRF9IQU5ET0ZGLElOREVYRVMsTEFSR0VfQ09MTEVDVElPTl9ERVRFQ1RJT04sTEFSR0VfUEFSVElUSU9OUyxMQV9TU1RBQkxFX0ZPUk1BVCxMV1QsTUFURVJJQUxJWkVEX1ZJRVdTLE1DX1NTVEFCTEVfRk9STUFULE1EX1NTVEFCTEVfRk9STUFULE1FX1NTVEFCTEVfRk9STUFULE5BVElWRV9SRVZFUlNFX1FVRVJJRVMsTk9ORlJPWkVOX1VEVFMsUEFSQUxMRUxJWkVEX0FHR1JFR0FUSU9OLFBFUl9UQUJMRV9DQUNISU5HLFBFUl9UQUJMRV9QQVJUSVRJT05FUlMsUkFOR0VfU0NBTl9EQVRBX1ZBUklBTlQsUkFOR0VfVE9NQlNUT05FUyxSQU5HRV9UT01CU1RPTkVfQU5EX0RFQURfUk9XU19ERVRFQ1RJT04sUk9MRVMsUk9XX0xFVkVMX1JFUEFJUixTQ0hFTUFfQ09NTUlUTE9HLFNDSEVNQV9UQUJMRVNfVjMsU0VDT05EQVJZX0lOREVYRVNfT05fU1RBVElDX0NPTFVNTlMsU0VQQVJBVEVfUEFHRV9TSVpFX0FORF9TQUZFVFlfTElNSVQsU1RSRUFNX1dJVEhfUlBDX1NUUkVBTSxTVVBQT1JUU19DT05TSVNURU5UX1RPUE9MT0dZX0NIQU5HRVMsU1VQUE9SVFNfUkFGVF9DTFVTVEVSX01BTkFHRU1FTlQsVEFCTEVfRElHRVNUX0lOU0VOU0lUSVZFX1RPX0VYUElSWSxUT01CU1RPTkVfR0NfT1BUSU9OUyxUT1BPTE9HWV9SRVFVRVNUU19UWVBFX0NPTFVNTixUUlVOQ0FUSU9OX1RBQkxFLFRZUEVEX0VSUk9SU19JTl9SRUFEX1JQQyxVREEsVURBX05BVElWRV9QQVJBTExFTElaRURfQUdHUkVHQVRJT04sVU5CT1VOREVEX1JBTkdFX1RPTUJTVE9ORVMsVVVJRF9TU1RBQkxFX0lERU5USUZJRVJTLFZJRVdfVklSVFVBTF9DT0xVTU5TLFdSSVRFX0ZBSUxVUkVfUkVQTFksWFhIQVNILFpFUk9fVE9LRU5fTk9ERVMAABdqAAABAAAAABQtMTAzMTQ4MTY0MDg3MTc5NzU0MgAAABQtMTEyMTI2NTc1NTAxOTExNTYzMQAAABQtMTEyNzY5NjE2MzgwMzQ1MTMyNgAAABQtMTE1MDY2NDYxNTMxMjM5NTA4NQAAABQtMTE4MTQxOTQ1NDYzNjc5MjczNQAAABQtMTIyODc2NzA5Nzk0NzM0OTk0OQAAABQtMTI4NjEwMDM3NTY5NzQxMDk5MAAAABQtMTI5Njk2NTQyNDQ1NzQ3MTQ1MwAAABQtMTM3OTc4MTg4OTYzMjA5MzIyNQAAABQtMTQ5NDk0NjIwNTY3MjI0Nzk3NwAAABQtMTQ5NTIwNDk4ODA2Njg1MzA5NQAAABQtMTU4MzE0NjA1OTM0Mjc3NjcxMQAAABQtMTU4ODU4MzE2NzU2MjUzMjI3NAAAABQtMTY1MjEwNzcyMzQ3ODk4NjEwMQAAABQtMTY2MTQ5NDAwMzQyNzAyNjczNAAAABQtMTczMzM1ODI3NDI3MzE4ODQ5NwAAABQtMTc0MDkzNzU4MDc2NzQ0MzI0NQAAABItMTg1ODAzNTIxNjI5MDE5NTkAAAAULTE4NzIxMDAxODg5MTU3OTkwNzYAAAAULTE5NDA5NzU2MTgwMjM4MDA5OTIAAAAULTE5NTA1NzM4NjA1NjE1NzA0MzcAAAAULTIxMDgzMDM0NTY2NjMxNzQyNjMAAAAULTIxNjYwODQzMDE0MjUxODAwMDUAAAAULTIyNDU0MDY5OTM4MTc1OTY2OTMAAAAULTIzMjE1Nzc5MTE0NjQ5NjcxNjUAAAAULTIzNTM4MzQwMDgyMjYxNDUyNjcAAAAULTIzODI1OTIyOTkxOTkyNjc1NTEAAAAULTI2Nzk0NjExODk4Njk4NDAwNDcAAAAULTI3MzU4OTU5MzQxMDI3OTQ1ODcAAAAULTI3ODY3NTExODg2ODg0NzYwMTcAAAAULTI4MTE2NzAxMTYwNzM5NTk2NzQAAAAULTI5MTE3MDQxOTgzNDQwNzQ1MTkAAAAULTI5NDQ0MDg3MjU0MTIzNjI2MjIAAAAULTI5NjM4NTg2ODg1NTYzODc3MjAAAAAULTI5NjUzMTg1NTA3NzQ0MTkzMzgAAAAULTMwNTk5NzM2NzY5ODk1NDU0MDcAAAAULTMwODQ4ODA2Mjc3NjUwMTk0ODkAAAAULTM0MDUwNDk4NjgyODcwNjQxNTMAAAAULTM0MTkyNDQ2NjM3NDQ3Mjk1NjAAAAAULTM0OTM3NDE4OTI1NTM5NDYzOTgAAAAULTM1NjI3NDExNzY2MDMwOTE0NDIAAAATLTM2MzgwODQ2NDA4NDk2NzI4NAAAABQtMzY0Nzg3NTUyMDYyMTc4Nzc3NgAAABQtMzg0MjczMTgwNDY0MjI3MjA5MAAAABQtMzg2NjE1MjM2NTEyNjYwMTgzOQAAABQtMzg3NzQwOTU2NDY0OTQxNzMzOAAAABQtMzk1ODM2NTYzNzI5NjUwMTY1NgAAABQtNDA2NzQ5ODY0ODkyMTUwODk1MQAAABQtNDA4NzkxNzcxNjc0MjUyNzAzNgAAABQtNDA5MDIyMDYyMzIxMzQ0MzI4MgAAABQtNDExMjU4NDIwNTQ0OTc2MDU0MwAAABMtNDEyMjA2NjAwMTkyMTg1NzMyAAAAFC00MjM3OTc4NTI0MzAwOTgzNzA0AAAAFC00MzI0MTYxMTEwNTM1ODY2NTI4AAAAFC00MzgwMDY0MjYyNTA2NjUxODM2AAAAFC00Njc5MDY0MDk4NTQ5MzgzNDEwAAAAFC00NzAwMzQ3NTA1MjM3Nzc4MDcxAAAAFC00Nzc2Mjk2MDEyNzA1NzE1ODg2AAAAFC00ODIzOTUzNTEyNDE0MTUxOTE3AAAAFC01MDI3MjY3NTQ0NDMxNzU5MjEyAAAAFC01MDYxOTI3MDUyODMyNTU0NDEzAAAAFC01MDk1MDM5NTQ0ODU2OTMzNDQ0AAAAFC01MTI5NzU1Mjc5MTE0NjA1ODk3AAAAFC01MTk3MjUwMzgwODMxMzUzNTAzAAAAFC01MjMxOTE1MDc1NDQ1NzQyNjk5AAAAFC01MjY2MTQzMTI3MzgzMDA4NDExAAAAFC01NDEwNDgxNjc1MTY5MDQyMDExAAAAFC01NDI2NTE3ODEyNjc3NzI2MzA5AAAAFC01NDY5NTM2NjM4MzkyMzgxMjM2AAAAFC01NDc5OTMzOTQwMDc4NzU2OTYzAAAAEy01NTY0MDY2Njg1NTg5OTEyNzQAAAAULTU1NjQ2NzI2ODQ0NDg5ODc1NDkAAAASLTU2MjAxMTMwNTQzNTQwOTQwAAAAFC01NjQyNzYxOTQwNjI4NjM1NTgwAAAAFC01NjgyMDU2ODM3MzQ3NTE4Nzk1AAAAFC01NzcyNzM2NTIzNjA4ODE4Njk4AAAAFC01ODU2MjY5MzQxMjQ3MDgzNTU3AAAAFC01OTAyMTczMjM3MTgzMDA4NDY1AAAAFC01OTc4MzYzMzg1Njk2OTM1NTUyAAAAFC02MDE1OTQ4MDA4NzU5OTQ3ODI1AAAAFC02MTU1Mjk5NTU3OTc4NzA2OTE1AAAAFC02MjA3MzAzMzQ5NDk0MjMxMjk0AAAAFC02MzE5MzU2NTUxNTYyOTE2OTMyAAAAFC02MzI0NjU1ODA5NTgxMDc3MTY2AAAAFC02NDI0Mzg1NjE0NjU5NDkwMDg4AAAAEy02NTU4NTYyMzk4NjA3NzQwNjEAAAAULTY1ODA1ODk4OTA1ODE3Mzc1OTcAAAAULTY2MTgxMTAxNDQ0NjYxNzE2NDgAAAATLTY3Njc1NjQ3MjMzODMwNzIyNgAAABQtNjkyNDA2Mjk4OTk3MDk5NDYzMQAAABQtNjkzNDY3MDM2NjU5NDE4NDE3NwAAABQtNjk3Njk1OTI3NjIzMjMzNDg2OQAAABQtNzA1NzQ1OTg1MzI5NTc4NTIwNAAAABQtNzE3NzkwMDY1NTI1OTI5NjU3OAAAABMtNzI1MTk2NjY5Mzg5MzgxMzI2AAAAFC03MjkwOTI4MDYyMzE4NTUxMDc4AAAAFC03MzMwNTIyODMzODUzMjA3NTY2AAAAFC03Mzk5NjM4OTgwNTgyMDAzOTY0AAAAFC03NDY0NzY1Mzc2NDEzOTM4NTk4AAAAFC03NDcxNTIwMTIwMDQ0MjI0MDQyAAAAFC03NDc0NjM1MjYyNzI2NTI2MTc4AAAAFC03NzAxNzM4MzE2OTEzNzIxMjE1AAAAFC03NzA4MDQyMDAxNjk2MzI1MzgwAAAAFC03ODkyNTI3Mjc4MDI1OTgwNDk5AAAAFC03OTE4NTI4Mzk5NjA5ODI5MzgyAAAAFC03OTQwNDEyMDkyODA0ODgzODM5AAAAFC03OTY0MTE1MzczODcxMzY4Mjk3AAAAFC03OTY3NDg2MTA1NjE1MTE4NzQ2AAAAFC03OTcwNDI0MDM4NzA3NTIyOTY5AAAAFC04MDkwNzA1OTQ0OTY1MDE2NDIwAAAAFC04MTAwODg5MDA3NzExMTgzMTU1AAAAFC04MTE2Njc4NTYyNzc1MzM1ODI4AAAAFC04MTcxODk0OTcyMDE4NzI0MDEzAAAAFC04Mjg0NDYxNDExNjYzMjIzODk4AAAAFC04MzQ0NjM4NjE3ODIwODU5NTQwAAAAFC04MzQ1ODEyOTM1NDkzNjQwNzU0AAAAFC04NTg4NjAzMDEyMzM1ODU5OTc5AAAAEy04NzExNjY0MDkxMjcxMDQxNDMAAAAULTg3MjY3OTM1NDEyMDQ2NDI4MzEAAAAULTg4NDg5MTg1NTQ3NTg1Mjc1MzkAAAAULTg4NzgwODgxMDQ5NTM0MTg4NDcAAAAULTg4ODUwNzE4MTUwODIwMTk5NTcAAAAULTg5NTk0NTM2MDkyOTkzODY2ODYAAAAULTkwNDE5ODI4ODcwOTA4OTQ3MDMAAAAULTkxNTE2MjE0NjMyNzI1OTc2NzYAAAAULTkxNzA5OTM0MDU1Nzc2NjQ4MzEAAAAULTkyMjI2NDIyNjY4MDgyODU1NzAAAAATMTAzMTg2NzU3Njc2ODQ5MzY4NwAAABMxMDU4OTE1MTAyMzA4MTQxMjkyAAAAEjEwNjU5MDgzMDY1Mzc1MjIzOAAAABMxMTg3MjkxOTk4NjM4NzAyODk5AAAAEzEyMjk4OTQyNDM2MjU0NDk0NjIAAAATMTI3Njc3MDUzODUwNDA0NTQ1MwAAABIxMjc3MjQ4NTUwNjMxMTg5NjAAAAATMTM3NjA3Mjc2MTIwOTcyOTI5MgAAABMxNDcyNTE1NjgzNjk5NTc5MTUwAAAAEzE1MDQyNDA4MzAzMDEyMjM0NjcAAAASMTU2NjYzMzQ5MjQxNzUzODMzAAAAEzE2OTIyMDI3NDIzNTk0Njg3MzAAAAATMTc1MDc2NDg4MjE0NjMxNjczMgAAABMxODg5OTI5MzIzOTQ1NTkwMDMyAAAAEzE5MzcwNzYyNjQwMTEyOTM1MTMAAAATMTk1ODgxOTA0MDM3NDEwNTc1NwAAABMyMDQ2MTcyMTIxNzMwOTgwMjYxAAAAEzIwOTgyNzAzMDg3NzY0MTY3MDgAAAATMjExMTkzNDg1NDE1OTY3OTIwMgAAABMyMTk0NjQ3ODIwNTQ5OTY4NjM5AAAAEzIyNDk2Njg5ODExOTk2NTM3MTEAAAATMjI1MzQwMDk1OTAyNzEyMzI2NwAAABMyMjcyMDczODA2MTgyMTcwODM3AAAAEzIyOTkyMDExNjUwNTExNTg3MTcAAAATMjM1MDczMjk4MzIxMjA5MDA1MAAAABMyMzcyMjczMDU0ODU5NjI2MzY1AAAAEzIzOTMyNzQ0Mzg5MDM1MTM1NDIAAAATMjUxMTg0NTIxODk0NzQzOTQwNAAAABMyNTU5MDk3MjQwNTA1MzA5MDgxAAAAEzI1Njg4MDA1MDIyNTc3MzE1ODUAAAATMjc1MTU3NTE2MTMzMTQ0MzI4MgAAABMyODM1MDYxMzI0NTIyMzgzNTIyAAAAEzI5MzQzMTUzMTg2NjI4NzcwODEAAAATMjk2Njc5Nzk1MDk1MTg1ODA1MwAAABMyOTkwNjYzMTc1MDI3NTIwMDQ3AAAAEzMwODA5Nzg3MjQ2Njk0NzQyOTkAAAATMzEyMjM2NzkyODI1NTI3MTE1MgAAABMzMTc0MDU0NTEwMzMxMzQ4ODM2AAAAEzMyNTU5Mjc3MjQ1ODY5NDgwOTQAAAATMzMwMDMyNzIwNDExMjkwOTM4MQAAABMzMzU0NDUxNjAyOTMzMzk1Mjg5AAAAEzM1MTM4OTE5MTUwNzU5NjMzNzUAAAATMzU3Njg1MzgzMDE2ODY4MTY5MAAAABIzNjYwNDM3NjcyNDE5MDg3OTMAAAATMzc1Njc3MDkwMjczMTkzNzcwNgAAABMzNzcyNDg5NTE3MjY2MTI1OTc3AAAAEzM4NjY2MzIxMjc0NjU2MDY4MTMAAAATNDA2ODE3MDQ5NDQzODU0OTMxNgAAABM0MjI2MDMxMzk3MzA3ODUxMzc0AAAAEzQzNzIxMzY1MTk3NjkxMzIyMTcAAAATNDM3OTE4NjcyNTEwMTc2MDAxOQAAABM0Mzg3Nzg0Mzc0MTYzNDEwOTQ0AAAAEzQ0MDA4ODMwODUzODk3ODExMjEAAAATNDQ0NjM4NzgwNjA4ODk2OTIzMAAAABM0NjAzMzEwMTg4OTgyNzQ2NzMzAAAAEzQ2MDM0NTM0MDc5MzU0NTc3NTYAAAATNDY3NzY0MzI2OTI5OTg1NDQxNwAAABM0Njk3ODkzODMxMzUwMzEwNTk4AAAAEzQ3MDc1MDA1NjkzOTk4NzIxMTEAAAATNDczODYwNjY2MjQ4ODM4MTA1OQAAABM0NzUxMzY1MTUxNjYwNDgzODA1AAAAEzQ3NzQzODY5MzQxOTU2NjA1NjAAAAATNDc4NTE3NjEyNDY0OTczNjA1NwAAABM0Nzk0MjY3MjczNjEwNTA0MDk0AAAAEzQ5NjUwMjA4MjY0NDc3MDkxNjcAAAATNTA2MjQ2NTcyOTY5ODk4Njk4OQAAABM1MDcxOTgxNDc2MDA2ODU0NDM5AAAAEzUxMjM5MzQyNzcyNzE2MDU5ODAAAAATNTE1MjY1OTY5ODYwMjc5NDY0NgAAABM1MTc1Mzc4MDU2NTAzOTY2MTI1AAAAEjU0MjQ1MTM0OTQ2NzEyNzQxMgAAABE1NDk5ODkxNDY5MjY0MzcwMAAAABM1NTg1NzEzMTU5NDQzODcyNzc2AAAAEjU3MjE5OTg5NTg0OTIwNDI4MAAAABM1NzI0MzcyODY3NzY5MTU5MzIxAAAAEzU3OTQyODYwMTg0ODg2MTE2NzQAAAASNTgxMTYyOTU0OTk3OTUyNjc5AAAAEzU4NzAxMjg3NTA4MjE3NTM3ODAAAAATNjA5MzQ4MzQ1MjQ5MDUyNTEzNgAAABI2MDk2MjQ0OTU3Njg0NDM5OTkAAAATNjE2OTg4OTE5MDcyMjQ0NjE1MgAAABM2MTc4MTg4NTk3MDY4NjY4MDg0AAAAEzYzOTg3MTg0ODk1MjYzODEwOTIAAAATNjQ1NTQyOTYzNjM5NTE3NDQyMQAAABM2NDY5NzQ3Njg5Nzg4ODQwMjE2AAAAEzY1OTc4NDg5NTg3MzEyNDMzNzMAAAATNjY0MjEwNjA2NzU2NzE3MjU3MgAAABM2Njc4NTAyOTU3NTIyMDczNzQwAAAAEzY3MDQ0MjA2MDU3NjMyOTc3MDcAAAATNjc0NDAzNTk2NTM4NDgxMzkxMgAAABM2NzY4MDQyMjI2NTUyNzI2NjgxAAAAEzY3NzU4NTI5MTU0ODMzMjM1MjYAAAATNjkyOTc0ODcxODYxMzQ4MDYxMwAAABM3MDU0MjQ2OTM0OTE4MTEwMDY5AAAAEzcwNjcyODUzOTU4NzE3ODc2ODQAAAATNzE1MDA4NzcxNzYwODQyNTk5OAAAABI3MTg4MTU4MTYzMjU3Njc5NTYAAAATNzIyNDUwMjQ5OTU4MDI1MTI2MAAAABM3MjUzNTAyMzE1NjM0MzIxNTQ4AAAAEzczNjY0Mzg0NDc0ODE4MjIxODkAAAATNzUxMjkyNzk5ODI5NDIyOTA4MAAAABM3NTk5OTY5MTMxNTg3NzY2NzM5AAAAEzc2NDc1MDc4MjUxMjg2MjQ2NDUAAAATNzY0ODYzOTU5MjIyNzQzMDExNwAAABM3NjUzMDI2MzkwMTg4MDYyOTUxAAAAEzc3Nzc4MDIwMzEzMzg3NDY4MjQAAAATNzg0MjAxNzA4ODEwODM5MDUyNAAAABI3ODU0NjE2MjI0MTU4MTIyNTEAAAATNzg1OTg4NjczNzg4MTQ1ODg4MQAAABM3OTM2ODg4NjIyMjM5MTgzMTE1AAAAEzgxMTE5OTg0MjA1NDgwNzYxOTEAAAATODE0Nzk3MDYwNzkyODM1NTc0OQAAABM4MTcyODg4NTEwOTU2MTQwMTMxAAAAEzgyMTYxNzc1MDI5NjUzMDE1MjkAAAASODI5OTU4NzM4MDQ5ODg1OTg5AAAAEzgzNDEyNzUwNjk0NjY0MTAwNzkAAAATODM2NDU0MDI2MDQ0MDQ2NTczMQAAABM4MzY4NTgwNjI1Nzc1NDg3NDQ2AAAAEzgzNzUxNzQwNjIwNTY3Mjk0NDIAAAATODQwNTc5NzMyNjE3NTg3MjIzNQAAABM4NTczMzgwMjA2MjY0MDYxNDk4AAAAEzg2MDEyMzg4OTg1NTk4NTI1OTMAAAATODY3NzYwNjIxMTU2NjE2ODA4MAAAABM4NzUyNTIwMzEzMTYzMzcxNjk2AAAAEzg4MDg4MDM2NjUwNTY4OTEwOTUAAAATODg0MzgyMTcwMDgwNTgzMTkwNQAAABI4ODU3MjI4MTU3NDM4MzQ1NjQAAAATODk4MDQxMzg2ODcwOTg1MTAwNAAAABM5MDQ2ODk4NDI1NDMzMzY0MDgy/////w==","stream_id":128} +{"data":"hAAAwAIAAAAA","stream_id":192} +{"data":"hAABAAgAAABYAAAABAAQHnu5NL7K3LWoBiT3dKFi9QAAAAEAAAADAAAAAQAAABFzaW5nbGVfY29ubl9iZW5jaAAGdGFibGUxAAJwawAJAAJjawAJAAF2AA0AAAAEAAAAAA==","stream_id":256} +{"data":"hAABQAgAAAAEAAAAAQ==","stream_id":320} +{"data":"hAABgAgAAAAEAAAAAQ==","stream_id":384} +{"data":"hAABwAgAAAAEAAAAAQ==","stream_id":448} +{"data":"hAACAAgAAAAEAAAAAQ==","stream_id":512} +{"data":"hAACQAgAAAAEAAAAAQ==","stream_id":576} +{"data":"hAACgAgAAAAEAAAAAQ==","stream_id":640} +{"data":"hAACwAgAAAAEAAAAAQ==","stream_id":704} +{"data":"hAADAAgAAAAEAAAAAQ==","stream_id":768} +{"data":"hAADQAgAAAAEAAAAAQ==","stream_id":832} +{"data":"hAADgAgAAAAEAAAAAQ==","stream_id":896} diff --git a/tests/bench/rec_insert/127.0.0.2:9042-0Writes b/tests/bench/rec_insert/127.0.0.2:9042-0Writes new file mode 100644 index 000000000..1fe793e5c --- /dev/null +++ b/tests/bench/rec_insert/127.0.0.2:9042-0Writes @@ -0,0 +1,15 @@ +{"data":"BAAwMAUAAAAA","hash":359591853454385582,"stream_id":1} +{"data":"BAAwMAEAAADGAAYAC0NRTF9WRVJTSU9OAAUzLjAuMAALRFJJVkVSX05BTUUAFVNjeWxsYURCIEdvQ1FMIERyaXZlcgAORFJJVkVSX1ZFUlNJT04AAAAcU0NZTExBX0xXVF9BRERfTUVUQURBVEFfTUFSSwApTFdUX09QVElNSVpBVElPTl9NRVRBX0JJVF9NQVNLPTIxNDc0ODM2NDgAF1NDWUxMQV9SQVRFX0xJTUlUX0VSUk9SAAAAElRBQkxFVFNfUk9VVElOR19WMQAA","hash":8085671273868419917,"stream_id":64} +{"data":"BAAwMAcAAAA/AAAALFNFTEVDVCAqIEZST00gc3lzdGVtLmxvY2FsIFdIRVJFIGtleT0nbG9jYWwnAAEkAAATiAAGJZ4CgaDJ","hash":-717339809275344217,"stream_id":128} +{"data":"BAAwMAsAAAAxAAMAD1RPUE9MT0dZX0NIQU5HRQANU1RBVFVTX0NIQU5HRQANU0NIRU1BX0NIQU5HRQ==","hash":4704664126603889539,"stream_id":192} +{"data":"BAAwMAkAAABGAAAAQklOU0VSVCBJTlRPIHNpbmdsZV9jb25uX2JlbmNoLnRhYmxlMSAocGssIGNrLCB2KSBWQUxVRVMgKD8sID8sID8pOw==","hash":-5674055785571917500,"stream_id":256} +{"data":"BAAwMAoAAAA9ABAee7k0vsrctagGJPd0oWL1AAElAAMAAAAEAAAAAAAAAAQAAAAAAAAABk5hbWVfMAAAE4gABiWeAoGnQg==","hash":7224040342937182736,"stream_id":320} +{"data":"BAAwMAoAAAA9ABAee7k0vsrctagGJPd0oWL1AAElAAMAAAAEAAAAAQAAAAQAAAABAAAABk5hbWVfMQAAE4gABiWeAoGoaQ==","hash":-7332099700596195540,"stream_id":384} +{"data":"BAAwMAoAAAA9ABAee7k0vsrctagGJPd0oWL1AAElAAMAAAAEAAAAAgAAAAQAAAACAAAABk5hbWVfMgAAE4gABiWeAoGpuw==","hash":5767148378362010848,"stream_id":448} +{"data":"BAAwMAoAAAA9ABAee7k0vsrctagGJPd0oWL1AAElAAMAAAAEAAAAAwAAAAQAAAADAAAABk5hbWVfMwAAE4gABiWeAoGqrA==","hash":-3907146155817402923,"stream_id":512} +{"data":"BAAwMAoAAAA9ABAee7k0vsrctagGJPd0oWL1AAElAAMAAAAEAAAABAAAAAQAAAAEAAAABk5hbWVfNAAAE4gABiWeAoGrsw==","hash":8506228589680478658,"stream_id":576} +{"data":"BAAwMAoAAAA9ABAee7k0vsrctagGJPd0oWL1AAElAAMAAAAEAAAABQAAAAQAAAAAAAAABk5hbWVfNQAAE4gABiWeAoGsuQ==","hash":-197613636814136239,"stream_id":640} +{"data":"BAAwMAoAAAA9ABAee7k0vsrctagGJPd0oWL1AAElAAMAAAAEAAAABgAAAAQAAAABAAAABk5hbWVfNgAAE4gABiWeAoGttQ==","hash":-982903991118432256,"stream_id":704} +{"data":"BAAwMAoAAAA9ABAee7k0vsrctagGJPd0oWL1AAElAAMAAAAEAAAABwAAAAQAAAACAAAABk5hbWVfNwAAE4gABiWeAoGuqQ==","hash":-7756680800392658313,"stream_id":768} +{"data":"BAAwMAoAAAA9ABAee7k0vsrctagGJPd0oWL1AAElAAMAAAAEAAAACAAAAAQAAAADAAAABk5hbWVfOAAAE4gABiWeAoGvsA==","hash":6288427989584287254,"stream_id":832} +{"data":"BAAwMAoAAAA9ABAee7k0vsrctagGJPd0oWL1AAElAAMAAAAEAAAACQAAAAQAAAAEAAAABk5hbWVfOQAAE4gABiWeAoGwsw==","hash":4427004464783144092,"stream_id":896} diff --git a/tests/bench/rec_select/127.0.0.2:9042-0Reads b/tests/bench/rec_select/127.0.0.2:9042-0Reads new file mode 100644 index 000000000..919f67c8b --- /dev/null +++ b/tests/bench/rec_select/127.0.0.2:9042-0Reads @@ -0,0 +1,15 @@ +{"data":"hAAAAQYAAAGtAAsAC0NPTVBSRVNTSU9OAAIAA2x6NAAGc25hcHB5AAtDUUxfVkVSU0lPTgABAAUzLjMuMQAcU0NZTExBX0xXVF9BRERfTUVUQURBVEFfTUFSSwABAClMV1RfT1BUSU1JWkFUSU9OX01FVEFfQklUX01BU0s9MjE0NzQ4MzY0OAAQU0NZTExBX05SX1NIQVJEUwABAAIxMgASU0NZTExBX1BBUlRJVElPTkVSAAEAK29yZy5hcGFjaGUuY2Fzc2FuZHJhLmRodC5NdXJtdXIzUGFydGl0aW9uZXIAF1NDWUxMQV9SQVRFX0xJTUlUX0VSUk9SAAEAEEVSUk9SX0NPREU9NjE0NDAADFNDWUxMQV9TSEFSRAABAAEwABlTQ1lMTEFfU0hBUkRJTkdfQUxHT1JJVEhNAAEAGGJpYXNlZC10b2tlbi1yb3VuZC1yb2JpbgAaU0NZTExBX1NIQVJESU5HX0lHTk9SRV9NU0IAAQACMTIAF1NDWUxMQV9TSEFSRF9BV0FSRV9QT1JUAAEABTE5MDQyABJUQUJMRVRTX1JPVVRJTkdfVjEAAQAA","stream_id":1} +{"data":"hAAAQAIAAAAA","stream_id":64} +{"data":"hAAAgAgAAB+HAAAAAgAAAAAAAAASAAZzeXN0ZW0ABWxvY2FsAANrZXkADQAGc3lzdGVtAAVsb2NhbAAMYm9vdHN0cmFwcGVkAA0ABnN5c3RlbQAFbG9jYWwAEWJyb2FkY2FzdF9hZGRyZXNzABAABnN5c3RlbQAFbG9jYWwADGNsdXN0ZXJfbmFtZQANAAZzeXN0ZW0ABWxvY2FsAAtjcWxfdmVyc2lvbgANAAZzeXN0ZW0ABWxvY2FsAAtkYXRhX2NlbnRlcgANAAZzeXN0ZW0ABWxvY2FsABFnb3NzaXBfZ2VuZXJhdGlvbgAJAAZzeXN0ZW0ABWxvY2FsAAdob3N0X2lkAAwABnN5c3RlbQAFbG9jYWwADmxpc3Rlbl9hZGRyZXNzABAABnN5c3RlbQAFbG9jYWwAF25hdGl2ZV9wcm90b2NvbF92ZXJzaW9uAA0ABnN5c3RlbQAFbG9jYWwAC3BhcnRpdGlvbmVyAA0ABnN5c3RlbQAFbG9jYWwABHJhY2sADQAGc3lzdGVtAAVsb2NhbAAPcmVsZWFzZV92ZXJzaW9uAA0ABnN5c3RlbQAFbG9jYWwAC3JwY19hZGRyZXNzABAABnN5c3RlbQAFbG9jYWwADnNjaGVtYV92ZXJzaW9uAAwABnN5c3RlbQAFbG9jYWwAEnN1cHBvcnRlZF9mZWF0dXJlcwANAAZzeXN0ZW0ABWxvY2FsAAZ0b2tlbnMAIgANAAZzeXN0ZW0ABWxvY2FsAAx0cnVuY2F0ZWRfYXQAIQAMAAMAAAABAAAABWxvY2FsAAAACUNPTVBMRVRFRAAAAAR/AAACAAAAAAAAAAUzLjMuMQAAAAtkYXRhY2VudGVyMQAAAARnGM2YAAAAENsQgWIpe06npWm+mckPxrAAAAAEfwAAAgAAAAE0AAAAK29yZy5hcGFjaGUuY2Fzc2FuZHJhLmRodC5NdXJtdXIzUGFydGl0aW9uZXIAAAAFcmFjazEAAAAFMy4wLjgAAAAEfwAAAgAAABAsjINIlf4R7yR2NeuP9NwkAAAFC0FHR1JFR0FURV9TVE9SQUdFX09QVElPTlMsQUxURVJOQVRPUl9UVEwsQ0RDLENEQ19HRU5FUkFUSU9OU19WMixDT0xMRUNUSU9OX0lOREVYSU5HLENPTVBVVEVEX0NPTFVNTlMsQ09SUkVDVF9DT1VOVEVSX09SREVSLENPUlJFQ1RfSURYX1RPS0VOX0lOX1NFQ09OREFSWV9JTkRFWCxDT1JSRUNUX05PTl9DT01QT1VORF9SQU5HRV9UT01CU1RPTkVTLENPUlJFQ1RfU1RBVElDX0NPTVBBQ1RfSU5fTUMsQ09VTlRFUlMsRElHRVNUX0ZPUl9OVUxMX1ZBTFVFUyxESUdFU1RfSU5TRU5TSVRJVkVfVE9fRVhQSVJZLERJR0VTVF9NVUxUSVBBUlRJVElPTl9SRUFELEVNUFRZX1JFUExJQ0FfTVVUQVRJT05fUEFHRVMsRU1QVFlfUkVQTElDQV9QQUdFUyxHUk9VUDBfU0NIRU1BX1ZFUlNJT05JTkcsSElOVEVEX0hBTkRPRkZfU0VQQVJBVEVfQ09OTkVDVElPTixIT1NUX0lEX0JBU0VEX0hJTlRFRF9IQU5ET0ZGLElOREVYRVMsTEFSR0VfQ09MTEVDVElPTl9ERVRFQ1RJT04sTEFSR0VfUEFSVElUSU9OUyxMQV9TU1RBQkxFX0ZPUk1BVCxMV1QsTUFURVJJQUxJWkVEX1ZJRVdTLE1DX1NTVEFCTEVfRk9STUFULE1EX1NTVEFCTEVfRk9STUFULE1FX1NTVEFCTEVfRk9STUFULE5BVElWRV9SRVZFUlNFX1FVRVJJRVMsTk9ORlJPWkVOX1VEVFMsUEFSQUxMRUxJWkVEX0FHR1JFR0FUSU9OLFBFUl9UQUJMRV9DQUNISU5HLFBFUl9UQUJMRV9QQVJUSVRJT05FUlMsUkFOR0VfU0NBTl9EQVRBX1ZBUklBTlQsUkFOR0VfVE9NQlNUT05FUyxSQU5HRV9UT01CU1RPTkVfQU5EX0RFQURfUk9XU19ERVRFQ1RJT04sUk9MRVMsUk9XX0xFVkVMX1JFUEFJUixTQ0hFTUFfQ09NTUlUTE9HLFNDSEVNQV9UQUJMRVNfVjMsU0VDT05EQVJZX0lOREVYRVNfT05fU1RBVElDX0NPTFVNTlMsU0VQQVJBVEVfUEFHRV9TSVpFX0FORF9TQUZFVFlfTElNSVQsU1RSRUFNX1dJVEhfUlBDX1NUUkVBTSxTVVBQT1JUU19DT05TSVNURU5UX1RPUE9MT0dZX0NIQU5HRVMsU1VQUE9SVFNfUkFGVF9DTFVTVEVSX01BTkFHRU1FTlQsVEFCTEVfRElHRVNUX0lOU0VOU0lUSVZFX1RPX0VYUElSWSxUT01CU1RPTkVfR0NfT1BUSU9OUyxUT1BPTE9HWV9SRVFVRVNUU19UWVBFX0NPTFVNTixUUlVOQ0FUSU9OX1RBQkxFLFRZUEVEX0VSUk9SU19JTl9SRUFEX1JQQyxVREEsVURBX05BVElWRV9QQVJBTExFTElaRURfQUdHUkVHQVRJT04sVU5CT1VOREVEX1JBTkdFX1RPTUJTVE9ORVMsVVVJRF9TU1RBQkxFX0lERU5USUZJRVJTLFZJRVdfVklSVFVBTF9DT0xVTU5TLFdSSVRFX0ZBSUxVUkVfUkVQTFksWFhIQVNILFpFUk9fVE9LRU5fTk9ERVMAABdqAAABAAAAABQtMTAzMTQ4MTY0MDg3MTc5NzU0MgAAABQtMTEyMTI2NTc1NTAxOTExNTYzMQAAABQtMTEyNzY5NjE2MzgwMzQ1MTMyNgAAABQtMTE1MDY2NDYxNTMxMjM5NTA4NQAAABQtMTE4MTQxOTQ1NDYzNjc5MjczNQAAABQtMTIyODc2NzA5Nzk0NzM0OTk0OQAAABQtMTI4NjEwMDM3NTY5NzQxMDk5MAAAABQtMTI5Njk2NTQyNDQ1NzQ3MTQ1MwAAABQtMTM3OTc4MTg4OTYzMjA5MzIyNQAAABQtMTQ5NDk0NjIwNTY3MjI0Nzk3NwAAABQtMTQ5NTIwNDk4ODA2Njg1MzA5NQAAABQtMTU4MzE0NjA1OTM0Mjc3NjcxMQAAABQtMTU4ODU4MzE2NzU2MjUzMjI3NAAAABQtMTY1MjEwNzcyMzQ3ODk4NjEwMQAAABQtMTY2MTQ5NDAwMzQyNzAyNjczNAAAABQtMTczMzM1ODI3NDI3MzE4ODQ5NwAAABQtMTc0MDkzNzU4MDc2NzQ0MzI0NQAAABItMTg1ODAzNTIxNjI5MDE5NTkAAAAULTE4NzIxMDAxODg5MTU3OTkwNzYAAAAULTE5NDA5NzU2MTgwMjM4MDA5OTIAAAAULTE5NTA1NzM4NjA1NjE1NzA0MzcAAAAULTIxMDgzMDM0NTY2NjMxNzQyNjMAAAAULTIxNjYwODQzMDE0MjUxODAwMDUAAAAULTIyNDU0MDY5OTM4MTc1OTY2OTMAAAAULTIzMjE1Nzc5MTE0NjQ5NjcxNjUAAAAULTIzNTM4MzQwMDgyMjYxNDUyNjcAAAAULTIzODI1OTIyOTkxOTkyNjc1NTEAAAAULTI2Nzk0NjExODk4Njk4NDAwNDcAAAAULTI3MzU4OTU5MzQxMDI3OTQ1ODcAAAAULTI3ODY3NTExODg2ODg0NzYwMTcAAAAULTI4MTE2NzAxMTYwNzM5NTk2NzQAAAAULTI5MTE3MDQxOTgzNDQwNzQ1MTkAAAAULTI5NDQ0MDg3MjU0MTIzNjI2MjIAAAAULTI5NjM4NTg2ODg1NTYzODc3MjAAAAAULTI5NjUzMTg1NTA3NzQ0MTkzMzgAAAAULTMwNTk5NzM2NzY5ODk1NDU0MDcAAAAULTMwODQ4ODA2Mjc3NjUwMTk0ODkAAAAULTM0MDUwNDk4NjgyODcwNjQxNTMAAAAULTM0MTkyNDQ2NjM3NDQ3Mjk1NjAAAAAULTM0OTM3NDE4OTI1NTM5NDYzOTgAAAAULTM1NjI3NDExNzY2MDMwOTE0NDIAAAATLTM2MzgwODQ2NDA4NDk2NzI4NAAAABQtMzY0Nzg3NTUyMDYyMTc4Nzc3NgAAABQtMzg0MjczMTgwNDY0MjI3MjA5MAAAABQtMzg2NjE1MjM2NTEyNjYwMTgzOQAAABQtMzg3NzQwOTU2NDY0OTQxNzMzOAAAABQtMzk1ODM2NTYzNzI5NjUwMTY1NgAAABQtNDA2NzQ5ODY0ODkyMTUwODk1MQAAABQtNDA4NzkxNzcxNjc0MjUyNzAzNgAAABQtNDA5MDIyMDYyMzIxMzQ0MzI4MgAAABQtNDExMjU4NDIwNTQ0OTc2MDU0MwAAABMtNDEyMjA2NjAwMTkyMTg1NzMyAAAAFC00MjM3OTc4NTI0MzAwOTgzNzA0AAAAFC00MzI0MTYxMTEwNTM1ODY2NTI4AAAAFC00MzgwMDY0MjYyNTA2NjUxODM2AAAAFC00Njc5MDY0MDk4NTQ5MzgzNDEwAAAAFC00NzAwMzQ3NTA1MjM3Nzc4MDcxAAAAFC00Nzc2Mjk2MDEyNzA1NzE1ODg2AAAAFC00ODIzOTUzNTEyNDE0MTUxOTE3AAAAFC01MDI3MjY3NTQ0NDMxNzU5MjEyAAAAFC01MDYxOTI3MDUyODMyNTU0NDEzAAAAFC01MDk1MDM5NTQ0ODU2OTMzNDQ0AAAAFC01MTI5NzU1Mjc5MTE0NjA1ODk3AAAAFC01MTk3MjUwMzgwODMxMzUzNTAzAAAAFC01MjMxOTE1MDc1NDQ1NzQyNjk5AAAAFC01MjY2MTQzMTI3MzgzMDA4NDExAAAAFC01NDEwNDgxNjc1MTY5MDQyMDExAAAAFC01NDI2NTE3ODEyNjc3NzI2MzA5AAAAFC01NDY5NTM2NjM4MzkyMzgxMjM2AAAAFC01NDc5OTMzOTQwMDc4NzU2OTYzAAAAEy01NTY0MDY2Njg1NTg5OTEyNzQAAAAULTU1NjQ2NzI2ODQ0NDg5ODc1NDkAAAASLTU2MjAxMTMwNTQzNTQwOTQwAAAAFC01NjQyNzYxOTQwNjI4NjM1NTgwAAAAFC01NjgyMDU2ODM3MzQ3NTE4Nzk1AAAAFC01NzcyNzM2NTIzNjA4ODE4Njk4AAAAFC01ODU2MjY5MzQxMjQ3MDgzNTU3AAAAFC01OTAyMTczMjM3MTgzMDA4NDY1AAAAFC01OTc4MzYzMzg1Njk2OTM1NTUyAAAAFC02MDE1OTQ4MDA4NzU5OTQ3ODI1AAAAFC02MTU1Mjk5NTU3OTc4NzA2OTE1AAAAFC02MjA3MzAzMzQ5NDk0MjMxMjk0AAAAFC02MzE5MzU2NTUxNTYyOTE2OTMyAAAAFC02MzI0NjU1ODA5NTgxMDc3MTY2AAAAFC02NDI0Mzg1NjE0NjU5NDkwMDg4AAAAEy02NTU4NTYyMzk4NjA3NzQwNjEAAAAULTY1ODA1ODk4OTA1ODE3Mzc1OTcAAAAULTY2MTgxMTAxNDQ0NjYxNzE2NDgAAAATLTY3Njc1NjQ3MjMzODMwNzIyNgAAABQtNjkyNDA2Mjk4OTk3MDk5NDYzMQAAABQtNjkzNDY3MDM2NjU5NDE4NDE3NwAAABQtNjk3Njk1OTI3NjIzMjMzNDg2OQAAABQtNzA1NzQ1OTg1MzI5NTc4NTIwNAAAABQtNzE3NzkwMDY1NTI1OTI5NjU3OAAAABMtNzI1MTk2NjY5Mzg5MzgxMzI2AAAAFC03MjkwOTI4MDYyMzE4NTUxMDc4AAAAFC03MzMwNTIyODMzODUzMjA3NTY2AAAAFC03Mzk5NjM4OTgwNTgyMDAzOTY0AAAAFC03NDY0NzY1Mzc2NDEzOTM4NTk4AAAAFC03NDcxNTIwMTIwMDQ0MjI0MDQyAAAAFC03NDc0NjM1MjYyNzI2NTI2MTc4AAAAFC03NzAxNzM4MzE2OTEzNzIxMjE1AAAAFC03NzA4MDQyMDAxNjk2MzI1MzgwAAAAFC03ODkyNTI3Mjc4MDI1OTgwNDk5AAAAFC03OTE4NTI4Mzk5NjA5ODI5MzgyAAAAFC03OTQwNDEyMDkyODA0ODgzODM5AAAAFC03OTY0MTE1MzczODcxMzY4Mjk3AAAAFC03OTY3NDg2MTA1NjE1MTE4NzQ2AAAAFC03OTcwNDI0MDM4NzA3NTIyOTY5AAAAFC04MDkwNzA1OTQ0OTY1MDE2NDIwAAAAFC04MTAwODg5MDA3NzExMTgzMTU1AAAAFC04MTE2Njc4NTYyNzc1MzM1ODI4AAAAFC04MTcxODk0OTcyMDE4NzI0MDEzAAAAFC04Mjg0NDYxNDExNjYzMjIzODk4AAAAFC04MzQ0NjM4NjE3ODIwODU5NTQwAAAAFC04MzQ1ODEyOTM1NDkzNjQwNzU0AAAAFC04NTg4NjAzMDEyMzM1ODU5OTc5AAAAEy04NzExNjY0MDkxMjcxMDQxNDMAAAAULTg3MjY3OTM1NDEyMDQ2NDI4MzEAAAAULTg4NDg5MTg1NTQ3NTg1Mjc1MzkAAAAULTg4NzgwODgxMDQ5NTM0MTg4NDcAAAAULTg4ODUwNzE4MTUwODIwMTk5NTcAAAAULTg5NTk0NTM2MDkyOTkzODY2ODYAAAAULTkwNDE5ODI4ODcwOTA4OTQ3MDMAAAAULTkxNTE2MjE0NjMyNzI1OTc2NzYAAAAULTkxNzA5OTM0MDU1Nzc2NjQ4MzEAAAAULTkyMjI2NDIyNjY4MDgyODU1NzAAAAATMTAzMTg2NzU3Njc2ODQ5MzY4NwAAABMxMDU4OTE1MTAyMzA4MTQxMjkyAAAAEjEwNjU5MDgzMDY1Mzc1MjIzOAAAABMxMTg3MjkxOTk4NjM4NzAyODk5AAAAEzEyMjk4OTQyNDM2MjU0NDk0NjIAAAATMTI3Njc3MDUzODUwNDA0NTQ1MwAAABIxMjc3MjQ4NTUwNjMxMTg5NjAAAAATMTM3NjA3Mjc2MTIwOTcyOTI5MgAAABMxNDcyNTE1NjgzNjk5NTc5MTUwAAAAEzE1MDQyNDA4MzAzMDEyMjM0NjcAAAASMTU2NjYzMzQ5MjQxNzUzODMzAAAAEzE2OTIyMDI3NDIzNTk0Njg3MzAAAAATMTc1MDc2NDg4MjE0NjMxNjczMgAAABMxODg5OTI5MzIzOTQ1NTkwMDMyAAAAEzE5MzcwNzYyNjQwMTEyOTM1MTMAAAATMTk1ODgxOTA0MDM3NDEwNTc1NwAAABMyMDQ2MTcyMTIxNzMwOTgwMjYxAAAAEzIwOTgyNzAzMDg3NzY0MTY3MDgAAAATMjExMTkzNDg1NDE1OTY3OTIwMgAAABMyMTk0NjQ3ODIwNTQ5OTY4NjM5AAAAEzIyNDk2Njg5ODExOTk2NTM3MTEAAAATMjI1MzQwMDk1OTAyNzEyMzI2NwAAABMyMjcyMDczODA2MTgyMTcwODM3AAAAEzIyOTkyMDExNjUwNTExNTg3MTcAAAATMjM1MDczMjk4MzIxMjA5MDA1MAAAABMyMzcyMjczMDU0ODU5NjI2MzY1AAAAEzIzOTMyNzQ0Mzg5MDM1MTM1NDIAAAATMjUxMTg0NTIxODk0NzQzOTQwNAAAABMyNTU5MDk3MjQwNTA1MzA5MDgxAAAAEzI1Njg4MDA1MDIyNTc3MzE1ODUAAAATMjc1MTU3NTE2MTMzMTQ0MzI4MgAAABMyODM1MDYxMzI0NTIyMzgzNTIyAAAAEzI5MzQzMTUzMTg2NjI4NzcwODEAAAATMjk2Njc5Nzk1MDk1MTg1ODA1MwAAABMyOTkwNjYzMTc1MDI3NTIwMDQ3AAAAEzMwODA5Nzg3MjQ2Njk0NzQyOTkAAAATMzEyMjM2NzkyODI1NTI3MTE1MgAAABMzMTc0MDU0NTEwMzMxMzQ4ODM2AAAAEzMyNTU5Mjc3MjQ1ODY5NDgwOTQAAAATMzMwMDMyNzIwNDExMjkwOTM4MQAAABMzMzU0NDUxNjAyOTMzMzk1Mjg5AAAAEzM1MTM4OTE5MTUwNzU5NjMzNzUAAAATMzU3Njg1MzgzMDE2ODY4MTY5MAAAABIzNjYwNDM3NjcyNDE5MDg3OTMAAAATMzc1Njc3MDkwMjczMTkzNzcwNgAAABMzNzcyNDg5NTE3MjY2MTI1OTc3AAAAEzM4NjY2MzIxMjc0NjU2MDY4MTMAAAATNDA2ODE3MDQ5NDQzODU0OTMxNgAAABM0MjI2MDMxMzk3MzA3ODUxMzc0AAAAEzQzNzIxMzY1MTk3NjkxMzIyMTcAAAATNDM3OTE4NjcyNTEwMTc2MDAxOQAAABM0Mzg3Nzg0Mzc0MTYzNDEwOTQ0AAAAEzQ0MDA4ODMwODUzODk3ODExMjEAAAATNDQ0NjM4NzgwNjA4ODk2OTIzMAAAABM0NjAzMzEwMTg4OTgyNzQ2NzMzAAAAEzQ2MDM0NTM0MDc5MzU0NTc3NTYAAAATNDY3NzY0MzI2OTI5OTg1NDQxNwAAABM0Njk3ODkzODMxMzUwMzEwNTk4AAAAEzQ3MDc1MDA1NjkzOTk4NzIxMTEAAAATNDczODYwNjY2MjQ4ODM4MTA1OQAAABM0NzUxMzY1MTUxNjYwNDgzODA1AAAAEzQ3NzQzODY5MzQxOTU2NjA1NjAAAAATNDc4NTE3NjEyNDY0OTczNjA1NwAAABM0Nzk0MjY3MjczNjEwNTA0MDk0AAAAEzQ5NjUwMjA4MjY0NDc3MDkxNjcAAAATNTA2MjQ2NTcyOTY5ODk4Njk4OQAAABM1MDcxOTgxNDc2MDA2ODU0NDM5AAAAEzUxMjM5MzQyNzcyNzE2MDU5ODAAAAATNTE1MjY1OTY5ODYwMjc5NDY0NgAAABM1MTc1Mzc4MDU2NTAzOTY2MTI1AAAAEjU0MjQ1MTM0OTQ2NzEyNzQxMgAAABE1NDk5ODkxNDY5MjY0MzcwMAAAABM1NTg1NzEzMTU5NDQzODcyNzc2AAAAEjU3MjE5OTg5NTg0OTIwNDI4MAAAABM1NzI0MzcyODY3NzY5MTU5MzIxAAAAEzU3OTQyODYwMTg0ODg2MTE2NzQAAAASNTgxMTYyOTU0OTk3OTUyNjc5AAAAEzU4NzAxMjg3NTA4MjE3NTM3ODAAAAATNjA5MzQ4MzQ1MjQ5MDUyNTEzNgAAABI2MDk2MjQ0OTU3Njg0NDM5OTkAAAATNjE2OTg4OTE5MDcyMjQ0NjE1MgAAABM2MTc4MTg4NTk3MDY4NjY4MDg0AAAAEzYzOTg3MTg0ODk1MjYzODEwOTIAAAATNjQ1NTQyOTYzNjM5NTE3NDQyMQAAABM2NDY5NzQ3Njg5Nzg4ODQwMjE2AAAAEzY1OTc4NDg5NTg3MzEyNDMzNzMAAAATNjY0MjEwNjA2NzU2NzE3MjU3MgAAABM2Njc4NTAyOTU3NTIyMDczNzQwAAAAEzY3MDQ0MjA2MDU3NjMyOTc3MDcAAAATNjc0NDAzNTk2NTM4NDgxMzkxMgAAABM2NzY4MDQyMjI2NTUyNzI2NjgxAAAAEzY3NzU4NTI5MTU0ODMzMjM1MjYAAAATNjkyOTc0ODcxODYxMzQ4MDYxMwAAABM3MDU0MjQ2OTM0OTE4MTEwMDY5AAAAEzcwNjcyODUzOTU4NzE3ODc2ODQAAAATNzE1MDA4NzcxNzYwODQyNTk5OAAAABI3MTg4MTU4MTYzMjU3Njc5NTYAAAATNzIyNDUwMjQ5OTU4MDI1MTI2MAAAABM3MjUzNTAyMzE1NjM0MzIxNTQ4AAAAEzczNjY0Mzg0NDc0ODE4MjIxODkAAAATNzUxMjkyNzk5ODI5NDIyOTA4MAAAABM3NTk5OTY5MTMxNTg3NzY2NzM5AAAAEzc2NDc1MDc4MjUxMjg2MjQ2NDUAAAATNzY0ODYzOTU5MjIyNzQzMDExNwAAABM3NjUzMDI2MzkwMTg4MDYyOTUxAAAAEzc3Nzc4MDIwMzEzMzg3NDY4MjQAAAATNzg0MjAxNzA4ODEwODM5MDUyNAAAABI3ODU0NjE2MjI0MTU4MTIyNTEAAAATNzg1OTg4NjczNzg4MTQ1ODg4MQAAABM3OTM2ODg4NjIyMjM5MTgzMTE1AAAAEzgxMTE5OTg0MjA1NDgwNzYxOTEAAAATODE0Nzk3MDYwNzkyODM1NTc0OQAAABM4MTcyODg4NTEwOTU2MTQwMTMxAAAAEzgyMTYxNzc1MDI5NjUzMDE1MjkAAAASODI5OTU4NzM4MDQ5ODg1OTg5AAAAEzgzNDEyNzUwNjk0NjY0MTAwNzkAAAATODM2NDU0MDI2MDQ0MDQ2NTczMQAAABM4MzY4NTgwNjI1Nzc1NDg3NDQ2AAAAEzgzNzUxNzQwNjIwNTY3Mjk0NDIAAAATODQwNTc5NzMyNjE3NTg3MjIzNQAAABM4NTczMzgwMjA2MjY0MDYxNDk4AAAAEzg2MDEyMzg4OTg1NTk4NTI1OTMAAAATODY3NzYwNjIxMTU2NjE2ODA4MAAAABM4NzUyNTIwMzEzMTYzMzcxNjk2AAAAEzg4MDg4MDM2NjUwNTY4OTEwOTUAAAATODg0MzgyMTcwMDgwNTgzMTkwNQAAABI4ODU3MjI4MTU3NDM4MzQ1NjQAAAATODk4MDQxMzg2ODcwOTg1MTAwNAAAABM5MDQ2ODk4NDI1NDMzMzY0MDgy/////w==","stream_id":128} +{"data":"hAAAwAIAAAAA","stream_id":192} +{"data":"hAABAAgAAABtAAAABAAQqkp70wQOeh4OLIlDiVT63wAAAAEAAAABAAAAAQAAABFzaW5nbGVfY29ubl9iZW5jaAAGdGFibGUxAAJwawAJAAAAAAAAAAEAEXNpbmdsZV9jb25uX2JlbmNoAAZ0YWJsZTEAAXYADQ==","stream_id":256} +{"data":"hAABQAgAAAA6AAAAAgAAAAAAAAABABFzaW5nbGVfY29ubl9iZW5jaAAGdGFibGUxAAF2AA0AAAABAAAABk5hbWVfMA==","stream_id":320} +{"data":"hAABgAgAAAA6AAAAAgAAAAAAAAABABFzaW5nbGVfY29ubl9iZW5jaAAGdGFibGUxAAF2AA0AAAABAAAABk5hbWVfMQ==","stream_id":384} +{"data":"hAABwAgAAAA6AAAAAgAAAAAAAAABABFzaW5nbGVfY29ubl9iZW5jaAAGdGFibGUxAAF2AA0AAAABAAAABk5hbWVfMg==","stream_id":448} +{"data":"hAACAAgAAAA6AAAAAgAAAAAAAAABABFzaW5nbGVfY29ubl9iZW5jaAAGdGFibGUxAAF2AA0AAAABAAAABk5hbWVfMw==","stream_id":512} +{"data":"hAACQAgAAAA6AAAAAgAAAAAAAAABABFzaW5nbGVfY29ubl9iZW5jaAAGdGFibGUxAAF2AA0AAAABAAAABk5hbWVfNA==","stream_id":576} +{"data":"hAACgAgAAAA6AAAAAgAAAAAAAAABABFzaW5nbGVfY29ubl9iZW5jaAAGdGFibGUxAAF2AA0AAAABAAAABk5hbWVfNQ==","stream_id":640} +{"data":"hAACwAgAAAA6AAAAAgAAAAAAAAABABFzaW5nbGVfY29ubl9iZW5jaAAGdGFibGUxAAF2AA0AAAABAAAABk5hbWVfNg==","stream_id":704} +{"data":"hAADAAgAAAA6AAAAAgAAAAAAAAABABFzaW5nbGVfY29ubl9iZW5jaAAGdGFibGUxAAF2AA0AAAABAAAABk5hbWVfNw==","stream_id":768} +{"data":"hAADQAgAAAA6AAAAAgAAAAAAAAABABFzaW5nbGVfY29ubl9iZW5jaAAGdGFibGUxAAF2AA0AAAABAAAABk5hbWVfOA==","stream_id":832} +{"data":"hAADgAgAAAA6AAAAAgAAAAAAAAABABFzaW5nbGVfY29ubl9iZW5jaAAGdGFibGUxAAF2AA0AAAABAAAABk5hbWVfOQ==","stream_id":896} diff --git a/tests/bench/rec_select/127.0.0.2:9042-0Writes b/tests/bench/rec_select/127.0.0.2:9042-0Writes new file mode 100644 index 000000000..6eaff6005 --- /dev/null +++ b/tests/bench/rec_select/127.0.0.2:9042-0Writes @@ -0,0 +1,15 @@ +{"data":"BAAwMAUAAAAA","hash":359591853454385582,"stream_id":1} +{"data":"BAAwMAEAAADGAAYAF1NDWUxMQV9SQVRFX0xJTUlUX0VSUk9SAAAAElRBQkxFVFNfUk9VVElOR19WMQAAAAtDUUxfVkVSU0lPTgAFMy4wLjAAC0RSSVZFUl9OQU1FABVTY3lsbGFEQiBHb0NRTCBEcml2ZXIADkRSSVZFUl9WRVJTSU9OAAAAHFNDWUxMQV9MV1RfQUREX01FVEFEQVRBX01BUksAKUxXVF9PUFRJTUlaQVRJT05fTUVUQV9CSVRfTUFTSz0yMTQ3NDgzNjQ4","hash":8085671273868419917,"stream_id":64} +{"data":"BAAwMAcAAAA/AAAALFNFTEVDVCAqIEZST00gc3lzdGVtLmxvY2FsIFdIRVJFIGtleT0nbG9jYWwnAAEkAAATiAAGJZ4CgbYI","hash":-717339809275344217,"stream_id":128} +{"data":"BAAwMAsAAAAxAAMAD1RPUE9MT0dZX0NIQU5HRQANU1RBVFVTX0NIQU5HRQANU0NIRU1BX0NIQU5HRQ==","hash":4704664126603889539,"stream_id":192} +{"data":"BAAwMAkAAAA4AAAANFNFTEVDVCB2IEZST00gc2luZ2xlX2Nvbm5fYmVuY2gudGFibGUxIFdIRVJFIHBrID0gPzs=","hash":-3667192468565188609,"stream_id":256} +{"data":"BAAwMAoAAAArABCqSnvTBA56Hg4siUOJVPrfAAElAAEAAAAEAAAAAAAAE4gABiWeAoG+ug==","hash":-6181998806058424620,"stream_id":320} +{"data":"BAAwMAoAAAArABCqSnvTBA56Hg4siUOJVPrfAAElAAEAAAAEAAAAAQAAE4gABiWeAoG/1w==","hash":-1837883313975266114,"stream_id":384} +{"data":"BAAwMAoAAAArABCqSnvTBA56Hg4siUOJVPrfAAElAAEAAAAEAAAAAgAAE4gABiWeAoHA0g==","hash":1051371058666555414,"stream_id":448} +{"data":"BAAwMAoAAAArABCqSnvTBA56Hg4siUOJVPrfAAElAAEAAAAEAAAAAwAAE4gABiWeAoHB2w==","hash":-6061533881359558449,"stream_id":512} +{"data":"BAAwMAoAAAArABCqSnvTBA56Hg4siUOJVPrfAAElAAEAAAAEAAAABAAAE4gABiWeAoHDRw==","hash":1884313620750089010,"stream_id":576} +{"data":"BAAwMAoAAAArABCqSnvTBA56Hg4siUOJVPrfAAElAAEAAAAEAAAABQAAE4gABiWeAoHEUQ==","hash":4604650496186712115,"stream_id":640} +{"data":"BAAwMAoAAAArABCqSnvTBA56Hg4siUOJVPrfAAElAAEAAAAEAAAABgAAE4gABiWeAoHFWQ==","hash":-8151539640052277471,"stream_id":704} +{"data":"BAAwMAoAAAArABCqSnvTBA56Hg4siUOJVPrfAAElAAEAAAAEAAAABwAAE4gABiWeAoHGZg==","hash":-5708167385524159502,"stream_id":768} +{"data":"BAAwMAoAAAArABCqSnvTBA56Hg4siUOJVPrfAAElAAEAAAAEAAAACAAAE4gABiWeAoHHew==","hash":4178215999612736952,"stream_id":832} +{"data":"BAAwMAoAAAArABCqSnvTBA56Hg4siUOJVPrfAAElAAEAAAAEAAAACQAAE4gABiWeAoHIfQ==","hash":8710101977237055777,"stream_id":896}