[ZBXNEXT-4411] Compression for communication server-proxy (Z4) Created: 2018 Mar 08  Updated: 2024 Apr 10  Resolved: 2018 Jun 08

Status: Closed
Project: ZABBIX FEATURE REQUESTS
Component/s: Proxy (P), Server (S)
Affects Version/s: None
Fix Version/s: 4.0.0alpha6, 4.0 (plan)

Type: New Feature Request Priority: Trivial
Reporter: Rostislav Palivoda Assignee: Andris Zeila
Resolution: Fixed Votes: 2
Labels: None
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Issue Links:
Causes
Duplicate
Sub-task
part of ZBXNEXT-131 Compression for Node Sync and Proxy c... Closed
Sub-Tasks:
Key
Summary
Type
Status
Assignee
ZBXNEXT-4420 Frontend: Compression for communicati... Specification change (Sub-task) Closed Miks Kronkalns  
Epic Link: DEV-677
Team: Team A
Sprint: Sprint 29, Sprint 30, Sprint 31, Sprint 32, Sprint 35
Story Points: 2

 Description   

Compression for communication with proxies must be implemented:

  • Server and Proxies will be built with enabled compression by default, therefore all communications between Server and all Proxies will be unconditionally compressed starting from version 4.0.0.
  • We must support build of Server and Proxies binaries without compression. In this case no compression will be used between Server and all Proxies.
  • There will be no buffer size threshold to define if compression should be used or not. If compression is enabled, it will always be used.
  • Low level version of the communication protocol must clearly indicate use of compression.
  • Zabbix processes must produce clear warning messages in case if there is protocol mismatch, i.e. compression is not supported or version of the protocol is not supported. It must also work for future versions of the protocol.


 Comments   
Comment by Vladislavs Sokurenko [ 2018 Apr 11 ]

Successfully tested

Comment by Andris Zeila [ 2018 Apr 11 ]

Released in:

  • pre-4.0.0alpha6 r79596
Comment by richlv [ 2018 Jun 18 ]

Looks like these changes have not made it into the upgrade notes - specifically, the protocol changes (the added dependency is already documented).

palivoda: Thanks for catch, please raise new ZBX - Document task.

 wiper: Not quite sure if the protocol changes must be mentioned in upgrade notes. I understand in upgrade note we must describe changes in existing functionality, but the existing functionality is not affected by the protocol changes (well server cannot accept 4GB+ data anymore, but we have maximum 128MB hardcoded limit anyway - so from practical pov nothing has been changed).

<richlv> This would be important for module maintainers and solution authors where the protocol has been implemented. A popular example - in cases when data to trapper items must be delivered for hosts, monitored by a proxy, a proxy-imitating data is sent directly to Zabbix server.

wiper: Which means it must be described in what's new, not upgrade notes?

<richlv> Both. "What's new" would describe the improvement angle, while upgrade notes would describe any potentially breaking changes. Thinking about the target audiences, "what's new" would be primarily aimed at people who are still considering an upgrade - why should the upgrade? "Upgrade notes" would be primarily aimed at people who want to know what might break if they upgrade.
These groups are not always the same, and the same group would likely read one or another section at different times.

wiper: Yes, but in this case the protocol extension doesn't introduce any potentially breaking changes. So why it should be described in upgrade notes?

<richlv> Hmm, I might have misunderstood the changes then.

Server and Proxies will be built with enabled compression by default,
therefore all communications between Server and all Proxies will be
unconditionally compressed starting from version 4.0.0.

What does this sentence mean and how will server/proxy react to an endpoint that will attempt to use uncompressed protocol?

wiper: Uncompressed protocol is still accepted, so server will still partially (data upload) work with old proxies etc. I think 'unconditionally' here means that data is always compressed without checking packet size. For small packets it will mean slight size increase.

<richlv> That's great info, thank you so much, Andri. I'd guess that "partially" part is not connected to the compression anyway but to the fact that the configuration protocol changed slightly, right? When the debugging level protocol logging is done, the uncompressed data is logged, is that correct?

wiper: Yes and yes.

Generated at Thu Apr 25 22:15:57 EEST 2024 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.