1 1
Todd L. Montgomery VP Architecture, Messaging Business Unit @toddlmontgomery
High Performance Network Applications in the Capital Markets Todd - - PowerPoint PPT Presentation
High Performance Network Applications in the Capital Markets Todd L. Montgomery VP Architecture, Messaging Business Unit @toddlmontgomery 1 1 Why do Developers use Messaging? Message-Oriented Middleware (MOM) Abstraction (Pub-Sub,
1 1
Todd L. Montgomery VP Architecture, Messaging Business Unit @toddlmontgomery
2 2
2
3 3
Data Deluge
5 7 10 13 26 120 160 310 559 696 1,100 1,562 1,925 2,562 3,410 4,380 5,957 7,174 Dec-00 Dec-01 Dec-02 Dec-03 Dec-04 Dec-05 Dec-06 Dec-07 Dec-08 Dec-09 Dec-10 Dec-11
Aggregated One Minute Peak Messages Per Second Rates Arca, CTS, CQS, OPRA, NQDS (in thousands) > 1Terabyte of Data per Day
4 4
Why Latency Matters
Execution Execution
Feed Handler Feed Handler
Ultra Messaging TIBCO RV and EMS
Got INFA at 40.00 Got INFA at 41.00
INFA at 40.00
Market Data Market Data
5 5
Why Latency Matters
Alpha Ultra Messaging Tango TIBCO RV / EMS Hotel Homegrown
6 6
Race to Zero – Less than 8 years, 10,000x-100,000x decrease! ≤2003 (Ethernet) 4-5 ms 2004 (Ethernet) 200 μs 2008 (IB) 10 μs 2010 (10G,IB) 2 μs 2010 (IPC) <400 ns 2011 (ITC) <50 ns Application to Application Latency
Predictions – Technology
Predictions – Technique
IPC/ITC only Limited by CPU!
7 7
Before 2004
6 Data Hops 4 Data Hops Daemon Based Design Broker Based Design
8 8
More Efficient, More Scalable, More MORE…
Competitive Advantage (No Vendor Innovation)
9 9
MOM for Todays Demands
10 10
Connecting Sources and Receivers (Peer-to-Peer)
Traditionally, brokers handled the task of providing transparent connectivity between sources and receivers Separate the message delivery path and the topic discovery mechanism! Avoid including topic string in each message!
11 11
Customization of Connectivity
congestion control)
12 12
Architecture for Conflation and Rate Adaptation
TCP
buffered messages into one
13 13
Store and Forward Architecture
Broker
importantly, other receivers
without loss of messages upon restart
recovering missed messages
Deployments can only scale by adding brokers and splitting the topic space
14 14
Durable Delivery without Penalty
Store
Store Store
recovering receivers
uses normal peer-to-peer messaging
Consumption Information
Stores do less work, maintain less state, and can scale!
15 15
Shared Nothing Approach to Persistence
Store3 Store2 Store1
Message 1 Message 2 Message 3 Message 4
… … …
16 16
Receiver Recovery and Arbitration
Store
Store Store
status and take majority or highest (arbitration)
impact of recovery
stores at slower pace
Live Recovering
17 17
Simplifying the Semantics – Publish/Subscribe
send(“topic A”, data, length); send(“topic B”, dataB, lengthB); srcA = create_src(“topic A”); srcB = create_src(“topic B”); … send(srcA, data, length); send(srcB, dataB, lengthB); … delete_src(srcA); delete_src(srcB);
Create MessageProducer without Destination and specify Destination on each send
Create Topic and TopicPublisher
Can leverage Topic Resolution in order to reduce message path latency
18 18
Simplifying the Semantics – Publish/Subscribe
int msg_proc(msg *m, void *cd) { /* handle m based on cd value (rA_state or rB_state) and/or m contents */ } … rcv1 = create_rcv(“topic A”, msg_proc, rA_state); Rcv2 = create_rcv(“topic B”, msg_proc, rB_state); …
How do you handle receiving on thousands to millions of topics?
Create Topic and TopicSubscriber Attach MessageListener
19 19
Load Balancing + De-Coupling
20 20
No Need For Point-to-Point to be Different
Sources send to Queues Receivers receive from Queues
Sources send to Topics Receivers receive from Topics
Replace “Queue” with “Topic”
21 21
Load Balancing + De-Coupling
Store
Store Store
Assignment and Consumption
22 22
MOM Evolution
23 23