mongodb migration to open-source#724
Conversation
…m/microsoft/VirtualClient into users/saibulusu/mongodb-migration
| { | ||
| "Type": "MongoDBClientExecutor", | ||
| "Parameters": { | ||
| "Scenario": "{WorkloadName}_fieldcount{FieldCount}_fieldlength{FieldLength}_OpCount{OperationCount}", |
There was a problem hiding this comment.
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", |
There was a problem hiding this comment.
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" |
There was a problem hiding this comment.
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", |
There was a problem hiding this comment.
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", |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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", |
There was a problem hiding this comment.
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.
No description provided.