View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0005800 | 10000-014: PubSub | Spec | public | 2020-07-15 16:26 | 2022-06-22 06:50 |
Reporter | Martin Regen | Assigned To | Matthias Damm | ||
Priority | normal | Severity | minor | Reproducibility | N/A |
Status | closed | Resolution | fixed | ||
Target Version | 1.05.02 RC1 | Fixed in Version | 1.05.02 RC1 | ||
Summary | 0005800: For the MQTT PubSub encoding, specify a gzipped version of the body/payload for huge cost savings | ||||
Description | Cost is an issue when sending data to the cloud. Especially sending JSON can become quite costly when data is metered at 4kb message boundaries. In the latest spec with MQTT Version 5.0, to support the gzipped payload , it would be possible to add the ContentType 'application/json+gzip' for JSON and application/opcua+uadp+gzip for UADP. The saving as measured with JSON were seen between 2 and 15 times smaller payload with gzip. For binary still saving by a factor of two might be possible, but we need to measure the compression factor with some real payload. It may even make things worse, need to verify. RFC 1952 --> GZIP compression 7.3.5.8 Message body | ||||
Additional Information | Note --> the numbers seen need to be verified with an optimized JSON or UADP payload. I'm working with the team on getting some good numbers for discussion, e.g. network message with 1000 nodes. Update: I got some numbers with simulated JSON data as RawValues and DataValues because our test server created nodes with almost identical names. From lcantero@microsoft.com Here are the results for pubsub with changed ids and random values (compressed by ~10x): Here are the (similar) results for PubSub mode + Json encoding: So I think we could compress by 2 to 15 times and be somewhere in the middle in average, which is still a lot of saving. Thanks, | ||||
Tags | No tags attached. | ||||
Commit Version | |||||
Fix Due Date | |||||
|
Document as discussed in the WG meeting is here: https://opcfoundation.sharepoint.com/UA/work/Meetings/2020/2020-12-07%20F2F%20Virtual/OPC%2010000-14%20-%20UA%20Specification%20Part%2014%20-%20PubSub%201.05.0%20mregen%20jsongzip.docx Addition was accepted but a new TransportProfileUri is required to select the json+gzip format The deflat and brotli formats were dropped as they just increase the IOP test matrix. |
|
There is also a requirement to batch multiple NetworkMessages and to compress them. |
|
Adding the text as it was accepted in the WG meeting on 12/9/2020 from the word doc: 7.3.5.8.2 JSON message mapping |
|
Add following text to 1.05.02 JSON messages can become quite large, in order to save bandwidth and to reduce message size, on MQTT Version 5.0 the MQTT ContentType property allows to select a compression type as encoding for a JSON message. Applying a compression on a message is optional and can be chosen by the publisher application at send time, to ensure that the applied compression is not increasing the size of a message. The application programs responsible for sending and receiving messages are responsible for supporting the compression type at both ends. |
|
Added proposed text to |
|
Agreed to changes edited in Munich F2F. |
Date Modified | Username | Field | Change |
---|---|---|---|
2020-07-15 16:26 | Martin Regen | New Issue | |
2020-07-15 16:26 | Martin Regen | Status | new => assigned |
2020-07-15 16:26 | Martin Regen | Assigned To | => Matthias Damm |
2020-07-16 06:39 | Martin Regen | Description Updated | |
2020-07-16 06:41 | Martin Regen | Additional Information Updated | |
2020-07-23 06:29 | Martin Regen | Description Updated | |
2020-07-23 06:29 | Martin Regen | Additional Information Updated | |
2020-07-23 06:30 | Martin Regen | Additional Information Updated | |
2020-12-09 18:07 | Martin Regen | Note Added: 0013432 | |
2022-01-17 15:46 | Matthias Damm | Note Added: 0015732 | |
2022-01-18 07:22 | Martin Regen | Note Added: 0015761 | |
2022-02-18 16:12 | Matthias Damm | Note Added: 0016058 | |
2022-02-18 16:12 | Matthias Damm | Target Version | => 1.05.02 RC1 |
2022-02-23 13:52 | Matthias Damm | Status | assigned => resolved |
2022-02-23 13:52 | Matthias Damm | Resolution | open => fixed |
2022-02-23 13:52 | Matthias Damm | Fixed in Version | => 1.05.02 RC1 |
2022-02-23 13:52 | Matthias Damm | Note Added: 0016078 | |
2022-06-22 06:50 | Jim Luth | Status | resolved => closed |
2022-06-22 06:50 | Jim Luth | Note Added: 0016965 |