Skip to content

Commit

Permalink
Init benchmark for query pushdowns (#1689)
Browse files Browse the repository at this point in the history
  • Loading branch information
noisersup authored Dec 28, 2022
1 parent fed0319 commit c50e834
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions integration/benchmarks_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
// Copyright 2021 FerretDB Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package integration

import (
"testing"

"github.com/stretchr/testify/require"
"go.mongodb.org/mongo-driver/bson"

"github.com/FerretDB/FerretDB/integration/setup"
"github.com/FerretDB/FerretDB/integration/shareddata"
)

func BenchmarkPushdowns(b *testing.B) {
ctx, coll := setup.Setup(b, shareddata.AllProviders()...)

res, err := coll.InsertOne(ctx, bson.D{{}})
require.NoError(b, err)

id := res.InsertedID

b.Run("ObjectID", func(b *testing.B) {
for i := 0; i < b.N; i++ {
cur, err := coll.Find(ctx, bson.D{{"_id", id}})
require.NoError(b, err)

var res []bson.D
err = cur.All(ctx, &res)
require.NoError(b, err)

require.NotEmpty(b, res)
}
})

b.Run("StringID", func(b *testing.B) {
for i := 0; i < b.N; i++ {
cur, err := coll.Find(ctx, bson.D{{"_id", "string"}})
require.NoError(b, err)

var res []bson.D
err = cur.All(ctx, &res)
require.NoError(b, err)

require.NotEmpty(b, res)
}
})

b.Run("NoPushdown", func(b *testing.B) {
for i := 0; i < b.N; i++ {
cur, err := coll.Find(ctx, bson.D{{"v", 42.0}})
require.NoError(b, err)

var res []bson.D
err = cur.All(ctx, &res)
require.NoError(b, err)

require.NotEmpty(b, res)
}
})
}

1 comment on commit c50e834

@vercel
Copy link

@vercel vercel bot commented on c50e834 Dec 28, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

ferret-db – ./

ferret-db.vercel.app
ferret-db-git-main-ferretdb.vercel.app
ferret-db-ferretdb.vercel.app

Please sign in to comment.