1.
2012년 Low Latency Technology 겨울 행사의 주제는 ‘Market Data, Big Data 그리고 IMDB’입니다. 이 주제를 심도있게 다룰 수 있는 조건이 아닙니다. 그렇지만 개인적인 사건으로 주제를 잡았습니다. 회사를 그만두고 Low Latency Trading이라는 주제를 두고 조사와 분석을 진행할 때입니다. 시세정보와 관련한 여러가지 정보를 살펴보았습니다. kdb+도 하나입니다. 이미 회사에 다닐 때 관심이 있어 몇 번 전자메일을 주고 받았던 회사입니다. 아주 콧대가 높았던 곳입니다만 성능은 인정받고 있었습니다. 자료를 살피면서 결론을 내렸습니다. “첫째 데이타베이스 개발은 나의 일이 아니다(^^). 둘째 시계열데이타분석에 최적화한 컬럼형 데이타베이스가 찾아보자”라고 생각했습니다. 이 후 CEP로 알고 지내던 분의 소개로 알티베이스 CTO를 만나서 Kdb+와 같은 Column Oriented In Memory DB 개발을 이야기했었습니다. 지난 2년을 되돌아 보면 별 영향이 없었던 이야기지만 저는 중요한 제안이었습니다. 이것이 첫번째 사건입니다.
두번째 사건은 McObject입니다. 이것도 더듬어 올라가면 2008년에 있었던 일이 계기입니다. 당시 고속의 HTS를 위한 제안서를 썼습니다. 이 때 조사한 제품들이 몇 있었습니다. 알티베이스 보다 빠르고 좋은 제품을 찾고 있었습니다. 조사했던 제품들이 McObject와 SolidDB입니다. 문서로 검토한 바에 따르면 SolidDB가 탁월한 성능을 보였습니다. 이를 토대로 Solid회사에 연락을 했고 IBM이 인수하였다는 연락을 받았습니다. 한국IBM을 만났지만 제품을 모르더군요. 결국 제안을 SolidDB로 했지만 구현은 알티베이스로 했습니다. 이 때의 경험으로 McObject와 SolidDB가 항상 머리속에 남았습니다. 이후 몇 년이 지난 금년 여름. McObject가 Financial Edition을 내놓았다는 기사를 보았습니다.
바로 McObject로 메일을 보냈습니다. 답장이 왔습니다. “한국을 방문하는데 만나자”고 하더군요. 숟가락을 하나 더 얹었습니다. 우연히 페북에서 McObject에 관심이 있는 분을 보고 만남을 주선하겠다고 했죠. McOject와 인연을 맺었습니다.
2.
왜 McObject에 관심을 가질까요?
Low Latency Trading을 목표로 할 때 바탕은 Market Data Management System입니다. 그동안 트레이딩을 하는 분들이 관심을 가졌던 대상은 EOD(End Of Day) 데이타입니다. 전일종가데이타입니다. 그렇지만 시장은 점점 더 틱 데이타를 기준으로 한 전략에 관심을 가지면서 실시간 처리뿐 아니라 막대한 양의 틱과거 데이타 처리도 관심 영역을 등장하였습니다. KRX의 시세분배시스템은 초당 10,000건이 넘지 않는 틱데이타를 보냅니다. 그렇지만 해외는 다릅니다. 또한 초당 건수가 많지 않다고 하더라도 매일 저장하면 엄청난 양입니다.
틱데이타 저장은 트레이딩전략의 분석, 설계 및 구현을 위한 아주 중요한 출발점입니다. 더불어 백테스팅을 위해서 무척 중요합니다. 처음 고민했던 방식은 HDF5입니다.
C/C++부터 Python까지 다양한 언어로 개발할 수 있는 라이브러리를 제공했습니다. 하지만 제품화를 하지 않았습니다. 이후 VoltDB와 같은 NoSQL도 검토를 했지만 엔터프라이즈환경에 맞는 제품이란 판단을 내리기 힘들었습니다. 이런 기다림끝에 만난 제품이 ExtremeDB입니다.
STAC는 미국 자본시장IT에서 독보적인 지위를 차지하는 회사입니다. 자본시장의 핵심제품에 대한 벤치마킹을 전문으로 합니다. 얼마전 앞서 소개한 ExtremeDB의 결과보고서를 발표하였습니다. 시세데이타 처리에서 가장 좋다고 하는 kdb+보다 더 좋은 성능을 보여주고 있습니다. 사실 성능이란 지속적인 개선능력과 함께 봐야 합니다. 한번 앞섰다고 영원히 앞서는 것은 아니기때문입니다. 그렇다고 하더라도 좋은 숫자입니다.
Running with eXtremeDB, the stack achieved the lowest mean response times reported for 15 of 17 STAC-M3 benchmarks. As one example, the Market Snapshot benchmark with 10 concurrent queries on a set of symbols to return latest trade and quotes, mean latency was 184 milliseconds, compared to 360 milliseconds when the benchmark was run on kdb+. McObject executives suggest that the stack achieved overall performance of around twice that of the kdb+ benchmarks. Standard deviation for benchmarks were also record lows, demonstrating the determinism of the package.
McObject, Dell, Mellanox, Kove Set Record STAC-M3 Benchmarks중에서
3.
다시 McObject와의 만남으로 돌아가겠습니다. 만남의 목적은 ExtremeDB를 이용한 Market Data Management Service입니다. ZeroFeeder와 ZeroM 및 ExtremeDB을 결합한 서비스입니다. 기본적인 계약을 마무리했습니다. ZeroAOS 오픈을 하면 ZeroTick이라는 프로젝트를 시작하려고 합니다. 아울러 ExtremeDB에 대한 한국영업도 합니다.
ExtremeDB를 자본시장에 도입할 때 어떤 그림이 가능할까요? 첫번째는 전사적인 시장정보시스템관리입니다. 특히 틱데이타 관리입니다. STAC 실험의 경우 3T의 KOVE제품을 이용하였습니다. 앞서 지적한 바와 같이 틱데이타관리는 알고리즘매매의 출발이자 마지막입니다.
둘째는 OMS와 미니원장에 적용할 수 있을 듯 합니다. 진행형이지만 아래와 같은 사례가 있습니다. 물론 한국환경에 따른 사례가 필요합니다.
현재 ExtremeDB을 받아서 사용하실 수 있습니다. 윈도우용은 현재 준비중입니다. 혹 질문이 있으시면 smithkim.kr@gmail.com으로 메일을 주시길 바랍니다.
ExtremeDB Financial Edition Download
이상과 관련한 이야기를 이번 Low Latency Technology 겨울행사에서 다룹니다. Market Data와 관련한 이야기는 제가 발표합니다. IMDB기술과 제품 및 ExtremeDB는 다른 분이 발표하십니다.