Skip to content

mongodb migration to open-source#724

Open
saibulusu wants to merge 9 commits into
mainfrom
users/saibulusu/mongodb-migration
Open

mongodb migration to open-source#724
saibulusu wants to merge 9 commits into
mainfrom
users/saibulusu/mongodb-migration

Conversation

@saibulusu
Copy link
Copy Markdown
Member

No description provided.

@saibulusu saibulusu enabled auto-merge (squash) June 2, 2026 23:53
{
"Type": "MongoDBClientExecutor",
"Parameters": {
"Scenario": "{WorkloadName}_fieldcount{FieldCount}_fieldlength{FieldLength}_OpCount{OperationCount}",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Scenarios must be string literals, no parameter references. Add in a parameter "MetricScenario" for the current implementation and update the code to use that for metrics if it is referencing the "Scenario" to use the other parameter instead. Additionally, the names should be consistent in casing...not mostly lower but then some upper/pascal (e.g. OpCount).

"OperationCount": "5000000",
"RecordCount": "500000",
"YCSBPackageName": "ycsb",
"JdkPackageName": "javadevelopmentkit",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Package names should not be global parameters. Move these names to the usage locations directly:

  • YCSBPackageName
  • JdkPackageName

"JdkPackageName": "javadevelopmentkit",
"DiskFilter": "BiggestSize",
"dbSize": "small",
"CommentOnDbSize": "dbSize is approx 8-10 GB"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Rename "CommentOnDbSize" to "Comments". CommentOnDbSize is being used to define notes/metadata. It is NOT functional and would thus not typically be defined as a parameter. I presume this is for telemetry clarification at some point. However, no need to be so explicit in the name.

"RecordCount": "2500000",
"FieldCount": "128",
"FieldLength": "128",
"Duration": "00:30:00",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Duration should not be shifting around based on the DB size. This creates a "black box" scenario for the user. To be consistent with ALL of the rest of our use cases where we allow a duration to be defined, the value set in the global parameters should be used and not changed in the ParametersOn. Remove it from the conditions in that section.

"Duration": "00:05:00",
"Database": "mongodb",
"Port": "27017",
"FieldCount": "128",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

FieldCount and FieldLength should not be defined here. Overriding these values will cause the purpose of the "DBSize" parameter to be skewed. Remove both from here.

Just add a default condition block to the ParametersOn section at the very end with the "Condition" set to true. This will set the defaults.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Same for "RecordCount". If we are going to use a parameter "DBSize" that dictates the desired size of the database by mapping different DB size values to FieldCount, FieldLength and RecordCount values then none of those values should be in the global parameters such that the user could do this on the command line.

--parameters="DBSize=small,,,RecordCount = 100000000000000000000000000000000".

As you can ascertain, that number of records would definitely NOT result in a small database. Furthermore however, that value would not be used because the ParametersOn section would have a conditional block to override it. Now the user is confused.

"Port": "27017",
"FieldCount": "128",
"FieldLength": "128",
"OperationCount": "5000000",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

OperationCount seems to be in direct conflict with Duration...i.e. I could set an operation count so large that it could not actually finish within the duration. Remove OperationCount from the global parameters and define the value explicitly in the places it is used.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants