stepback: false command_type: system pre: - command: shell.track post: - command: shell.exec params: working_dir: work script: | source ./dsienv.sh $DSI_PATH/bin/make_artifact.sh - command: s3.put params: aws_key: ${aws_key} aws_secret: ${aws_secret} local_file: work/reports.tgz remote_file: ${project}/${build_variant}/${revision}/${task_id}/${version_id}/logs/${task_name}-${build_id}.${ext|tgz} bucket: mciuploads permissions: public-read content_type: ${content_type|application/x-gzip} display_name: test-log - command: s3.put params: aws_key: ${aws_key} aws_secret: ${aws_secret} local_file: work/reports/graphs/timeseries-p1.html remote_file: ${project}/${build_variant}/${revision}/${task_id}/${version_id}/logs/timeseries-p1-${task_name}-${build_id}.html bucket: mciuploads permissions: public-read content_type: text/html display_name: timeseries-p1.html - command: attach.results params: file_location: work/report.json - command: shell.exec params: working_dir: work script: | source ./dsienv.sh if [ -e /data/infrastructure_provisioning/terraform/provisioned.${cluster} ]; then $DSI_PATH/bin/mark_idle.sh fi - command: shell.exec params: working_dir: src script: | # removes files from the (local) scons cache when it's over a # threshold, to the $prune_ratio percentage. Ideally override # these default values in the distro config in evergreen. if [ -d "${scons_cache_path}" ]; then ${python|python} buildscripts/scons_cache_prune.py --cache-dir ${scons_cache_path} --cache-size ${scons_cache_size|200} --prune-ratio ${scons_prune_ratio|0.8} fi - command: shell.cleanup functions: "prepare environment": - command: shell.exec params: script: | rm -rf ./* mkdir src mkdir work mkdir bin pwd ls - command: manifest.load - command: git.get_project params: directory: src revisions: # for each module include revision as : ${_rev} dsi: ${dsi_rev} workloads: ${workloads_rev} YCSB: ${YCSB_rev} - command: git.apply_patch params: directory: src - command: shell.exec params: working_dir: work script: | cat > bootstrap.yml < runtime.yml < aws_ssh_key.pem chmod 400 aws_ssh_key.pem cat > runtime_secret.yml < : ${_rev} dsi: ${dsi_rev} - command: json.get params: task: ${compare_task} variant : ${variant1} file: "work/standalone.json" name: "perf" - command: json.get params: task: ${compare_task} variant : ${variant2} file: "work/oplog.json" name: "perf" - command: shell.exec type : test params: working_dir: work script: | set -o errexit set -o verbose python -u ../src/dsi/dsi/analysis/compare.py -b standalone.json -c oplog.json - command: "json.send" params: name: "perf" file: "work/perf.json" ####################################### # Tasks # ####################################### tasks: - name: compile commands: - command: git.get_project params: directory: src - command: git.apply_patch params: directory: src - command: shell.exec params: working_dir: src script: | set -o errexit set -o verbose ${scons|scons} ${compile_flags|} mongo mongod mongos mkdir -p mongodb/bin mv mongo mongodb/bin mv mongod mongodb/bin mv mongos mongodb/bin tar cvf mongodb.tar mongodb gzip mongodb.tar - command: s3.put params: aws_key: ${aws_key} aws_secret: ${aws_secret} local_file: src/mongodb.tar.gz remote_file: ${project}/${version_id}/${revision}/${platform}/mongod-${version_id}.tar.gz bucket: mciuploads permissions: public-read content_type: ${content_type|application/x-gzip} display_name: mongodb.tar.gz - name: industry_benchmarks_WT depends_on: - name: compile variant: linux-standalone commands: - func: "prepare environment" vars: storageEngine: "wiredTiger" test: "ycsb" - func: "infrastructure provisioning" - func: "configure mongodb cluster" vars: storageEngine: "wiredTiger" - func: "run test" vars: storageEngine: "wiredTiger" test: "ycsb" - func: "make test log artifact" - func: "analyze" vars: script_flags: --ycsb-throughput-analysis reports - name: industry_benchmarks_MMAPv1 depends_on: - name: compile variant: linux-standalone commands: - func: "prepare environment" vars: storageEngine: "mmapv1" test: "ycsb" - func: "infrastructure provisioning" - func: "configure mongodb cluster" vars: storageEngine: "mmapv1" - func: "run test" vars: storageEngine: "mmapv1" test: "ycsb" - func: "make test log artifact" - func: "analyze" vars: script_flags: --ycsb-throughput-analysis reports - name: core_workloads_WT depends_on: - name: compile variant: linux-standalone commands: - func: "prepare environment" vars: storageEngine: "wiredTiger" test: "core" - func: "infrastructure provisioning" - func: "configure mongodb cluster" vars: storageEngine: "wiredTiger" - func: "run test" vars: storageEngine: "wiredTiger" test: "core" - func: "make test log artifact" - func: "analyze" - name: core_workloads_MMAPv1 depends_on: - name: compile variant: linux-standalone commands: - func: "prepare environment" vars: storageEngine: "mmapv1" test: "core" - func: "infrastructure provisioning" - func: "configure mongodb cluster" vars: storageEngine: "mmapv1" - func: "run test" vars: storageEngine: "mmapv1" test: "core" - func: "make test log artifact" - func: "analyze" - name: non_sharded_workloads_WT depends_on: - name: compile variant: linux-standalone commands: - func: "prepare environment" vars: storageEngine: "wiredTiger" test: "non_sharded" - func: "infrastructure provisioning" - func: "configure mongodb cluster" vars: storageEngine: "wiredTiger" - func: "run test" vars: storageEngine: "wiredTiger" test: "non_sharded" - func: "make test log artifact" - func: "analyze" - name: non_sharded_workloads_MMAPv1 depends_on: - name: compile variant: linux-standalone commands: - func: "prepare environment" vars: storageEngine: "mmapv1" test: "non_sharded" - func: "infrastructure provisioning" - func: "configure mongodb cluster" vars: storageEngine: "mmapv1" - func: "run test" vars: storageEngine: "mmapv1" test: "non_sharded" - func: "make test log artifact" - func: "analyze" - name: mongos_workloads_WT depends_on: - name: compile variant: linux-standalone commands: - func: "prepare environment" vars: storageEngine: "wiredTiger" test: "mongos" - func: "infrastructure provisioning" - func: "configure mongodb cluster" vars: storageEngine: "wiredTiger" - func: "run test" vars: storageEngine: "wiredTiger" test: "mongos" - func: "make test log artifact" - func: "analyze" - name: mongos_workloads_MMAPv1 depends_on: - name: compile variant: linux-standalone commands: - func: "prepare environment" vars: storageEngine: "mmapv1" test: "mongos" - func: "infrastructure provisioning" - func: "configure mongodb cluster" vars: storageEngine: "mmapv1" - func: "run test" vars: storageEngine: "mmapv1" test: "mongos" - func: "make test log artifact" - func: "analyze" - name: move_chunk_workloads_WT depends_on: - name: compile variant: linux-standalone commands: - func: "prepare environment" vars: storageEngine: "wiredTiger" test: "move_chunk" - func: "infrastructure provisioning" - func: "configure mongodb cluster" vars: storageEngine: "wiredTiger" - func: "run test" vars: storageEngine: "wiredTiger" test: "move_chunk" - func: "make test log artifact" - func: "analyze" - name: move_chunk_workloads_MMAPv1 depends_on: - name: compile variant: linux-standalone commands: - func: "prepare environment" vars: storageEngine: "mmapv1" test: "move_chunk" - func: "infrastructure provisioning" - func: "configure mongodb cluster" vars: storageEngine: "mmapv1" - func: "run test" vars: storageEngine: "mmapv1" test: "move_chunk" - func: "make test log artifact" - func: "analyze" - name: industry_benchmarks_WT_oplog_comp depends_on: - name: industry_benchmarks_WT variant: linux-standalone status : "*" - name: industry_benchmarks_WT variant: linux-1-node-replSet status: "*" commands: - func: "compare" vars: compare_task: "industry_benchmarks_WT" variant1: "linux-standalone" variant2: "linux-1-node-replSet" - func: "analyze" - name: industry_benchmarks_MMAPv1_oplog_comp depends_on: - name: industry_benchmarks_MMAPv1 variant: linux-standalone status: "*" - name: industry_benchmarks_MMAPv1 variant: linux-1-node-replSet status: "*" commands: - func: "compare" vars: compare_task: "industry_benchmarks_MMAPv1" variant1: "linux-standalone" variant2: "linux-1-node-replSet" - func: "analyze" - name: core_workloads_WT_oplog_comp depends_on: - name: core_workloads_WT variant: linux-standalone status: "*" - name: core_workloads_WT variant: linux-1-node-replSet status: "*" commands: - func: "compare" vars: compare_task: "core_workloads_WT" variant1: "linux-standalone" variant2: "linux-1-node-replSet" - func: "analyze" - name: core_workloads_MMAPv1_oplog_comp depends_on: - name: core_workloads_MMAPv1 variant: linux-standalone status: "*" - name: core_workloads_MMAPv1 variant: linux-1-node-replSet status: "*" commands: - func: "compare" vars: compare_task: "core_workloads_MMAPv1" variant1: "linux-standalone" variant2: "linux-1-node-replSet" - func: "analyze" - name: initialsync_WT depends_on: - name: compile variant: linux-standalone commands: - func: "prepare environment" vars: storageEngine: "wiredTiger" test: "initialSync" - func: "infrastructure provisioning" - func: "configure mongodb cluster" vars: storageEngine: "wiredTiger" - func: "run test" vars: storageEngine: "wiredTiger" test: "initialSync" - func: "make test log artifact" - func: "analyze" - name: initialsync_MMAPv1 depends_on: - name: compile variant : linux-standalone commands: - func: "prepare environment" vars: storageEngine: "mmapv1" test: "initialSync" - func: "infrastructure provisioning" - func: "configure mongodb cluster" vars: storageEngine: "mmapv1" - func: "run test" vars: storageEngine: "mmapv1" test: "initialSync" - func: "make test log artifact" - func: "analyze" ####################################### # Modules # ####################################### # if a module is added and to be added to the manifest # be sure to add the module to git.get_project revisions parameter modules: - name: dsi repo: git@github.com:10gen/dsi.git prefix: dsi branch: master - name: workloads repo: git@github.com:10gen/workloads.git prefix: workloads branch: master - name: YCSB repo: git@github.com:mongodb-labs/YCSB.git prefix: YCSB branch: evergreen ####################################### # Linux Buildvariants # ####################################### buildvariants: - name: linux-1-node-replSet display_name: Linux 1-Node ReplSet batchtime: 10080 # 7 days modules: &modules - dsi - workloads - YCSB expansions: compile_flags: -j$(grep -c ^processor /proc/cpuinfo) CC=/opt/mongodbtoolchain/bin/gcc CXX=/opt/mongodbtoolchain/bin/g++ --release setup: single-replica cluster: single platform: linux project: &project dsi-v3.2 run_on: - "rhel70-perf-single" tasks: - name: industry_benchmarks_WT - name: core_workloads_WT - name: industry_benchmarks_MMAPv1 - name: core_workloads_MMAPv1 - name: non_sharded_workloads_WT - name: non_sharded_workloads_MMAPv1 - name: linux-standalone display_name: Linux Standalone batchtime: 10080 # 7 days modules: *modules expansions: compile_flags: -j$(grep -c ^processor /proc/cpuinfo) CC=/opt/mongodbtoolchain/bin/gcc CXX=/opt/mongodbtoolchain/bin/g++ --release setup: standalone cluster: single platform: linux project: *project run_on: - "rhel70-perf-single" tasks: - name: compile distros: - rhel70 - name: industry_benchmarks_WT - name: core_workloads_WT - name: industry_benchmarks_MMAPv1 - name: core_workloads_MMAPv1 - name: non_sharded_workloads_WT - name: non_sharded_workloads_MMAPv1 - name: linux-3-shard display_name: Linux 3-Shard Cluster batchtime: 10080 # 7 days modules: *modules expansions: compile_flags: -j$(grep -c ^processor /proc/cpuinfo) CC=/opt/mongodbtoolchain/bin/gcc CXX=/opt/mongodbtoolchain/bin/g++ --release setup: shard cluster: shard platform: linux project: *project run_on: - "rhel70-perf-shard" tasks: - name: industry_benchmarks_WT - name: core_workloads_WT - name: industry_benchmarks_MMAPv1 - name: core_workloads_MMAPv1 - name: mongos_workloads_WT - name: mongos_workloads_MMAPv1 - name: move_chunk_workloads_WT - name: move_chunk_workloads_MMAPv1 - name: linux-3-node-replSet display_name: Linux 3-Node ReplSet batchtime: 10080 # 7 days modules: *modules expansions: compile_flags: -j$(grep -c ^processor /proc/cpuinfo) CC=/opt/mongodbtoolchain/bin/gcc CXX=/opt/mongodbtoolchain/bin/g++ --release setup: replica cluster: replica platform: linux project: *project run_on: - "rhel70-perf-replset" tasks: - name: industry_benchmarks_WT - name: core_workloads_WT - name: industry_benchmarks_MMAPv1 - name: core_workloads_MMAPv1 - name: non_sharded_workloads_WT - name: non_sharded_workloads_MMAPv1 - name: linux-3-node-replSet-initialsync display_name: Linux 3-Node ReplSet Initial Sync batchtime: 10080 # 7 days modules: *modules expansions: compile_flags: -j$(grep -c ^processor /proc/cpuinfo) CC=/opt/mongodbtoolchain/bin/gcc CXX=/opt/mongodbtoolchain/bin/g++ --release setup: replica-2node.dr cluster: replica platform: linux project: *project run_on: - "rhel70-perf-replset" tasks: - name: initialsync_WT - name: initialsync_MMAPv1 - name: linux-oplog-compare display_name: Linux Oplog Compare batchtime: 10080 # 7 days modules: *modules expansions: project: *project run_on: - "rhel70-perf-single" tasks: - name: industry_benchmarks_WT_oplog_comp - name: core_workloads_WT_oplog_comp - name: industry_benchmarks_MMAPv1_oplog_comp - name: core_workloads_MMAPv1_oplog_comp