OKEx Lightning 2.0-uppgradering

Nästa generations handelssystem som ger snabbare prestanda

I. Utveckling av det elektroniska handelssystemet

Ökande krav på kärnteknologier för tillgångshandel speglade den globala finansindustrins snabba tillväxt under första hälften av 1900-talet. På 50-talet handlar köpare och säljare genom förhandlingar, och frågepriserna registrerades manuellt på papper. Mot bakgrund av olika värdepapperstyper och ökande handelsvolym skapade detta sätt att hantera kurser gradvis en papperskris under 60-70-talet på grund av dess ineffektivitet och höga kostnad. New York Stock Exchange (NYSE) hade inget annat val än att avbryta handel varje onsdag och minska timmarna under andra handelsdagar för att begränsa sin verksamhet. Med sin oöverträffade förmåga att bearbeta ett stort antal transaktioner samtidigt började datorer komma i spel. En papperslös process, eller elektronisk revolution, var en avgörande vändpunkt i global finanshistoria. Transaktioner har migrerat till elektroniska handelsplattformar, vilket erbjuder snabbare och billigare operationer utan tid eller geografiska hinder.

USA: s papperslösa kris på 70-talet

Elektroniska handelssystem har dykt upp över hela världen, inklusive State Street’s Currenex, HKEXs INET, ICAPs EBS Spot Ai och LIFFE’s LIFE CONNECT. Eftersom kryptotillgångar endast finns i elektronisk form är de naturligtvis associerade med elektroniska handelsplattformar, men kraven för kryptohandel och traditionella handelssystem är något annorlunda. Sammantaget bör ett kryptohandelssystem ha följande egenskaper:

a. Låg latens och hög kapacitet

Latens och genomströmning är nyckelindikatorerna för att mäta resultatet för ett handelssystem. Vårt främsta mål är att uppnå låg latens och hög genomströmning när du utformar ett handelssystem.

I samband med handel avser latens ett tidsintervall mellan en begäran som mottas av och ett svar från ett handelssystem. Ökningen av högfrekvent handelsvolym driver i stor utsträckning marknadens efterfrågan på låg latens. För att göra det möjligt för högfrekventa handlare att korshandla på kryptobörser bör deras handelssystem vara utrustade med motorer med låg latens för att snabbt hantera order och återspegla marknadens verklighet på den mycket konkurrensutsatta kryptomarknaden..

Genomströmning är mängden förfrågningar eller händelser som ett handelssystem kan behandla inom en sekund. Genomströmning kan direkt påverka handelseffektiviteten, så att kryptohandelssystem ska utformas för att motstå extrema scenarier och använda bearbetningsenheter.

b. Underhåll och skalbarhet

Jämfört med traditionella tillgångar är kryptopriser mer volatila och sårbara för globala chocker. Eftersom kryptohandelssystem kontinuerligt hanterar förfrågningar 24/7 är de utformade för att genomgå så lite offlineunderhåll som möjligt. Dessutom är det uppenbart att kryptosektorn genomgår en snabb omvandling eftersom olika digitala derivattjänster så varierade som marginal-, termins- och optionshandel har rullats ut bara på ett decennium sedan dess uppgång. Spridningen av innovativa tjänster har höjt kraven för kryptohandelssystems underhållbarhet och skalbarhet.

II. OKEx Lightning System 2.0: Lightspeed Performance

Som ett av de bästa globala digitala tillgångsbörserna betjänar OKEx tiotusentals användare med sina omfattande kryptotillgångar och derivatprodukter, med en genomsnittlig daglig handelsvolym på miljarder USD. Som branschledare sätter vi extremt högre standarder för våra handelssystem. Förutom uppgraderingen av vårt handelssystem i augusti 2018 har vi implementerat vårt nästa generations Lightning 2.0-system med världsledande prestanda efter flera uppgraderingar. De viktigaste funktionerna i Lightning 2.0-uppgraderingen är följande:

Lightning 2.0 uppgraderingsramverk

1. Memoisering


I det tidiga utvecklingsstadiet för kryptohandelssystem hämtar plattformar vanligtvis detaljer om motpartens budorder genom att automatiskt matcha det i databasen tills ordern löper ut eller fylls. Systemet beräknar sedan det handlade beloppet och genererar en transaktionspost efter matchningen. Denna metod kan säkerställa datakonsistens men misslyckades med att hantera många marknadsförfrågningar samtidigt på grund av dess långa behandlingstid.

Vårt nästa generations handelssystem, Lightning 2.0, har antagit den senaste matchningstekniken i minnet, där vårt system lagrar orderdata i minnet i ordningsmatchningsmotorn under automatisk matchning och mindre frekvent åtkomst till databasen under handel. Alla matchande utfall och mellanliggande data lagras också i minnet, vilket kan minska mängden ingångar och utgångar som är inblandade och därmed avsevärt öka ordermatchningshastigheten.

