1.
멀티삼총사는 무엇일까요? Multicast, Multiverb, Multisend를 말합니다. Multicast는 알지만 아마도 나머지는 생소하실 듯 합니다. ?최근 High Thoughput, Low Latency를 지향하는 트레이딩 어플리케이션의 특징을 반영한 기술들입니다.
우선 Multicast는 KRX 및 증권사에서 시장정보 분배를 위하여 사용하고 있습니다. ?다만 1990년말부터 보급된 Reliable Multicast는 아직 한국에서 생소합니다. Smartsocket을 만들었던 Talarian이 개발하였던 SmartPGM이 유명합니다. 오프소스였지만 Tibco가 인수한 이후 Rendevous의 Reliable Multicast Transport로 사용되고 있습니다. Reliable Multicast의 원리는 간단합니다. 패킷이 손실되면 송신자에게 ACK이 아닌 NAK을 전달합니다. 그리고 다시 재전송이 일어납니다.
While TCP uses ACKs to acknowledge groups of packets sent (something that would be uneconomical over multicast), PGM uses the concept of Negative Acknowledgements (NAKs). A NAK is sent unicast back to the host via a defined network-layer hop-by-hop procedure whenever there is a detection of data loss of a specific sequence. As PGM is heavily reliant on NAKs for integrity, when a NAK is sent, a NAK Confirmation (NCF) is sent via multicast for every hop back. Repair Data (RDATA) is then sent back either from the source or from a Designated Local Repairer (DLR).
시장정보 분배서비스를 하고 있는 로이터도 자체적인 Reliable Multicast Protocol을 가지고 있습니다.
Reuters Reliable Control Protocol (RRCP) / Reuters Reliable Messaging Protocol (RRMP)
RRCP – Reuters Reliable Control Protocol. This is a transport protocol that builds reliability on top of UDP/IP. It is used to send RRMP packets between components on Market Data Hub. It is similar in function to the RV protocol.RRMP – Reuters Reliable Management Protocol. This is the market data semantics that hub components use to communicate with each other. It uses the RRCP layer for reliable end-to-end communications.
앞서 언급하였던 Tibco도 SmartPGM을 RV라는 이름으로 변경하여 지원하고 있습니다.
RV – TIB/Rendezvous. This is a transport protocol that builds reliability on top of UDP/IP. It is used by the components on the Distribution Layer for reliable end-to-end communication.
Exture+를 구축할 때 새로운 메시징기술을 개발하여 적용하겠다고 하는 KRX도 Reliable Multicast기술을 확보하였으면 합니다. 물론 OpenPGM이라는 오픈소스기술도 있습니다.
2.
Multicast는 친숙합니다.그런데 Multiverb는 약간 생소합니다. Verb는 Infiniband를 적용한 어플리케이션을 개발할 때 사용하는 개념입니다. 관련된 글과 자료를 다시금 소개합니다.
IB RDMA 프로그래밍
RDMA read and write with IB verbs
위의 글을 쓸 때 Verb를 이용한 개발은 가능하면 하지 말라고 했습니다. 표준적인 방법론이 없기때문입니다. 이런 문제점을 해결하기 위하여 얼마전 NYSE의 자회사인 NYSE Technologies가 자사의 메시징제품인 Data Fabric에서 Multicast기능을 같는 Verb를 지원한다고 발표하였습니다.
MultiVerb – Verb-level Multicast distribution
LDMA ? Local Direct Memory Access
RDMA ? Remote Direct Memory Access
Direct TCP sockets
Access via high performance, industry standa
이제 Multiverb를 이해할 수 있습니다. 물론 개발할 수 있다는 뜻은 아닙니다.(^^)
3.
삼총사중 마지막입니다. Multisend는 사실 손에 잡히지 않습니다. 처음 이 개념을 접한 자료는 Tibco FTL를 소개하는 자료입니다.
In Memory Database기술을 대체하는 기술로 Multisend를 언급하고 있습니다. 다른 자료는 Multisend를 이렇게 설명합니다.
Mult?send ? Single send to multiple transport without any performance penalty
구글링을 해보면 아래와 같은 의미로 소개한 자료도 있습니다.HPC와 관련된 기술입니다.
?In a multisend, many point-to-point messages to different destinations can be sent through a single operation, thus amortizing the software startup overheads. This call is of importance for low frequency core architectures. Multisend also enables network hardware specific optimizations for groups of messages (e.g., depositing packets along straight lines on the torus network).
Multisend는 자료가 부족하여 실체를 이해하기 쉽지 않네요. 그래도 Tibco가 Trading 3.0이라고 하며 소개한 흐름이니 기억해둘 필요가 있을 듯 합니다. 위의 그림중 Co-Habitation이라는 말이 나옵니다. 무엇일까요? 이것도 애매합니다. 다만 ELW DMA서비스를 제공하는 곳중에서 FEP와 DMA를 섞어서 하드웨어와 어플리케이션을 통합한 증권사가 있었습니다. 아마 이런 것을 Co-Habitation이라고 한 것은 아닌지 추측합니다.(^^)
4.
멀티삼총사에 대한 소개를 마치려고 합니다. 이중에서 ZeroM도 추가하여야 할 기능이 있습니다. Reliable Multicast이나 Multiverb는 조만간 적용하여야 할 듯 합니다.
IT기술을 급격히 변하고 있고 나이는 들고 쫓아가기 너무 힘드네요. 이해하는 것도 힘든데 개발하려면 얼마나……