dds performance evaluation douglas c schmidt ming xiong jeff parsons

20
DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Upload: byron-collins

Post on 31-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

DDS Performance Evaluation

Douglas C Schmidt

Ming Xiong

Jeff Parsons

Page 2: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Agenda

Motivation Benchmark Targets Benchmark Scenario Testbed Configuration Empirical Results Results Analysis

Page 3: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Motivation

Gain familiarities with different DDS DCPS implementations DLRL implementations don’t exist (yet)

Understand the performance difference between DDS & other pub/sub middleware

Understand the performance difference between various DDS implementations

Page 4: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Benchmark TargetsName Description

DDS New OMG pub/sub middleware standards for data-centric real-time applications

Java Messaging Service

Enterprise messaging standards that enable J2EE components to communicate asynchronously & reliably

TAONotificationService

OMG data interoperability standards that enable events to be sent & received between objects in a decoupled fashion

WS-Pub/Sub XML-based (SOAP)

Page 5: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Benchmark Targets (cont’d)Name Description

DDS1 DDS DCPS implementation by vendor XYZ

DDS2 DDS DCPS implementation by vendor ABC

DDS3 DDS DCPS implementation by vendor 123

Page 6: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Benchmark ScenarioTwo processes perform IPC in which a client initiates a requ

est to transmit a number of bytes to the server along with a seq_num (pubmessage), & the server simply replies with the same seq_num (ackmessage).

The invocation is essentially a two-way call, i.e., the client/server waits for the request to be completed.

The client & server are collocated.DDS & JMS provides topic-based pub/sub model.Notification Service uses push model.SOAP uses p2p schema-based model.

Page 7: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Testbed Configuration

Hostname

blade14.isislab.vanderbilt.edu OS version (uname -a)

Linux version 2.6.14-1.1637_FC4smp ([email protected])

GCC Version g++ (GCC) 3.2.3 20030502 (Red Hat Linux 3.2.3-47.fc4)

CPU info Intel(R) Xeon(TM) CPU 2.80GHz w/ 1GB ram

Page 8: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Empirical results (1/5)

Average round-trip latency & dispersion

Message types: sequence of bytes sequence of complex type

Lengths in powers of 2 Ack message of 4 bytes 100 primer iterations 10,000 stats iterations

// Complex Sequence Type

struct Inner {

string info;

long index;

};

typedef sequence<Inner> InnerSeq;

struct Outer {

long length;

InnerSeq nested_member;

};

typedef sequence<Outer> ComplexSeq;

Page 9: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Empirical results (2/5)

DDS/GSOAP/JMS/Notification Service Comparison - Latency

10

100

1000

10000

100000

4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384

Message Size (bytes)

Av

g. L

ate

nc

y (

us

ec

s)

DDS1 DDS2

DDS3 GSOAP

JMS Notification Service

Page 10: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Empirical results (3/5)

DDS/GSOAP/JMS/Notification Service Comparison - Jitter

1

10

100

1000

10000

4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384

Message Size (bytes)

Sta

nd

ard

De

via

tio

n (

us

ec

s)

DDS1 DDS2DDS3 GSOAPJMS Notification service

Page 11: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Empirical results (4/5)

Page 12: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Empirical results (5/5)

Page 13: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Results Analysis

From the results we can see that DDS has significantly better performance than other SOA & pub/sub services.

Although there is a wide variation in the performance of the DDS implementations, they are all at least twice as fast as other pub/sub services.

Page 14: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Encoding/Decoding (1/5)

Measured overhead and dispersion of encoding C++ data types for transmission decoding C++ data types from transmission

DDS3 and GSOAP implementations compared Same data types, platform, compiler and test

parameters as for roundtrip latency benchmarks

Page 15: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Encoding/Decoding (2/5)DDS/GSOAP Comparison - Encoding Overhead

0.01

0.1

1

10

100

1000

10000

100000

1000000

4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384

Sequence Length

Tim

e (u

secs

)

DDS3 Byte Sequence

DDS3 Complex Sequence

GSOAP Byte Sequence

GSOAP Complex Sequence

Page 16: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Encoding/Decoding (3/5)

DDS/GSOAP Comparison - Encoding Jitter

0.01

0.1

1

10

100

1000

10000

4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384

Sequence Length

Sta

nd

ard

Dev

iati

on

(u

secs

)

DDS3 Byte Sequence

DDS3 Complex Sequence

GSOAP Byte Sequence

GSOAP Complex Sequence

Page 17: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Encoding/Decoding (4/5)

DDS/GSOAP Comparison - Decoding Overhead

1

10

100

1000

10000

100000

1000000

4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384

Sequence Length

Tim

e (u

secs

)

DDS3 Byte Sequence

DDS3 Complex Sequence

GSOAP Byte Sequence

GSOAP Complex Sequence

Page 18: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Encoding/Decoding (5/5)DDS/GSOAP Comparison - Decoding Jitter

0.1

1

10

100

1000

10000

4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384

Sequence Length

Sta

nd

ard

Dev

iati

on

(u

secs

)

DDS3 Byte Sequence

DDS3 Complex Sequence

GSOAP Byte Sequence

GSOAP Complex Sequence

Page 19: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Results Analysis Slowest DDS implementation is compared with

GSOAP. DDS is faster.

Almost always by a factor of 10 or more. GSOAP is encoding XML strings.

Difference is larger for byte sequences. DDS implementation has optimization for byte seq.

Encodes sequence as a single block – no iteration. GSOAP always iterates to encode sequences.

Jitter discontinuities occur at consistent payload sizes.

Page 20: DDS Performance Evaluation Douglas C Schmidt Ming Xiong Jeff Parsons

Future Work

MeasureThe scalability of DDS implementations, e.g., using one-to-many & many-to-many configurations in our 56 dual-CPU node cluster called ISISlab.

DDS performance on a broader/larger range of data types & sizes.

The effect of DDS QoS parameters , e.g., TransPortPriority, Reliability (BestEffort vs Reliable/FIFO), etc.) on throughput, latency, jitter, & scalability.

The performance of DLRL implementations (when they become available).