As part of being able to improve relevancy of search results we need a test cluster where we can store multiple copies of an index with different settings, and can change cluster wide settings without fear of breaking our production cluster.
This is currently served by 4 xlarge instances in labs, estest100{1..4}.eqiad.wmflabs. The use case has also been partially served by a test run with nobelium.eqiad.wmnet, which contains all production indices on spinning disks and receives updates for the top 10 wikis. The primary issue we have with the labs instances revolves around disk space. The issue with nobelium is it is not guaranteed hardware, it is on loan from ops for testing purposes to help plan a labs replica of elasticsearch and/or relevance lab. If the hardware for relevance lab is slow to respond to queries that is undesirable, but acceptable.
Requirements:
- Be able to contain multiple of our largest wikis for testing relevance on more than just enwiki
- Be able to contain multiple copies of at least 1 of our largest indexes. This should generally be a 3x storage space requirement so we can have two copies of the index, and we can reindex one of those copies in a different manner without deleting.
- The ability to run a query set (at least 1K queries, 5K would be nice) in under an hour
Nice to have (in no particular order):
- Enough space to contain *all* production indices
- Enough CPU and Disk throughput to receive real time updates from the prod cluster on all indices, keeping the test up to date with live data.
- 20+ qps against larger (200GB) indices. As we expand relevance lab to be able to compute results like MAP, nDCG and other scores we will want to be able to repeat a query set many times with different weighting parameters to explore the search space and optimize how scores are calculated. 20 qps would bring us to 72k queries an hour, or 14 runs through a 5k query set. Exploring a 2-dimensional search space of 0 to 1 with .1 increments will still take around 7 hours at this rate.
Prior tests:
- estest100{1..4}.eqiad.wmflabs - test cluster made of 4 xlarge virtual machines in labs.
- nobelium.eqiad.wmnet - test cluster with a single node of physical hardware