How to simulate small frequent updates parallel to constant queries

Hi,

when I am benchmarking my querying with Rally, I would like to simulate also the fact that I get some frequent but small updates. Not sure what would be the best way to achieve this?

Say I want to have a throughput of 100 queries with a sparkling of some very small (handful of docs) updates every 20 to 30 seconds (with some randomization if possible)

How would you go about it? For now I am thinking of something like:

{
    "name": "search_all",
    "default": true,
    "schedule": [
       //delete, bulk index etc...
  
      {
          "parallel": {
            "warmup-iterations": 10,
            "iterations": 1000,
            "completed-by": "delta-bulk",
            "tasks": [
                {
                  "name": "delta-bulk",
                  "operation": {
                      "operation-type": "bulk",
                      "bulk-size": 2,
                      "target-throughput": 0.1
                  },
                  "clients": 1
                },
                {
                    "operation": "randomized-query",
                    "clients": 4,
                    "iterations": 1000,
                    "target-throughput": 1
                }
            ]
          }
        }

    ]
}

but my guess this can be improved? Not sure if I should be using conflicts (and how) etc

thanks

Hello,

You can use the conflicts property of the bulk operation.

You can control the frequency of updates with conflict-probability in propotion to the target-throughput you've set for bulk. Additional properties that you can leverage are for what to do on conflict (index or update) via on-conflict and, finally, whether conflicts should be biased towards more recent or older ids (see recency).

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.