Download presentation
Presentation is loading. Please wait.
Published byDwight Mitchell Modified over 8 years ago
1
RDA3 Transport Joel Lauener on behalf of the CMW team 26th June, 2013 Joel.Lauener@cern.ch
2
Introduction Architecture Connection management Messaging Conclusions Outline 1
3
Introduction Provide connection management and asynchronous bi-directional communication Keep it simple & stupid! Abstraction of the underlying communication library Independent from other librairies 2 Introduction
4
Public API 3 Architecture
5
Dispatcher Push sockets from high level to transport Callback from transport to high level 4 Architecture
6
Channels Admin socket: – Management – Small message size – Small message count Data socket: – Application data – Might block/overflow 5 Architecture
7
Frames 0x20 CLIENT_CONNECT 0x21CLIENT_REQ 0x22 CLIENT_HB 0x01SERVER_CONNECT_ACK 0x02SERVER_REP 0x03SERVER_HB 6 Architecture
8
Message Used to pass data between high layer and transport layer Wrapper around ZMQ message with custom free function 0 copy 7 Architecture
9
Connect (success) 8 Connection Management
10
Heartbeating 9 Connection Management
11
Connect (fail) 10 Connection Management
12
Client reconnect 11 Connection Management
13
Server disconnect 12 Connection Management
14
Client close 13 Connection Management
15
Connection states 14 Connection Management
16
Request 15 Messaging
17
Replies 16 Messaging
18
Each data point can be multiplexed Authorization layer (RBAC) Cannot send first updates through the same channel We do not use pub/sub for notifications But we have 2 use cases for a pub/sub based transport: Timing and Orbit Feedback What about pub/sub? 17 Messaging
19
Powerful, easy to use, well documented However… – In terms of error handling ROUTER is inconsistent compared to DEALER, REQ and REP – ZMQ doesn’t give means to inspect/modify the content of queues ZeroMQ 18 Conclusions
20
Future plans Improve disconnection detection on the server side (ZMQ monitor or async HB) Implement graceful close Investigate pub/sub Think about replies priority Performance testing and profiling Should be ready by September ’13 19 Conclusions
21
Transport is almost implemented – Working version in C++ and Java – 90% done, 90% of work left ;) – Some work left on error detection Pub/sub is not used for sending notifications No showstoppers on the ZeroMQ side Preliminary scalability tests are promising Summary 20 Conclusions
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.