Sequencer Dünyasına Giriş

Dec 07 2022
Merhaba teknoloji meraklıları. Benim adım Aiden ve son 4 yılımı, çoğunlukla Hong Kong ve Sidney'i kapsayan Ön Büro pazarında Java çalışanı olarak çalışarak geçirdim.

Merhaba teknoloji meraklıları. Benim adım Aiden ve son 4 yılımı, çoğunlukla Hong Kong ve Sidney'i kapsayan Ön Büro pazarında Java çalışanı olarak çalışarak geçirdim. Bu yıllar boyunca, Java içinde düşük gecikmeli Java ve daha spesifik olarak sıralayıcı mimarisi olan bir pazar için bir tutku buldum.

Küçük yaşlarımdan beri, her zaman yüksek hızların keyfini çıkardığım 100 metrelik bir Warwickshire şampiyonuydum, bu yüzden ticaret sistemlerinin nasıl çalıştığını öğrenmeye başladığımda, düşük gecikme -ironik ya da belki doğal olarak- dikkatimi çeken bir şeydi.

Mühendisler ve ticaret başkanları ile ağ kurarak, bu bilgiyi düşük gecikmeyle ve daha spesifik olarak sıralayıcının nasıl çalıştığını geliştirdim. Bu, dünyadaki en hızlı Java geliştiricileriyle bağlantı kurmamı ve Yatırım bankalarıyla ilişki kurmamı sağladı.

Saniyede 2 milyondan fazla işlemle motorlarında 10 mikrosaniyenin altına inen sıralayıcı uygulayan firmalar gördüm.

Bu blog, düşük gecikme süresi için neden C++ yerine Java kullanmamız gerektiğini, sıralayıcının nasıl doğduğunu ve sıralayıcıyı büyütmede kilit kişilerin kimler olduğunu ele alacaktır. Tabii ki, bu konudaki kişisel görüşüm ve çalıştığım yıllar boyunca edindiğim bilgilerle bitemezdi.

Bu blog, ideal olarak, yüksek verimli ticaret sistemleri üzerinde çalışan BT uzmanları ve yöneticileri ve bunu ticaret sistemlerine uygulamaya başlayan veya bunu uygulamak isteyen tutkulu kişiler için idealdir.

Hadi başlayalım!

Sıralayıcıdan bahsetmeden önceki ilk adım açıktır: Java'yı neden düşük gecikme için kullanasınız ki?

Bu, herhangi bir mimar veya ticaret müdürü için tipik olarak ilk baş ağrısıdır. İlk önce hangi dili ve çerçeveyi kullanmanız gerektiğine karar verirken, çoğu mimarın performansa bakarken birkaç şeyi göz önünde bulundurması gerekir. Bunlardan gecikme (bir ticarette pazara sunma süresi), verim (sistemin kaç siparişi birinden veya diğerinden ödün vermeden işleyebileceği) ve onu inşa edecek insan gücü olacaktır. Kod donanıma daha yakın olduğundan ve bu nedenle Java ile karşılaştırıldığında performans açısından daha iyi olduğundan, birçok kişi için -gecikme süresine ve iş hacmine bakıldığında- bariz seçim C++ ile kodlamak olacaktır.

Java, normalde çok fazla bellek sorununa neden olabilen ve performansın yavaşlamasına neden olabilen bir Java Sanal Makinesi (JVM) kullanarak donanım üzerinde çalışır.

Bununla mücadele etmek için LMAX Disruptor'ı yapan mühendis Java gurusu Martin Thompson, " Mekanik Sempati" terimini bulan Jackie Steward'a (yarış arabası sürücüsü) inandı .

" Yarış pilotu olmak için mühendis olmanıza gerek yok ama mekanik bir sempatiye sahip olmanız gerekiyor ."

Burası, bir mühendisin donanım anlayışını yazılımın oluşturulmasına uygulaması gereken yerdir. Bir mühendis, makinenin mekaniğini anlayarak sistemden en iyi performansı alabilir.

Ekipler, Java'yı doğru veri yapıları, bellek teknikleri, Ağ kararları ve doğru mimari tasarımla kodlayarak, C++ performans seviyelerine yaklaşabilir veya eşit olabilir. Bir Kullanıcı Datagram Protokolü (UDP) ve Çoklu Yayın seçmek, sıralayıcının verileri mümkün olan en verimli şekilde birden çok alıcıya yayınlamasını sağlar. Bu, ağın tek iş parçacıklı bir sistemdeki gecikmeyi hızlandırmasına, mimariyi temiz hale getirmesine ve sistemdeki tüm düğümlerin tam olarak aynı mesaj setini almasına izin vermesine olanak tanır.

