Division

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Division

gilmcgrath
Yaguang,
Can you explain in more detail what the difference between "container, object and none" in the division attribute.

I reading / writing objects across multiple containers I want to understand the difference in behavior.

For my testing (not prepare) I have been using "none", but I am not 100% sure exactly what this is doing.

Also, do the different type of division values result in different timeouts/error handling?

Thanks
Gil
Reply | Threaded
Open this post in threaded view
|

Re: Division

ywang19
Administrator
Division strategies are used to divide a work into multiple non-overlapping partitions which have smaller ranges of containers or objects, there strategies are supported: container (based), object (based), or none.

I will use an example to explain the difference between those strategies. For example, here is a work as following:
      <work name="main" workers="4" runtime="300" division="?">
        <operation type="read" ratio="100" config="containers=u(1,8);objects=u(1,1000)" />
      </work>

if "division=container", it means the data range will be partitioned by container, the access pattern looks like:

Worker Container Range Object Range
----------------------------------------------------------
worker 1 1 1-1000
worker 2 2 1-1000
worker 3 3 1-1000
worker 4 4 1-1000
(Note: it's not supported if workers is larger than the count of container defined in counter range).

if "division=object", it means the data range will be partitioned by object, the access pattern looks like:

Worker Container Range Object Range
---------------------------------------------------------
worker 1 1-4 1-250
worker 2 1-4 251-500
worker 3 1-4 501-750
worker 4 1-4 751-1000
(Note: it's not supported if workers is larger than the count of object defined in object range).

if "division=none", which is the default case, it is used to turn off division so that each worker does exactly what the work has specified—there is no partitions of the work, so each worker may touch all containers or objects.

I'm considering to add this part into user guide to help understand how different division strategy works.

-Y.G.