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.
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.