Java'nın bankalarda kullanılmasının daha popüler olmasının bir başka nedeni de daha fazla insan gücü olması ve bu nedenle ekibin mühendis tutmasının daha kolay olmasıdır.

C++ hala pazarın çok uzmanlaşmış bir bölümüdür ve bu, herhangi bir işe alma yöneticisi için doğru yeteneği bulma, onları elde tutma ve onlara sahip olmak için bile çok fazla ödeme yapma konusunda genellikle baş ağrısına neden olur.

Bankaların çoğu Java kullandığından, başarılı bir düşük gecikmeli ticaret platformu oluşturmak için gereken tüm faktörlere bakıldığında bu dilde işe almak tam anlamıyla mantıklıdır.

İdeal yol, Java'da kod yazmak ve geliştiricilere mekanik sempati duymayı öğretmek ve sistemi oluştururken en iyi performansı sağlayacak daha önce bahsedilen teknikleri öğrenmek olacaktır.

Bu beni, şimdiye kadar insan girişi olmadan inşa edilmiş ilk elektronik ticaret sistemi için kullanılan mimari tasarım ve tutkulu olduğum bir mimari hakkında yazma isteğine getiriyor: Island ECN Sequencer mimarisi.

Sequencer, esas olarak tüm mesajları bir sayı dizisine çok noktaya yayın yapan tek iş parçacıklı bir UDP çok noktaya yayın ara yazılım mesajlaşma veriyoludur. Mimari tamamen deterministiktir, yani her düğüm tüm mesajları aynı sırada görür ve tüm olaylar, sonlu durum makineleri aracılığıyla tam olarak aynı durumu üreten tek bir akışta yeniden oynatılabilir. Basit bir tasarım olarak görülse de günümüzde 20 yılı aşkın bir süredir firmaların tercih ettiği en hızlı mimaridir.

Bir sonraki bölüm, kökenleri ve sıralayıcının Broad Street'ten en iyi kripto borsaları, yatırım bankaları, piyasa yapıcılar (en büyük, en hızlı ve en karlı olanlar) ve satın alma tarafı ile dünyanın dört bir yanına nasıl gittiğini ayrıntılarıyla ele alacak. tüm küresel sistemleri için firmalar.

(Jane Caddesi'ndeki Brian Nigito)

Levine Sıralayıcısı ve Ada ECN Etkisi

Eski üniversiteden terk Josh Levine'in Datek Securities'de (Şimdi TD Ameritrade olarak biliniyor) çalıştığı Wall Street'te 90'ların başına geri dönelim .

Datek'in tacirleri, NASDAQ'da kotalarını hâlâ elle güncelleyen piyasa yapıcıları atlayarak -Levine tarafından yaratılan- uygulamaları sayesinde başarılı ve popüler oldular . NASDAQ şirketi öğrenip cezalandırana kadar bu, elbette Datek ve tüccarlarına fayda sağladı.

Darkpools'ta Patterson şöyle diyor:

"Nasdaq piyasa yapıcıları ve NASD'nin sürekli olarak ortaya çıkardığı yeni kural ve engel dalgaları, Datek'te sürekli bir endişe ve öfke kaynağıydı. Piyasa yapıcılar, Datek'in SelectNet emirlerini rutin olarak görmezden geldiler, yayınlanan fiyat tekliflerinden uzaklaştılar, bu da çoğu zaman kaçırılan fırsatlara veya daha da kötüsü, hızlı hareket eden bir piyasada pozisyonlarından çıkmak için mücadele eden tüccarlar rüzgarda kanat çırparken önemli kayıplara yol açtı.

Levine bir fırsat gördü ve resmi olarak 1996'da Island ECN'de kendi dükkanını açmaya karar verdi . Island, 50 Broad Street'in (New York) 6. katında tescil edildi ve burası sıralayıcı çerçevesinin resmi olarak başladığı yer.

Artık Levine, tüm alım satım emirleriyle eşleşen sıralayıcı mesajlaşma veri yolunu oluşturarak ve ardından herhangi bir insan girişi olmadan bir ticaret gerçekleştirerek NASDAQ piyasa yapıcılarını esasen atlayabilirdi. Levine, motoru FoxPro'da oluşturmuş ve DOHS'de çalıştırmıştı (FoxPro kodunu burada bulabilirsiniz. ).

Levine, bunu yapabilen bir sistem kurarak günümüz piyasalarının en önemli figürü haline geldi.

Ünlü olmak istemeyen ve ilgi odağı olmayı kendine saklamaya çalışan Levine kendini ofisine kilitledi ve zamanını hızlı, basit ve ölçeklenebilir bir sistem oluşturmaya adadı. Temel olarak, herhangi birinin ona fırlattığı her şeyi kaldırabilecek bir şey . 1990'ların sonunda Island ECN , NASDAQ'da işlem gören tüm hisse senetlerinin %10'unu alıyordu ve günlük 257.140 işlem gerçekleştiriyordu (1997'de 28.446 ile karşılaştırıldığında). Bu, NASDAQ için çok büyük bir problemdi çünkü alım satımları NASDAQ'a bildiren bu yeni rakipten çok büyük miktarda alım satım görüyorlardı. Ancak bu, bu işlemlerden yararlanmadıkları için NASDAQ'ın likiditesinde bir azalmaya neden oldu.

