Messaging Module

The Messaging module benchmarks the SMA (Simple Messaging Architecture) layer, which provides publish-subscribe messaging abstractions on top of the link layer.

Overview

The SMA layer adds messaging semantics including:

  • Channel-based pub/sub

  • Message routing

  • Quality of Service (QoS) levels

  • Multicast support

This benchmark measures the overhead of these abstractions compared to raw link layer performance.

Test Programs

Sender

Class: com.neeve.perf.sma.Sender

Publishes messages to a channel.

Receiver

Class: com.neeve.perf.sma.Receiver

Subscribes to and receives messages from a channel.

Command-Line Parameters

Common Parameters (Both Sender and Receiver)

Short
Long
Required
Default
Description

-u

--username

Yes

-

Bus binding username

-d

--descriptor

Yes

-

Messaging bus connection descriptor

-c

--testCount

No

3000000

Number of messages (< 1 for unlimited)

-r

--testRate

Yes

100000

Send rate (< 1 for unlimited)

-k

--channelKey

No

null

Channel key

-f

--channelFilter

No

null

Channel filter

-q

--channelQos

No

Guaranteed

Delivery QOS (Guaranteed or BestEffort)

-e

--encoding

No

rumi.protobuf

Encoding type

-i

--printIntervalStats

No

false

Output stats at periodic intervals

Sender-Specific Parameters

Short
Long
Default
Description

-p

--dontPopulateMessage

false

Don't populate message content (timestamp only)

-a

--cpuAffinityMask

null

CPU affinity mask for sending thread

Running Benchmarks

Basic Pub/Sub Test

On Receiver Machine:

On Sender Machine:

Interpreting Results

The SMA layer adds minimal overhead over the link layer:

  • Link Layer: ~10µs

  • SMA Layer: ~12-15µs

  • Overhead: ~2-5µs for routing and QoS

Quality of Service

Guaranteed Delivery

Ensures all messages are delivered in order:

Characteristics:

  • Reliable delivery

  • In-order processing

  • Flow control

  • Slightly higher latency

Best Effort

Allows message loss for lower latency:

Characteristics:

  • Lower latency

  • Higher throughput

  • May lose messages under load

Next Steps

Last updated