Skip to content

Commit 057693e

Browse files
authored
chore(NODE-6721): migrate singlebench tests (#4401)
1 parent 198fb72 commit 057693e

15 files changed

+152
-18
lines changed

test/benchmarks/driver_bench/src/driver.mts

+5-10
Original file line numberDiff line numberDiff line change
@@ -138,21 +138,16 @@ export function metrics(test_name: string, result: number, count: number) {
138138
* For use in setup/teardown mostly.
139139
*/
140140
export class DriverTester {
141+
readonly DB_NAME = DB_NAME;
142+
readonly COLLECTION_NAME = COLLECTION_NAME;
143+
141144
public client: mongodb.MongoClient;
142145
constructor() {
143146
this.client = new MongoClient(MONGODB_URI, MONGODB_CLIENT_OPTIONS);
144147
}
145148

146-
public get db() {
147-
return this.client.db(DB_NAME);
148-
}
149-
150-
public get collection() {
151-
return this.client.db(DB_NAME).collection(COLLECTION_NAME);
152-
}
153-
154-
public get bucket(): mongodb.GridFSBucket {
155-
return new GridFSBucket(this.db);
149+
bucket(db: mongodb.Db) {
150+
return new GridFSBucket(db);
156151
}
157152

158153
async drop() {

test/benchmarks/driver_bench/src/runner.mts

+1
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ console.log(
9595
...['total time:', totalDuration, 'sec,'],
9696
...['ran:', count, 'times,'],
9797
...['median time per run:', medianExecution, 'sec,'],
98+
...['taskSize:', benchmark.taskSize, 'mb,'],
9899
...['throughput:', megabytesPerSecond, 'mb/sec']
99100
);
100101

test/benchmarks/driver_bench/src/suites/multi_bench/aggregate_a_million_documents_and_to_array.mts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export async function before() {
88
await driver.drop();
99
await driver.create();
1010

11-
db = driver.db;
11+
db = driver.client.db(driver.DB_NAME);
1212
}
1313

1414
export async function run() {

test/benchmarks/driver_bench/src/suites/multi_bench/aggregate_a_million_tweets_and_to_array.mts

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export async function before() {
1111

1212
tweet = await driver.load('single_and_multi_document/tweet.json', 'json');
1313

14-
db = driver.db;
14+
db = driver.client.db(driver.DB_NAME);
1515
}
1616

1717
export async function run() {

test/benchmarks/driver_bench/src/suites/multi_bench/find_many_and_empty_cursor.mts

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export async function before() {
1212
const tweet = await driver.load('single_and_multi_document/tweet.json', 'json');
1313
await driver.insertManyOf(tweet, 10000);
1414

15-
collection = driver.collection;
15+
collection = driver.client.db(driver.DB_NAME).collection(driver.COLLECTION_NAME);
1616
}
1717

1818
export async function run() {

test/benchmarks/driver_bench/src/suites/multi_bench/find_many_and_to_array.mts

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export async function before() {
1111
const tweet = await driver.load('single_and_multi_document/tweet.json', 'json');
1212
await driver.insertManyOf(tweet, 10000);
1313

14-
collection = driver.collection;
14+
collection = driver.client.db(driver.DB_NAME).collection(driver.COLLECTION_NAME);
1515
}
1616

1717
export async function run() {

test/benchmarks/driver_bench/src/suites/multi_bench/grid_fs_download.mts

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export async function before() {
1616
await driver.drop();
1717
await driver.create();
1818

19-
bucket = driver.bucket;
19+
bucket = driver.bucket(driver.client.db(driver.DB_NAME));
2020

2121
await bucket.drop().catch(() => null);
2222

test/benchmarks/driver_bench/src/suites/multi_bench/grid_fs_upload.mts

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export async function before() {
1515
await driver.drop();
1616
await driver.create();
1717

18-
bucket = driver.bucket;
18+
bucket = driver.bucket(driver.client.db(driver.DB_NAME));
1919

2020
await bucket.drop().catch(() => null);
2121
}

test/benchmarks/driver_bench/src/suites/multi_bench/large_doc_bulk_insert.mts

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export async function beforeEach() {
1717
// Make new "documents" so the _id field is not carried over from the last run
1818
documents = Array.from({ length: 10 }, () => ({ ...largeDoc })) as any[];
1919

20-
collection = driver.collection;
20+
collection = driver.client.db(driver.DB_NAME).collection(driver.COLLECTION_NAME);
2121
}
2222

2323
export async function run() {

test/benchmarks/driver_bench/src/suites/multi_bench/small_doc_bulk_insert.mts

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export async function beforeEach() {
1717
// Make new "documents" so the _id field is not carried over from the last run
1818
documents = Array.from({ length: 10000 }, () => ({ ...smallDoc })) as any[];
1919

20-
collection = driver.collection;
20+
collection = driver.client.db(driver.DB_NAME).collection(driver.COLLECTION_NAME);
2121
}
2222

2323
export async function run() {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { driver, type mongodb } from '../../driver.mjs';
2+
3+
export const taskSize = 16.22;
4+
5+
let collection: mongodb.Collection<{ _id: number }>;
6+
7+
export async function before() {
8+
await driver.drop();
9+
await driver.create();
10+
11+
const tweet = await driver.load('single_and_multi_document/tweet.json', 'json');
12+
await driver.insertManyOf(tweet, 10000, true);
13+
14+
collection = driver.client.db(driver.DB_NAME).collection(driver.COLLECTION_NAME);
15+
}
16+
17+
export async function run() {
18+
for (let _id = 0; _id < 10000; ++_id) {
19+
await collection.findOne({ _id });
20+
}
21+
}
22+
23+
export async function after() {
24+
await driver.drop();
25+
await driver.close();
26+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { driver, type mongodb } from '../../driver.mjs';
2+
3+
export const taskSize = 27.31;
4+
5+
let collection: mongodb.Collection;
6+
let documents: Record<string, any>[];
7+
let largeDoc: Record<string, any>;
8+
9+
export async function before() {
10+
largeDoc = await driver.load('single_and_multi_document/large_doc.json', 'json');
11+
}
12+
13+
export async function beforeEach() {
14+
await driver.drop();
15+
await driver.create();
16+
17+
// Make new "documents" so the _id field is not carried over from the last run
18+
documents = Array.from({ length: 10 }, () => ({ ...largeDoc }));
19+
20+
collection = driver.client.db(driver.DB_NAME).collection(driver.COLLECTION_NAME);
21+
}
22+
23+
export async function run() {
24+
for (const doc of documents) {
25+
await collection.insertOne(doc);
26+
}
27+
}
28+
29+
export async function after() {
30+
await driver.drop();
31+
await driver.close();
32+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { driver, type mongodb } from '../../driver.mjs';
2+
3+
// { ping: 1 } is 15 bytes of BSON x 10,000 iterations
4+
export const taskSize = 0.15;
5+
6+
let db: mongodb.Db;
7+
8+
export async function before() {
9+
await driver.drop();
10+
await driver.create();
11+
12+
db = driver.client.db(driver.DB_NAME);
13+
}
14+
15+
export async function run() {
16+
for (let i = 0; i < 10000; ++i) {
17+
await db.command({ ping: 1 });
18+
}
19+
}
20+
21+
export async function after() {
22+
await driver.drop();
23+
await driver.close();
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { driver, type mongodb } from '../../driver.mjs';
2+
3+
// { hello: true } is 13 bytes of BSON x 10,000 iterations
4+
export const taskSize = 0.13;
5+
6+
let db: mongodb.Db;
7+
8+
export async function before() {
9+
await driver.drop();
10+
await driver.create();
11+
12+
db = driver.client.db(driver.DB_NAME);
13+
}
14+
15+
export async function run() {
16+
for (let i = 0; i < 10000; ++i) {
17+
await db.command({ hello: true });
18+
}
19+
}
20+
21+
export async function after() {
22+
await driver.drop();
23+
await driver.close();
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { driver, type mongodb } from '../../driver.mjs';
2+
3+
export const taskSize = 2.75;
4+
5+
let collection: mongodb.Collection;
6+
let documents: Record<string, any>[];
7+
let smallDoc: Record<string, any>;
8+
9+
export async function before() {
10+
smallDoc = await driver.load('single_and_multi_document/small_doc.json', 'json');
11+
}
12+
13+
export async function beforeEach() {
14+
await driver.drop();
15+
await driver.create();
16+
17+
// Make new "documents" so the _id field is not carried over from the last run
18+
documents = Array.from({ length: 10000 }, () => ({ ...smallDoc }));
19+
20+
collection = driver.client.db(driver.DB_NAME).collection(driver.COLLECTION_NAME);
21+
}
22+
23+
export async function run() {
24+
for (const doc of documents) {
25+
await collection.insertOne(doc);
26+
}
27+
}
28+
29+
export async function after() {
30+
await driver.drop();
31+
await driver.close();
32+
}

0 commit comments

Comments
 (0)