1 / 21

RDA3 Transport

RDA3 Transport. Joel Lauener on behalf of the CMW team 26th June , 2013 Joel.Lauener@cern.ch. Outline. Introduction Architecture Connection management Messaging Conclusions. 1. Introduction. Introduction. Provide connection management and asynchronous bi-directional communication

gala
Download Presentation

RDA3 Transport

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RDA3 Transport Joel Lauener on behalf of the CMW team 26th June, 2013 Joel.Lauener@cern.ch

  2. Outline • Introduction • Architecture • Connection management • Messaging • Conclusions 1

  3. Introduction Introduction • Provide connection management and asynchronous bi-directional communication • Keep it simple & stupid! • Abstraction of the underlying communication library • Independent from other librairies 2

  4. Architecture Public API 3

  5. Architecture Dispatcher • Push sockets from high level to transport • Callback from transport to high level 4

  6. Architecture Channels • Admin socket: • Management • Small message size • Small message count • Data socket: • Application data • Might block/overflow 5

  7. Architecture Frames 0x01 SERVER_CONNECT_ACK 0x02 SERVER_REP 0x03 SERVER_HB 0x20 CLIENT_CONNECT 0x21 CLIENT_REQ 0x22 CLIENT_HB 6

  8. Architecture Message • Used to pass data between high layer and transport layer • Wrapper around ZMQ message with custom free function  0 copy 7

  9. Connection Management Connect (success) 8

  10. Connection Management Heartbeating 9

  11. Connection Management Connect (fail) 10

  12. Connection Management Client reconnect 11

  13. Connection Management Server disconnect 12

  14. Connection Management Client close 13

  15. Connection Management Connection states 14

  16. Messaging Request 15

  17. Messaging Replies 16

  18. Messaging What about pub/sub? • 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 17

  19. Conclusions ZeroMQ • 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 18

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

  21. Conclusions Summary • 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 20

More Related