Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-98174

Expand CRUD Concurrent Testing

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Query Optimization

      Add concurrency crud test with data movement with emphasis on verifying results, especially query results, as opposed to verifying integrity of the data. Some of the basic query variations we could include are: point queries, queries that need getMores, queries on shard key, queries without shard key, etc.

      Motivation: We currently have a variety of testing ops together with moveChunk/movePrimary/resharding in the background. However, most of these are very generic. For example, passthrough tests use the _id as the shard key to ensure that it will be suitable for all tests. A lot of the existing concurrency testing also focuses more on the database being consistent and doesn't care about errors while running the tests. This would also help in capturing issues like SERVER-78071.

      This test looks like a good candidate to emulate. Each thread owns a range of data and it keeps track of the changes being made. Although this is not included in the existing test, it will be easy to add tests to verify query results on the range of data being tracked. We can have variations that swap out movePrimary for different data movement primitives and run specific types of queries (w/ or w/o shard key and other types mentioned in description) while verifying the results.

      We can also tune some settings that we know are not often exercised in tests and are more likely to make things break (like aggressively yielding).

            Assignee:
            steve.tarzia@mongodb.com Steve Tarzia
            Reporter:
            randolph@mongodb.com Randolph Tan
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: