-
Notifications
You must be signed in to change notification settings - Fork 805
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Improve matching simulator isolation group metrics
Record isolation group information for additional events and use it to calculate the median, mean, and max latency of events per task list and isolation group. Additionally record the percent of tasks that are dispatched to a poller with that same isolation group per task list and isolation group. With the current implementation no scenarios leak tasks to another isolation group. Additionally provide a definition of getAllIsolationGroups so that the matching simulator doesn't deadlock due to panics in task list manager initialization. Create 6 new scenarios for zonal isolation. The first three (few_pollers, many_pollers, and single_partition) test a scenario where the total task throughput is easily manageable with any number of pollers but the number of pollers/partitions significantly impacts the performance. The next two (zonal_isolation, zonal_isolation_skew) show a higher throughput scenario which should still be manageable by the specified pollers for each isolation group. The latter of the two has the tasks skewed to the maximum that pollers from a single group should be able to process (64/12/12/12) vs (25/25/25/25). The final scenario, zonal_isolation_skew_extreme, has the tasks heavily skewed (90/3/3/3) beyond what a single group can handle.
- Loading branch information
Showing
12 changed files
with
377 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 42 additions & 0 deletions
42
host/testdata/matching_simulation_zonal_isolation_few_pollers.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
enablearchival: false | ||
clusterno: 1 | ||
messagingclientconfig: | ||
usemock: true | ||
historyconfig: | ||
numhistoryshards: 4 | ||
numhistoryhosts: 1 | ||
matchingconfig: | ||
nummatchinghosts: 4 | ||
simulationconfig: | ||
tasklistwritepartitions: 4 | ||
tasklistreadpartitions: 4 | ||
forwardermaxoutstandingpolls: 1 | ||
forwardermaxoutstandingtasks: 1 | ||
forwardermaxratepersecond: 10 | ||
forwardermaxchildrenpernode: 20 | ||
localpollwaittime: 10ms | ||
localtaskwaittime: 10ms | ||
tasks: | ||
- numtaskgenerators: 30 | ||
taskspersecond: 500 | ||
maxtasktogenerate: 5000 | ||
isolationgroups: ['a', 'b', 'c', 'd'] | ||
pollers: | ||
- isolationgroup: 'a' | ||
taskprocesstime: 1ms | ||
numpollers: 2 | ||
polltimeout: 60s | ||
- isolationgroup: 'b' | ||
taskprocesstime: 1ms | ||
numpollers: 2 | ||
polltimeout: 60s | ||
- isolationgroup: 'c' | ||
taskprocesstime: 1ms | ||
numpollers: 2 | ||
polltimeout: 60s | ||
- isolationgroup: 'd' | ||
taskprocesstime: 1ms | ||
numpollers: 2 | ||
polltimeout: 60s | ||
workerconfig: | ||
enableasyncwfconsumer: false |
42 changes: 42 additions & 0 deletions
42
host/testdata/matching_simulation_zonal_isolation_many_pollers.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
enablearchival: false | ||
clusterno: 1 | ||
messagingclientconfig: | ||
usemock: true | ||
historyconfig: | ||
numhistoryshards: 4 | ||
numhistoryhosts: 1 | ||
matchingconfig: | ||
nummatchinghosts: 4 | ||
simulationconfig: | ||
tasklistwritepartitions: 4 | ||
tasklistreadpartitions: 4 | ||
forwardermaxoutstandingpolls: 1 | ||
forwardermaxoutstandingtasks: 1 | ||
forwardermaxratepersecond: 10 | ||
forwardermaxchildrenpernode: 20 | ||
localpollwaittime: 10ms | ||
localtaskwaittime: 10ms | ||
tasks: | ||
- numtaskgenerators: 30 | ||
taskspersecond: 500 | ||
maxtasktogenerate: 5000 | ||
isolationgroups: ['a', 'b', 'c', 'd'] | ||
pollers: | ||
- isolationgroup: 'a' | ||
taskprocesstime: 1ms | ||
numpollers: 16 | ||
polltimeout: 60s | ||
- isolationgroup: 'b' | ||
taskprocesstime: 1ms | ||
numpollers: 16 | ||
polltimeout: 60s | ||
- isolationgroup: 'c' | ||
taskprocesstime: 1ms | ||
numpollers: 16 | ||
polltimeout: 60s | ||
- isolationgroup: 'd' | ||
taskprocesstime: 1ms | ||
numpollers: 16 | ||
polltimeout: 60s | ||
workerconfig: | ||
enableasyncwfconsumer: false |
42 changes: 42 additions & 0 deletions
42
host/testdata/matching_simulation_zonal_isolation_single_partition.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
enablearchival: false | ||
clusterno: 1 | ||
messagingclientconfig: | ||
usemock: true | ||
historyconfig: | ||
numhistoryshards: 4 | ||
numhistoryhosts: 1 | ||
matchingconfig: | ||
nummatchinghosts: 4 | ||
simulationconfig: | ||
tasklistwritepartitions: 1 | ||
tasklistreadpartitions: 1 | ||
forwardermaxoutstandingpolls: 1 | ||
forwardermaxoutstandingtasks: 1 | ||
forwardermaxratepersecond: 10 | ||
forwardermaxchildrenpernode: 20 | ||
localpollwaittime: 10ms | ||
localtaskwaittime: 10ms | ||
tasks: | ||
- numtaskgenerators: 30 | ||
taskspersecond: 500 | ||
maxtasktogenerate: 5000 | ||
isolationgroups: ['a', 'b', 'c', 'd'] | ||
pollers: | ||
- isolationgroup: 'a' | ||
taskprocesstime: 1ms | ||
numpollers: 2 | ||
polltimeout: 60s | ||
- isolationgroup: 'b' | ||
taskprocesstime: 1ms | ||
numpollers: 2 | ||
polltimeout: 60s | ||
- isolationgroup: 'c' | ||
taskprocesstime: 1ms | ||
numpollers: 2 | ||
polltimeout: 60s | ||
- isolationgroup: 'd' | ||
taskprocesstime: 1ms | ||
numpollers: 2 | ||
polltimeout: 60s | ||
workerconfig: | ||
enableasyncwfconsumer: false |
46 changes: 46 additions & 0 deletions
46
host/testdata/matching_simulation_zonal_isolation_skew.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
enablearchival: false | ||
clusterno: 1 | ||
messagingclientconfig: | ||
usemock: true | ||
historyconfig: | ||
numhistoryshards: 4 | ||
numhistoryhosts: 1 | ||
matchingconfig: | ||
nummatchinghosts: 4 | ||
simulationconfig: | ||
tasklistwritepartitions: 4 | ||
tasklistreadpartitions: 4 | ||
forwardermaxoutstandingpolls: 1 | ||
forwardermaxoutstandingtasks: 1 | ||
forwardermaxratepersecond: 10 | ||
forwardermaxchildrenpernode: 20 | ||
localpollwaittime: 10ms | ||
localtaskwaittime: 10ms | ||
tasks: | ||
- numtaskgenerators: 10 | ||
taskspersecond: 180 | ||
maxtasktogenerate: 1800 | ||
isolationgroups: ['a', 'b', 'c'] | ||
- numtaskgenerators: 20 | ||
taskspersecond: 320 | ||
maxtasktogenerate: 3200 | ||
isolationgroups: [ 'd' ] | ||
pollers: | ||
- isolationgroup: 'a' | ||
taskprocesstime: 25ms | ||
numpollers: 8 | ||
polltimeout: 60s | ||
- isolationgroup: 'b' | ||
taskprocesstime: 25ms | ||
numpollers: 8 | ||
polltimeout: 60s | ||
- isolationgroup: 'c' | ||
taskprocesstime: 25ms | ||
numpollers: 8 | ||
polltimeout: 60s | ||
- isolationgroup: 'd' | ||
taskprocesstime: 25ms | ||
numpollers: 8 | ||
polltimeout: 60s | ||
workerconfig: | ||
enableasyncwfconsumer: false |
46 changes: 46 additions & 0 deletions
46
host/testdata/matching_simulation_zonal_isolation_skew_extreme.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
enablearchival: false | ||
clusterno: 1 | ||
messagingclientconfig: | ||
usemock: true | ||
historyconfig: | ||
numhistoryshards: 4 | ||
numhistoryhosts: 1 | ||
matchingconfig: | ||
nummatchinghosts: 4 | ||
simulationconfig: | ||
tasklistwritepartitions: 4 | ||
tasklistreadpartitions: 4 | ||
forwardermaxoutstandingpolls: 1 | ||
forwardermaxoutstandingtasks: 1 | ||
forwardermaxratepersecond: 10 | ||
forwardermaxchildrenpernode: 20 | ||
localpollwaittime: 10ms | ||
localtaskwaittime: 10ms | ||
tasks: | ||
- numtaskgenerators: 3 | ||
taskspersecond: 50 | ||
maxtasktogenerate: 500 | ||
isolationgroups: ['a', 'b', 'c'] | ||
- numtaskgenerators: 27 | ||
taskspersecond: 450 | ||
maxtasktogenerate: 4500 | ||
isolationgroups: [ 'd' ] | ||
pollers: | ||
- isolationgroup: 'a' | ||
taskprocesstime: 25ms | ||
numpollers: 8 | ||
polltimeout: 60s | ||
- isolationgroup: 'b' | ||
taskprocesstime: 25ms | ||
numpollers: 8 | ||
polltimeout: 60s | ||
- isolationgroup: 'c' | ||
taskprocesstime: 25ms | ||
numpollers: 8 | ||
polltimeout: 60s | ||
- isolationgroup: 'd' | ||
taskprocesstime: 25ms | ||
numpollers: 8 | ||
polltimeout: 60s | ||
workerconfig: | ||
enableasyncwfconsumer: false |
46 changes: 46 additions & 0 deletions
46
host/testdata/matching_simulation_zonal_isolation_skew_forwarding.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
enablearchival: false | ||
clusterno: 1 | ||
messagingclientconfig: | ||
usemock: true | ||
historyconfig: | ||
numhistoryshards: 4 | ||
numhistoryhosts: 1 | ||
matchingconfig: | ||
nummatchinghosts: 4 | ||
simulationconfig: | ||
tasklistwritepartitions: 4 | ||
tasklistreadpartitions: 4 | ||
forwardermaxoutstandingpolls: 1 | ||
forwardermaxoutstandingtasks: 1 | ||
forwardermaxratepersecond: 10000 | ||
forwardermaxchildrenpernode: 20 | ||
localpollwaittime: 10ms | ||
localtaskwaittime: 10ms | ||
tasks: | ||
- numtaskgenerators: 10 | ||
taskspersecond: 180 | ||
maxtasktogenerate: 1800 | ||
isolationgroups: ['a', 'b', 'c'] | ||
- numtaskgenerators: 20 | ||
taskspersecond: 320 | ||
maxtasktogenerate: 3200 | ||
isolationgroups: [ 'd' ] | ||
pollers: | ||
- isolationgroup: 'a' | ||
taskprocesstime: 25ms | ||
numpollers: 8 | ||
polltimeout: 60s | ||
- isolationgroup: 'b' | ||
taskprocesstime: 25ms | ||
numpollers: 8 | ||
polltimeout: 60s | ||
- isolationgroup: 'c' | ||
taskprocesstime: 25ms | ||
numpollers: 8 | ||
polltimeout: 60s | ||
- isolationgroup: 'd' | ||
taskprocesstime: 25ms | ||
numpollers: 8 | ||
polltimeout: 60s | ||
workerconfig: | ||
enableasyncwfconsumer: false |
Oops, something went wrong.