Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-10252

Define a Workgen operation that can insert/update random k/v pairs of random sizes

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • 3
    • Storage Engines - 2022-12-12

      After WT-10238 is done, Workgen will be able to see new tables on the fly.

      In PM-2712, we want to be able to insert/update random key/value pairs in the newly created tables. Each pair needs to be of a random size.

      As of now, an operation does not need to be associated with a table when constructed which sets the _random_table to true. This means the operation will work on a random table after every iteration. However, we still need to indicate the Key and Value objects in the constructor which limits us. This ticket should implement a solution where this is no longer required and the key/value pair can be generated on the fly with random sizes.

      We could think of the following constructor:

          Operation(OpType optype);
      

      While generating random keys and values sound feasible, the random size is feasible too but might be harder. See donald.anderson@mongodb.com's comment here. One way to do this is described here, we could use the config in the following constructor to give what range we need to use to determine the size:

          Operation(OpType optype, const char *config);
      

      We could imagine the following configuration:

      random,min_size=1,max_size=10
      

      Then in the parse_config function, we could determine a size to use for each k/v pair, or we could use a random size for each iteration (I think the latter is better).

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            etienne.petrel@mongodb.com Etienne Petrel
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: