Sink API: Serializing objects is expensive

Description

While working on NMS-10586 I found that the serialization strategy for sink messages is currently quite slow. For some messages, such as SNMP traps the message is first marshalled to XML before being converted to a byte array and finally sent out. This expensive conversion process limits our throughput capability.

If we could serialize without the marshalling to XML step that would likely be much faster.

See AbstractXmlSinkModule.marshalSingleMessage().

Performance note: when testing the off-heap queue directly with trivial objects I could easily get 100MB/s+ of throughput. When using SNMP trap objects that rate fell to 10-15MB/s due to the increased overhead of serializing those objects.

Acceptance / Success Criteria

None

Lucidchart Diagrams

Activity

Show:

Details

Assignee

Reporter

Affects versions

Priority

PagerDuty

Created January 14, 2020 at 7:06 PM
Updated January 14, 2020 at 7:06 PM

Flag notifications