Även om memoization kraftigt kan minska handelns latens, kan kryptohandelssystem riskera att förlora data på grund av avbrott i strömförsörjningen. För att lösa det här problemet tar vi händelsessökningsmetoden för att bestå en affärsenhets tillstånd och lagra data på ett händelsecentrerat sätt. Handelssystemet lagrar traditionellt data om det aktuella tillståndet i databasen, men händelser lagras för att återspegla tillståndsförändringar i tillvägagångssättet, vilket gör det möjligt för systemet att återuppbygga tillståndet. Systemet tar regelbundet ögonblicksbilder av staten och ombeställer händelserna efter att ögonblicksbilder skapats när ombyggnad krävs.

Dessutom får moderna centralenheter (CPU: er) åtkomst till data i minnet med en lägre hastighet än förväntat. Enligt en testa, det tar bara 1/7 av tiden att hämta data från L2-cachen på en CPU jämfört med matchningstekniken i minnet. För att ytterligare minska latensen är det viktigt att förstå hur man använder CPU-cachen på ett bra sätt. Enheten för dataöverföring är cachelinjen, som vanligtvis är 64 byte. Medan CPU laddar data i minnet överför den intilliggande data i 64 byte till cachen. Följaktligen har vi gjort följande förbättringar av vårt Lightning-system genom att kontrollera distributionen av minnesdata:

  • Kontrollera minnesfördelningen genom att packa ihop delar av data som måste bearbetas kontinuerligt. När alla data har sammanställts krävs endast den första laddningen från minnet i minnet till cachen medan du läser flera delar av datan. Därefter kan efterföljande läsningar träffa cachen för att förbättra systemets prestanda.
  • Styr distribution i minnet genom att placera data som kan förändras i högre takt (t.ex. data på räknare) på olika cachelinjer. När flera processorer modifierar olika byte i en enda cacherad samtidigt sker falsk delning. Efter att CPU1 till exempel har modifierat sina egna data måste CPU2 ladda om hela cachelinjen när den läser sina egna data igen eftersom data i cachelinjen har uppdaterats. Som ett resultat måste båda processorerna vänta på varandra. Det är därför vi lagrar data i olika cachelinjer genom att stoppa för att undvika detta problem.

2. Publicera – prenumerera modell och binärt protokoll

De två huvudtyperna av meddelandemodeller är följande:

Jämförelse av Lightning 1.0 och Lightning 2.0

I public-subscribe-modellen används en kö för meddelanden. När en tjänst behöver begära andra tjänster inkapslas informationen på begäran i ett meddelande och placeras i kön. Andra tjänster kommer att prenumerera på meddelandekön för att få information och behandla begäran.

I modellen för begäran-svar är klienten och servern starkt kopplade ihop. De måste vara tillgängliga samtidigt. Klienten kan bara vänta tills servern har slutfört behandlingen av begäran, vilket sänker behandlingshastigheten. I publicerings-prenumerationsmodellen är förfrågningsbehandlingen slutförd efter att utgivaren placerat meddelandet i kön. Förlaget är frikopplat från abonnenten. Å andra sidan, om abonnentens tjänst avbryts, fortsätter meddelandet i kön och behandlingen fortsätter när hans tjänst återupptas utan att utgivaren behöver skicka meddelandet på nytt, vilket förbättrar tillförlitligheten i systemkommunikationen. Därför antas detta mönster i nästan alla scenarier för att förbättra vårt Lightning 2.0-systems tillgänglighet och genomströmning.

När vi har valt mönstret för begäran-svar är nästa steg att välja ett lämpligt informationsutbytesformat. Kärnan i kommunikation är att utbyta meddelanden, vanligtvis inklusive data. Olika utbytesformat har olika överföringshastighet och nivåer för kommunikationsutveckling, liksom olika programmeringsspråk. Därför är det en viktig faktor vid utformningen av ett handelssystem.

Två vanliga typer av meddelandeformat: textbaserad & binär

Bristerna i ett textbaserat kommunikationsprotokoll är uppenbara. Det genererar enkelt fel och är bandbreddskrävande när analysering av en stor textfil sker, vilket inte fungerar bra för handelssystem som är extremt känsliga för effektivitets- och prestandafrågor. Ett binärt protokoll kan emellertid enkelt användas för att analysera, så det ger bättre prestanda. Därför har vi antagit det binära protokollet i vårt Lightning 2.0-system.

3. Horisontell skalning

För att förbättra och utöka bearbetningskapaciteten för ett handelssystem önskas båda horisontell skalning och vertikal skalning. Vertikal skalning avser serveruppgraderingar, medan horisontell skalning innebär att tillägg av servrar. Serverns hårdvaruprestanda är beroende av mänsklig produktionskapacitet. Även om maskinvarukonfigurationen (maskinvarans prestanda) för en server når en viss nivå (gräns) kan den inte förbättras ytterligare, varför horisontell skalning är det enda alternativet. Den horisontella skalningsmetoden kan dock leda till lastbalansering. Hur man med rimlighet kan fördela belastningarna på hela systemet till olika servrar?

