-
Notifications
You must be signed in to change notification settings - Fork 244
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DRIVERS-2862: Benchmark Collection and Client BulkWrite #1733
base: master
Are you sure you want to change the base?
Conversation
9a52786
to
6213f9d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
partial review
|
||
| Phase | Description | | ||
| ----------- |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| Setup | Construct a MongoClient object. Drop the `perftest` database. Load the SMALL_DOC dataset into memory as a language-appropriate document type (or JSON string for C). Make 10,000 copies of the document. DO NOT manually add an `_id` field; leave it to the driver or database. Construct a list of write models with insert, replace and delete operations for each copy of the document. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is some inconsistency in specifying the following action "Make X copies, DO NOT add _id", it's part of Setup
step for bulk insert and part of Do task
in other places. Should this be part of same step everywhere?
|
||
| Phase | Description | | ||
| ----------- |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| Setup | Construct a MongoClient object. Drop the `perftest` database. Load the SMALL_DOC dataset into memory as a language-appropriate document type (or JSON string for C). Make 10,000 copies of the document. DO NOT manually add an `_id` field; leave it to the driver or database. Construct a list of write models with insert, replace and delete operations for each copy of the document. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we need more details here: ordering and explicit count for each operation kind.
The PR adds benchmarks for
Collection::BulkWrite
andClient::BulkWrite
with insert-only operations and mixed operations. We already have aSmall doc Bulk Insert
andLarge doc Bulk Insert
benchmark in the benchmarking spec which may be sufficient for benchmarkingCollection::BulkWrite
with insert-only operations. However, theSmall doc Bulk Insert
andLarge doc Bulk Insert
benchmarks are implemented usinginsertMany
and not all the drivers useCollection::BulkWrite
in their implementation ofinsertMany
. With that in mind, I have added explicitCollection::BulkWrite
benchmarks to be implemented by all drivers who implementCollection::BulkWrite
. This ensures we still maintain comprehensive performance testing for our batch-write performance.Here are results of the new benchmarks as implemented on the C# driver:
Please complete the following before merging:
clusters, and serverless).