Skip to content

Commit

Permalink
76 type of connections and benchmark (#78)
Browse files Browse the repository at this point in the history
* start atts mode page

* benchmark first version
  • Loading branch information
XdoctorwhoZ authored May 27, 2024
1 parent 28bd180 commit 5531fd7
Show file tree
Hide file tree
Showing 3 changed files with 164 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
title: "Attribute Modes"
weight: 100
description: "Each attribute must declare a mode defining how it will interact with MQTT"
icon: cloud
---

3 modes:

- M1: Control (set value and ensure the platform applied it)
- M2: Push Stream (send huge amount of data to the platform in a stream)
- M3: Pull Stream (receive huge amount of data from the platform in a stream)

![](./modes.png)

## Performance Benchmarks

- C: CLIENT
- B: BROKER
- P: PLATFORM

- NC: NUMBER OF PARALLELE CONNECTION
- NI: NUMBER OF ITERATIONS
- PS: PAYLOAD SIZE

### Latency Metrics

- LCB: Latency between Client and Broker (use PINGREQ/PIGNRESP)
- LBP: Latency between Broker and Platform (use PINGREQ/PIGNRESP)

### M1 Perf Metrics

For M1, create `NC` clients and `NC` platforms.

When the test start, all the clients send `NI` messages with a `PS` size.

When the last ack is received, the client stop and save its time.

The test must display:

- Min time of all clients
- Max time of all clients
- Average time of all clients

### M2 Perf Metrics

In this test case, clients will send all their messages as fast as possible.

2 times must be computed.

1. client time (number of second to push all the packet)
2. platform time (number of second to recieve all the packet)

### M3 Perf Metrics

Same as M2 but reverse logic.

Must be implemeted to be able to test M2 and M3 scenarios in parallel.
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
<mxfile host="65bd71144e">
<diagram id="pZhpO91J2a6tRy8CSL6U" name="Page-1">
<mxGraphModel dx="1151" dy="779" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="2" value="Broker" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="330" y="150" width="120" height="80" as="geometry"/>
</mxCell>
<mxCell id="3" value="Client" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="90" y="160" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="4" value="Platform" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="570" y="160" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="6" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0.25;entryY=0.25;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="3" target="2">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="560" y="420" as="sourcePoint"/>
<mxPoint x="610" y="370" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="7" value="" style="endArrow=classic;html=1;exitX=0.88;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;exitPerimeter=0;" edge="1" parent="1" source="2" target="4">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="220" y="185" as="sourcePoint"/>
<mxPoint x="370" y="180" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="8" value="" style="endArrow=classic;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=0.96;entryY=0.7;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="4" target="2">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="445.5999999999999" y="180" as="sourcePoint"/>
<mxPoint x="580" y="185" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="9" value="" style="endArrow=classic;html=1;exitX=0.13;exitY=0.77;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;exitPerimeter=0;" edge="1" parent="1" source="2" target="3">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="580" y="215" as="sourcePoint"/>
<mxPoint x="455.20000000000005" y="216" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="10" value="1 set" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="260" y="140" width="50" height="30" as="geometry"/>
</mxCell>
<mxCell id="11" value="2 set" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="470" y="140" width="50" height="30" as="geometry"/>
</mxCell>
<mxCell id="12" value="3 ack" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="470" y="210" width="50" height="30" as="geometry"/>
</mxCell>
<mxCell id="13" value="4 wait ack" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="240" y="220" width="70" height="30" as="geometry"/>
</mxCell>
<mxCell id="14" value="Mode 1: Control" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="330" y="60" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="15" value="Mode 2: Push Stream" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="315" y="280" width="150" height="60" as="geometry"/>
</mxCell>
<mxCell id="16" value="Broker" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="330" y="350" width="120" height="80" as="geometry"/>
</mxCell>
<mxCell id="17" value="Client" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="90" y="360" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="18" value="Platform" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="570" y="360" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="19" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.07;entryY=0.4;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="17" target="16">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="560" y="620" as="sourcePoint"/>
<mxPoint x="610" y="570" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="20" value="" style="endArrow=classic;html=1;exitX=0.875;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitPerimeter=0;" edge="1" parent="1" source="16" target="18">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="220" y="385" as="sourcePoint"/>
<mxPoint x="370" y="380" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="27" value="Mode 3: Pull Stream" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="315" y="450" width="150" height="60" as="geometry"/>
</mxCell>
<mxCell id="28" value="Broker" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="330" y="520" width="120" height="80" as="geometry"/>
</mxCell>
<mxCell id="29" value="Client" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="90" y="530" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="30" value="Platform" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="570" y="530" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="31" value="" style="endArrow=classic;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.875;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="30" target="28">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="560" y="790" as="sourcePoint"/>
<mxPoint x="610" y="740" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="32" value="" style="endArrow=classic;html=1;exitX=0.16;exitY=0.55;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitPerimeter=0;" edge="1" parent="1" source="28" target="29">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="220" y="555" as="sourcePoint"/>
<mxPoint x="370" y="550" as="targetPoint"/>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 5531fd7

Please sign in to comment.