Bu yıllar boyunca Island, Levine çevresinde William Stirling, Mike Blum , Jonathan Ross ve tartışmasız en önemli mühendis Brian Nigito'dan oluşan harika bir mühendislik ekibi kurmuştu . (EX Tradescape). Levine onu koruyucusu olarak gördü ve Nigito'nun ondan daha iyi bir programcı olduğunu söylerdi.

2000'lerin başında Island taleplere ayak uyduramadı ve bu da 2002'de Instinet'in Island'ı 508 milyon dolara satın almasıyla sonuçlandı . Bu, her zaman hor gördüğü rakip bir firmaya katılmak istemediği için Levine'in ayrılmasına neden oldu.

Sonunda 2003'te Island ekibi ayrıldı ve Nigito, Constantine Sokoloff ile yakın bir şekilde çalışarak Instinet'teki (Inet) 36 kişilik hücuma liderlik etmek üzere ayrıldı ve Nigito, Levine'nin FoxPro Motorunu Java'ya yeniden yapılandırdı . O sırada Jonathan Ross, INET'in CTO'suydu ve Nigito ile NASDAQ ve CHI-X'te sıralayıcı kullanmada kilit bir kişi olduğundan bahsetmek önemlidir. Nasdaq'ın INET ECN'si bugüne kadar günde milyarlarca mesajı işleyen sıralayıcı mimarisini kullanıyor.

Öte yandan, Stirling ve Blum ayrıldı ve 2004 yılında Ada mimarisini uygulayan ilk Yatırım Bankası olan UBS'ye katıldı.

UBS'nin Stanford'daki Equities sistemleri için bugün hala kullanılan küresel temellerini oluşturdular (ve bu, temel düşük gecikmeli teknolojilerinin bir parçasıdır).

Birkaç yıl sonra, 2009'da, her ikisi de sıralayıcı mimarisini başka bir yerde büyütmek için ayrıldılar ve sırasıyla Teza ve Getco'nun (KCG) CTO'su oldular, burada Blum, Ada'daki eski meslektaşı Nigito'ya yeniden katıldı.

Blum'un etkisi burada durmadı, 2017'de Goldman Sachs'a ortak oldu ve burada Elektronik Ticaret ekibinde Atlas sıralayıcı projesini yönetmek için Adalı arkadaşı Steve Lui'ye yeniden katıldı. Goldman, hisse senedi işini geliştirmek için milyonlarca ABD doları yatırım yaptı ve Blum şunları söyledi: “ Bir hedef, firmanın mikrosaniye (saniyenin milyonda biri) süren ticari emirlerdeki performansını yaklaşık 30 saniyeye, daha kısa ömürlü emirlere yükseltmekti. banka ile geçmişte mücadele etmiş olabilir . Bazı durumlarda, yüzlerce milisaniye süren işlemler 100 mikrosaniyeden daha hızlı gerçekleşir”.