Den första överväganden är dataloppet. Även om tillägg av servrar kan förbättra systemets förmåga att bearbeta data parallellt, kan dess bearbetningskapacitet fortfarande inte förbättras effektivt om en orimlig distribution uppstår eftersom parallell beräkning kan göra att dess servrar ofta tävlar om samma data.

Ett handelssystem lagrar i princip order-, fond- och positionsdata. För att sänka antalet dataserier utförs lastskärning för att dela upp dessa data i skärvor enligt antalet tillgängliga användare. Användarnas order-, fond- och positionsdata behandlas oberoende, vilket hjälper till att undvika datalopp. Dessutom optimerade vi vårt system ytterligare genom att lägga till en omgång batchbearbetning för varje skärv för att förbättra processens kapacitet. Å andra sidan är derivatinstrumentens marginaldata ett annat mål att genomgå lastfördelning. För en användare är varje handelspar helt oberoende. På detta sätt använder vi lastskärning i två faser. När vårt system behöver fler servrar används ombalansering av last baserat på skärning för att uppnå flexibiliteten i systemutvidgningen.

4. Systemskalning

Ett grundläggande sätt att förbättra ett handelssystems underhållsbarhet och skalbarhet är att separera dess funktionalitet. I den här uppgraderingen delade vi ytterligare vårt systems funktioner i tre moduler, nämligen ordermatchning, räknare och riskkontroll. Varje modul innehåller sina egna interna data och status. Specifikt är ordermatchningsmodulen ansvarig för att underhålla orderboken och räknarmodulen lagrar data om positioner och kontosaldon, medan riskkontrollmodulen utför riskhantering.

Eftersom modulerna arbetar med varandra för att möjliggöra funktionaliteten i hela handelssystemet krävs en mekanism för deras kommunikation. Det finns två alternativ för kommunikation mellan tjänster: datadelning och meddelanden.

Datadelning är den mest grundläggande metoden som körs på ett sätt där en modul uppdaterar sina data, och en annan modul får ny data efter frågan. Detta tillvägagångssätt har dock två betydande nackdelar. För det första, om flera moduler gör ändringar och förfrågningar om samma data, kommer det vanligtvis att resultera i datalopp, under vilka svarstiden för databasen kommer att bli mycket längre. För det andra är det svårt att få en realtidsförståelse för förändringar i andra moduler, och vi kan bara känna till sådana förändringar efter frågan.

Som ett resultat är våra Lightning 2.0-systemets moduler utformade för att spara sina egna data och inte för att dela data med varandra. Om modulernas interna tillstånd ändras kommer förändringen att inkapslas i en händelse och placeras på händelsesslingan. Detta kan minska kopplingen och konkurrensen mellan systemmoduler, och de kan kommunicera med varandra i optimal hastighet efter att händelsen inkapslats, vilket avsevärt förbättrar vårt systems kommunikationshastighet.

III. Lightning 2.0-dataprestanda

Vi har slutfört en omfattande uppgradering av vårt Lightning 2.0-system under andra halvåret 2019. Hur har prestandan förbättrats jämfört med Lightning 1.0?

Här är den senaste statistiken över våra Hong Kong-servertester i november:

När det gäller orderhanteringskapacitet har vårt system en maximal orderhanteringskapacitet på 100 000 txn / s, jämförbart med vanliga handelssystem på den globala aktiemarknaden.

Följande tre indikatorer används för att testa systemets latens:

Tre vanliga indikatorer för att testa latens: ACK, Live och Cancel

Vi använde testdata från september och november för att jämföra prestanda före och efter uppgradering av vårt handelssystem (se nedan). Som anges nedan minskade den genomsnittliga ACK-latensen från 50 ms till 25 ms, den genomsnittliga Live-latensen gick från 134 ms till 63 ms och den genomsnittliga Cancel-latensen minskade från 230 ms till 180 ms.

Det visar att vårt handelssystem Lightning 2.0 har lägre latens.

Före uppgradering / Efter uppgradering

IV. Branschledande inom teknik

Blockchains obegränsade skalbarhet, reproducerbarhet och flexibilitet innebär att det finns mycket fler nya tillgångar som väntar på att upptäckas. Den pågående utvecklingen av blockchain-teknik kommer att förvandla ökande immateriella rättigheter, upphovsrätt och kreativa tillgångar till krypto i framtiden. Vi kommer att se marknaden och användare som letar efter högre tillförlitlighet och prestanda i handelssystem.

Som ett världsledande kryptovalutautbyte med omfattande C2C-, spot- och derivathandelstjänster förbättrar vi ständigt våra handelsprodukter, riskhanteringssystem, ordermatchningsmotor, kryptotillgångstjänst och kundtjänst, vi har blivit världens största krypto derivathandelsplattform som får stor popularitet bland globala användare. Det är vårt yttersta mål att växa med blockchain- och kryptosektorerna genom att begå extra resurser för att sträva efter högre handelssäkerhet och effektivitet för att ytterligare driva utvecklingen av en blockchain-driven värld som alla i kryptorummet drömmer om..

Följ OKEx på:

Steemit: https://steemit.com/@okex-official

Webbplats: https://www.okex.com

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map