Goldman Sachs'ın Ada'nın mimarisini küresel olarak uygulayan 2. Yatırım Bankası olmasıyla, Kripto firmaları ve diğer Yatırım bankaları artık özellikle APAC'da aynı şeyi yapmaya başladı. Şu anda Kripto alanı ve çok sayıda geliştiriciye sahip olmakla birlikte, adalı olmayanların bunu büyüttüğünü gördüm, bu da bana - çok eski olan - bu mimarinin önümüzdeki yıllarda yayılmaya ve öğrenilmeye devam edeceğini düşündürüyor. .

Sequencer hala gidilecek yer değil

Ancak sıralayıcı mesajlaşma veriyolu, pek çok ticaret platformu onu kullanmadığından, fintech dünyasında hala niş bir yer tutuyor. Bunun ana nedeni, onu inşa etmek için sıralayıcı profesyonellerinden oluşan bir ekibe ihtiyaç duyduğunuz için mimariyi doğru yapmanın zor olmasıdır. Bunları bulmak zordur ve şirket içinde inşa edilirse maliyetli ve uzun zaman alacak bir niş pazara girdiğiniz anlamına gelir. Hareketli parçalar ve köşe kasalarla dolu böylesine karmaşık bir sistemi olgunlaştırmak uzun zaman alıyor.

İkinci olarak, birçok yönetici gecikmeden ziyade verimle uğraşmayı tercih eder ve çok iş parçacıklı bir ticaret sisteminin daha fazla temas edilen ürünleri işlemek için daha uygun olacağını düşünür ve bu nedenle tek iş parçacıklı sıralayıcı yolundan gitmek istemez. Thompson'ın LMAX bozucusu, çok iş parçacıklı ticaret sistemleri için popüler bir seçimdir, ancak bu, geliştiriciler için çok yaygın olan çok iş parçacıklı kullanım hatalarını beraberinde getirebilir ve determinizmi ortadan kaldırabilir. Tek iş parçacıklı yaklaşım, daha sağlam ve hatasız kod sağlar.

Ayrıca, bu yatırımı üstlenmek bile sıfırdan başlamak anlamına gelir ki, banka milyonlara mal olacağı için bunu yapmaktan kaçınır. Pazar payının çoğuna sahip olan bir firma için neden bunu değiştirmek konusunda isteksiz olduklarını tahmin edebilirsiniz. Bozuk değilse neden düzeltelim?

Piyasaya çıkış süresi ile yatırım riskini bir miktar azaltmak için, birçok banka ve kripto şirketi, ağlarını ve motorlarını aylar içinde çalıştırabilen lisanslı, düşük gecikmeli satıcılar kullanıyor. Yavaş ama bankalar arasında popüler olan Tibco ve Solace gibi bankaların kullandığı eskileri var. Bunlar genel mesajlaşma veri yollarıdır ve güvenilir bir çok noktaya yayın UDP ağı değildir.

Gelecek

Sonuç olarak, ticaret dünyasında sıralayıcı büyümesinin Ada ECN adamlarına bağlı olduğu ve son 20 yılda birkaç büyüme dalgası gördüğü açıktır. Kripto paranın yükselişi ve GS'den bu yana sıralayıcı uygulayan daha fazla banka ile günümüz pazarına bakıldığında, önümüzdeki yıllarda iki kat büyüyeceğine inanıyorum.

Levine çok basit ve hızlı bir şey yarattı ve ancak şimdi ticaret firmaları onunla gitmeye başladı. Sub micro java'da saniyede milyonlarca siparişi işleyebilen bu firmalara yapılan yatırımın ne kadar iyi sonuç verdiğini görürseniz, o zaman daha büyük bir aktif Java programcısı havuzunu işe almak için de yatırım yaparsınız, firmalar bunu yapacak insan gücüne sahip olabilir. piyasada başladı.

Ayrıca, size tanıtabileceğim birkaç Sequencer satıcısı var ve bu sizi 6 ay içinde çalışır duruma getirecek ve böylece bunun için çekirdek adamları işe almanıza gerek kalmayacak. Üstelik banka yatırımları döngüsel olarak devam ediyor ama şu anda zirvedeyseniz ve yatırım yapmamaya karar verirseniz, rekabette sadece geride kalırsınız. Levine's sequencer'ın potansiyeli sonsuz, 60th Broad Street'te başladı ve sıralayıcının ticaretten daha ileri gidebileceğine inanıyorum ve bir gün onu uzayda göreceğiz.